性能问题是数据库中最重要也是最迫切要解决的问题之一,随着业务的发展和数据的不断加增,用户对于系统的响应速度的要求越来越高。而归根结底就是要提高数据库系统的性能。对于大部分的DBA来说,性能优化并不是一件容易的事情,造成性能问题的原因多种多样,在现实中,优化过程也会受到重重阻碍,随着云时代的到来以及自动化智能化运维的发展,那么云时代的DBA该如何优化数据库的性能呢? 在今年的数据技术嘉年华上,我们邀请了来自国内外各大企业的性能优化专家,从不同的角度分析云时代数据库性能优化的技术与技巧。 重点嘉宾与主题抢先一
上图是TDSQL结构图,因部署高可用环境2机房增加到3机房时需要增加ZOOKEEPER节点的情形,比方说从3台增加到5台。具体操作方法,以及需要修改的配置文件我们可以参考以下方法:
之所以写这篇文章,还是正好有刚需,我的博客数据库需要迁移使用TDSQ-C的产品,为了提升我博客速度,还是花重金去买了腾讯云数据库TDSQL的产品。
周耀荣:感谢大家坚持到现在,我先介绍一下我自己,我叫周耀荣,曾经任职于腾讯、金蝶、华为,现在在珍爱网,也算是数据库DB运维的老兵。
虽说近些年来,从国内数据库市场来看,Oracle是有些势衰;但从全球角度来说,其霸主地位依然不可撼动。其技术的演讲变化,仍然对行业数据库发展有着颇大的指导引领意义。下面是我对其近三年来发布的新特性加以盘点,进而洞察行业变化,挖掘技术趋势。材料部分内容引用自盖总的《Oracle新特性》系列文章,感谢!
之前写了一篇文章介绍的是用SQL Profile来调整、稳定目标SQL的执行计划,即使无法修改目标SQL的SQL文本。但SQL Profile实际上只是一种亡羊补牢、被动的技术手段,应用在那些执行计划已经发生了不好的变更的SQL上,即当我们发现这些SQL的执行计划已经出了问题时通过创建SQL Profile来纠正、稳定这些SQL的执行计划。即便通过创建SQL Profile解决了目标SQL执行计划变更的问题,依然不能保证系统后续执行的SQL的执行计划就不再发生不好的变更。这种不确定性会给Oracle数据库大版本升级(比如从Oracle 10g升级到Oracle 11g)带来一系列的麻烦,因为不清楚升级之后原先系统中哪些SQL的执行计划会发生不好的变更。
这次正确的使用了索引。因为只有标记为ENABLE和ACCEPT的plan才可以被使用。
原文链接:http://blogs.technet.com/b/uclobby/archive/2015/05/08/deploying-sql-server-alwayson-availability-group-for-skype-for-business-server-2015.aspx Deploying SQL Server AlwaysOn Availability Group for Skype for Business Server 2015 In Lync Server 2013, there were requests regarding an alternative to SQL Mirroring for SQL Server High Availability. This was related to the fact that SQL Mirroring was marked as a feature to be removed in future SQL Server versions: This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Use AlwaysOn Availability Groups instead. in SQL Server 2014 - Database Mirroring (SQL Server) - https://msdn.microsoft.com/en-us/library/ms189852.aspx In Lync Server 2013, it was common to have SQL Server High Availability using SQL Mirroring. The reason for this was that Topology Builder did all the hard work for us. Another supported scenario was to use SQL failover clustering, but in this case we need to manually deploy it: Database software support in Lync Server 2013 https://technet.microsoft.com/en-us/library/gg398990.aspx The good news is Skype for Business Server 2015 comes with AlwaysOn Availability Groups:
我们知道,Nologging只在很少情况下生效 通常,DML操作总是要生成redo的
MyBatis Dynamic SQL的发展紧密依托于MyBatis框架的演进。最初,MyBatis(原名iBATIS)提供了基于XML的映射文件来定义SQL语句。然而,随着业务逻辑的复杂化,静态的SQL映射逐渐难以满足灵活多变的需求。开发者开始寻求一种能够在运行时动态生成SQL的解决方案。
在Oracle中,SPM(SQL Plan Management,SQL计划管理)是什么?
第一章:日志管理 1.forcing log switches sql> alter system switch logfile; 2.forcing checkpoints sql> alter system checkpoint; 3.adding online redo log groups sql> alter database add logfile [group 4] sql> ('/disk3/log4a.rdo','/di
Oracle 11g版本 推出了实时SQL监控功能(Real-Time SQL Monitoring),用于实时地监视执行中SQL的性能;Oracle 12c 对其进一步进行了扩展,推出了历史SQL监控功能(Historical SQL Monitoring)。
使用SQL执行计划基线可以保证SQL的性能不下降,但实际生产中默认没有开启,这里是姚远老师在给OCM的学员授课中关于SQL执行计划基线的一个案例,大家可以借鉴一下。
闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误,从闪回的方式可以分为基于数据库级别闪回、表级别闪回、事务
Martin Heller写的这篇文章《What is SQL? The lingua franca of data analysis》,介绍了SQL、关系型数据库的基础知识,包括发展历史、SELECT、JOIN、存储过程等,虽然是英文,但单词较简单,算科普了。
iputb讨论链接: http://www.itpub.net/showthread.php?threadid=242761 我们看以下测试: SQL> archive log list Databa
#{}:相当于JDBC中的PreparedStatement ${}:是输出变量的值
环境 数据库:TiDB数据库(和mysql数据库极其相似的数据库) 表名:index_basedata 表数据:13 000 000条数据 表索引:包含一个普通索引,索引列 ”year“ 测试sql: SQL1 : select brand from index_basedata where year = 2018 group by day limit 5; SQL2 : select brand from index_basedata where mo
在启动数据库的时候,open阶段总是可能出现各种各样的问题, 比如让人胆战心惊的错误。 ORA-01113: file 1 needs media recovery 自己留意了一下,其实还是有蛮多的场景会出现这个问题,有些细节可能没有注意到就会出现这个问题, 比如我们重建控制文件的时候。 在重建控制文件之前做了shutdown abort的操作。 SQL> shutdown abort ORACLE instance shut down. SQL> startup nomount ORACLE in
直接上代码: /** * Created by chaozhou on 2015/9/18. */ var mssql = require('mssql'); var user = "sa", password = "sa", server = "192.168.20.132", database = "ggcms"; /** * 默认config对象 * @type {{user: string, password: string, server: string, dat
原sql A不走索引, select /*+ no_index(t1 idx_01)*/ from t1 where object_id=5;
升级生产的DB,有一些预检查条件,这些需要提前修复,以便在升级的时候不会成为影响进度的绊脚石。 生产中的components有一些显示是invalid状态,从dba_registry中可以查到。 select comp_id,comp_name,status,version from dba_Registry; 还有一些显示是loading. COMP_ID COMP_NAME VERSION
在手动恢复数据库时,有时候需要在SQL*Plus提示符以及操作系统提示符,RMAN提示符下来回切换显得有些繁琐。实际上RMAN为我们提供了命令行下执行一些简单的SQL语句以及PL/SQL的方法,以避免上述情形。本文描述了RMAN提示符下的一些常用命令及其用法。
原文链接:https://blog.csdn.net/humanking7/article/details/80920892
自从12C开始支持pdb以来,我们多多少少的接触或是使用了ORACLE的CDB+PDB的模式,对于数据库实例开启后,PDB为mount状态,需要再次开启,我想大家应该也觉得不是很方便。
在生产系统中,会发现一些潜在的sql问题,为了能够及时和准确的定位,我们可以借助sql_monitor来做性能sql的查找。可以在后台启用一个job不定时的去查找。 毕竟大半夜的我们去监控也是有难度的,我们希望一切都能很自然的处理,结果我在一个指定的目录下每隔10分钟去查找一次性能sql,如果当天已经有生成报告就不重新生成了。 结果不到一个多月,生成了800个报告,这么多报告是好事,毕竟已经有了详细的报告和数据,但是如果一下子消化这么多的报告,肯定是有难度,而且没有很强的针对性,可能有些sql在一个月中的几
如果是用户主生产环境,通常不会有用户会开启这个功能。 但如果是在ADG备库端,就会有不少客户选择开启这个功能,这可以有效补充误操作应急处置方法。
http://blog.csdn.net/bisal/article/details/38919181
SQL 是一门 ANSI 的标准计算机语言,用来访问和操作数据库系统。SQL 语句用于取回和更新数据库中的数据。
SQL 执行器是 Mybatis 中的核心组件之一,它负责执行一条或多条 SQL 语句,将结果返回给调用方。SQL 执行器的定义由接口 Executor 表示,该接口定义了以下方法:
可见rollback操作和当前数据库 归档模式并没有关系,只和commit操作有关,一旦commit就无法回滚。
PyMySQL介绍 PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,Python2系列中则使用mysqldb。Django中也可以使用PyMySQL连接MySQL数据库。 PyMySQL安装 在CMD终端中安装: pip install pymysql 也可以在PyCharm里安装。 连接数据库 注意事项: 有一个MySQL数据库,并且已经启动; 拥有可以连接数据库的用户名和密码; 有一个有权限操作的database 基本使用: # 导入pymysql模块 import
对于没有耐心的人,请在这里处尝试 Demo:http://kripken.github.io/sql.js/examples/GUI
mybatis-sql-viewer插件主要提供能力:将mybatis xml转成真实SQL语句、参数mock、SQL规范检查、SQL索引检查、SQL运行、SQL压测及Mybatis SQL语句扫描。
SQL Tuning Health-Check Script (SQLHC)是SQLT的一个简化版本,同样用于诊断SQL问题,检查单条 SQL 语句运行的环境,包括基于成本的优化器(CBO)的统计数据,用户对象的元数据定义,配置参数和其他可能影响到待分析 SQL 性能的因素。
5、Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
之前进行JDBC的操作的时候,都是一条SQL语句执行。现在如果使用批处理,可以将一批SQL一起执行。
今天我们的“本地云”练手项目开工第二天,总结了前一天大家的反应,来记录个日报。 前一日日报汇总 先来汇总一下前一个工作日大家的日报情况: 号码牌 日报 1号 (组长) https://blog.csdn.net/qq_43762191/article/details/106803860 2号 https://blog.csdn.net/qq_45792305/article/details/106821952 3号 https://blog.csdn.net/blackcamouflage/article/
这里我们以org.apache.shardingsphere.shardingjdbc.jdbc.core.statement.ShardingPreparedStatement为起点。
糟糕的SQL执行,执行计划走全表扫描(这里实验直接利用使用hint强制不走索引来模拟这种情况):
在12c中,create spfile命令又有了新的参数变更,引入了as copy选项,这个变化是由于一个Bug引入的。 通过以下的测试和验证过程,大家会发现新版本中的这个变化,避免在新版本中遭遇陷阱。以下验证环境为Oracle RAC 12.1.0.2.0,先记录当前DB的资源配置。 [oracle@rac12-node1 ~]$ srvctl config database -db rac12 Database unique name:rac12 Database name:rac12 Oracle h
go-mysql-server是基于内存的mysql server,使用方法分下面五步,创建engine,设置root账户,初始化配置,初始化server,开启服务。具体如下:
当把问题定位到某个或某些SQL后,我们接下来就要针对不同的场景和条件,通过各种工具和方法进行SQL的分析,而针对不同的环境和场景,我们选择的工具可能也有所不同。
Elasticsearch SQL是一个X-Pack组件,它允许针对Elasticsearch实时执行类似SQL的查询。无论使用REST接口,命令行还是JDBC,任何客户端都可以使用SQL对Elasticsearch中的数据进行原生搜索和聚合数据。可以将Elasticsearch SQL看作是一种翻译器,它可以将SQL翻译成Query DSL。
因为是java开发,python并没有学过,所以通过自己摸索,还是可以写出来,对比一下java,觉得python语法有时候确实比较简便,比如要导出Excel,一行代码就可以,然后到linux上部署也比较容易,所以觉得后端程序员掌握一门脚本语言还是有需要的
baseline可以固定多个执行计划,如某sql有10个执行计划,可以使用baseline固定使用其中的2个,根据11g adaptive plan的特性,让优化器从这2个计划中自动选择,fixed属性为yes的执行计划优先被选择,可以设置多个计划的fixed=yes
MyBatis 源起于 Apache 的开源项目 iBatis,2010年这个项目由 Apache Software Foundation 迁移到了 Google code,并且改名为 MyBatis 。2013 年 11 月迁移到 Github。
爱可生华东交付部DBA,主要负责MySQL日常问题处理及DMP产品支持。爱好跳舞,追剧。
领取专属 10元无门槛券
手把手带您无忧上云