【MYSQL备库恢复速度测试 半同步速度测试】
测试工具:sysbench测试服务器:DL380G7 2台 master-slave模式内存大小:主机内存32G ,INNODB POOL SIZE 20G硬盘:2块普通的HDD盘CPU:12物理coreraid卡写cache开启mysql版本:5.6.19 测试结论:1)MYSQL半同步复制可以一定程度解决多机数据一致性问题,性能要比异步复...
【MYSQL 基准测试结果】
测试工具:sysbench测试服务器:DL380G7 1台 单机测试内存大小:主机内存32G ,INNODB POOL SIZE 20G硬盘:2块普通的HDD盘CPU:12物理coreraid卡写cache开启mysql版本:5.6.19 MYSQL 基准测试结果:1)安全事务提交的方式,一个事务只包含一个update,事务数可到22000左...
控制执行计划之-SQL Profile(一)
SQL Profile与dataguardSQL Profile还有一个极大的好处就是它可以在主库上创建后在备库上使用,试想如果你有一套ACTIVE DATAGUARD对外提供查询服务,遭遇到了执行计划错误的问题,而这些SQL固化技术都不能在GATAGUARD上使用,那心情会有多么糟糕。SPM baseline不能用于DATAGUARD,但是SQL profile是支持的。如果...
控制执行计划之-SPM BASELINE(六)
baseline的怪异行为本节会论述一些baseline的怪异行为,比如,你在test这个schema的t表的相关SQL上创建了baseline,可能会被另一个shema的t表的文本相同的SQL所用,也就是说baseline具有全局属性。还有一些其他的怪异行为,本节都会讲述到。首先我们先构建测试用例,分别在scheme为test和monitor的用户下创建了相同的...
控制执行计划之-SPM BASELINE(五)
修正执行计划baseline不仅仅可以用来稳固执行计划,还可以像SQL PROFILE、SQL PATCH一样用来修正执行计划,本节会介绍如何通过baseline来修正执行计划。首先构建测试需要的表和索引。test@DLSP>create table t as select * from dba_objects; Table cr...
控制执行计划之-SPM BASELINE(四)
Baseline Internal 我们接着上面一节继续来思考,一个SQL在dba_sql_plan_baselines中存在2个accepted为YES状态的baseline。优化器如何决定使用哪一个?看到网上有些文章提到是依据dba_sql_plan_baselines. OPTIMIZER_COST来决定,哪个baseline对应的执行计划的cost小,就使用哪个。但是很容易验证说法是错误的。...
控制执行计划之-SPM BASELINE(三)
基线的进化如果针对已经创建过baseline的sql,优化器意识到可能有更好的执行计划,那么优化器会自动生成一个baseline,这个baselne在视图中dba_sql_plan_baselines的accepted状态为NO。DBA可以通过两种方式来对baseline进行进化:dbms_spm.evolve_sql_plan_baseline函数和 SQL Tuning Advisor。...
控制执行计划之-SPM BASELINE(二)
1) 自动捕获可以在session和system级别设置optimizer_capture_sql_plan_baselines参数来决定是否开启自动捕获baseline。默认为false,不开启。test@DLSP>alter session set optimizer_capture_sql_plan_baselines = true; Session altered....
控制执行计划之-SPM BASELINE(一)
SPM BASELINE 是11G出现的技术,它的出现是为了取代outline技术,outline在后面的版本可能会被废弃。outline可以实现的功能baseline都可以实现,相对于outline,baseline还有着更多更优秀的功能,如优化器认为有更好的执行计划时,会自动产生一个baseline,DBA可以通过进化baseline来验证、接受新产生的baseline。baseli...
优化器革命之-Dynamic Sampling(二)
说了这么多,我们先来看一下动态采样的威力到底如何?create table t asselect mod(num, 100) c1, mod(num, 100) c2, mod(num, 75) c3, mod(num, 30) c4 from (select level num from dual connect by level <= 10001); 创建了一张表T,字段C1和C2的值保持联动。select c1,c2 from t where rownum<20;&...
优化器革命之- adaptive cursor sharing (三)
请先阅读优化器革命之- adaptive cursor sharing (一)http://blog.itpub.net/22034023/viewspace-1218980/请先阅读优化器革命之- adaptive cursor sharing (二)http://blog.itpub.net/22034023/viewspace-1222110/上面两篇文章论述了ACS的特性,我们来看下ACS在PL/SQL里的工作情况,结果可能会令你非常失望:首先...
优化器革命之- adaptive cursor sharing (二)
http://blog.itpub.net/22034023/viewspace-1218980/请先阅读优化器革命之- adaptive cursor sharing (一)上文提到了对于没有直方图有索引的列,即使存在数据倾斜也不会使用到ACS,但是有一个特殊情况,如果不做等值查询,也有可能在没有直方图的列上使用到ACS。我们来看下一个实验:1.创建一张表,500万的记录数,i...
优化器革命之-Dynamic Sampling(五)
我们看看在有索引的情况下,索引的存在是否会对动态采样有帮助。test@DLSP>create table t 2 as 3 select 4 rownum as id 5 , mod(rownum, 10) + 1 as attr1 6 ,...
优化器革命之-Dynamic Sampling(四)
我们来看下表级的动态采样DYNAMIC_SAMPLING(alias, ),这个HINT要求输入2个参数,在CURSOR级别的DYNAMIC_SAMPLING只需要输入动态采样的级别就好,但是表级还需要输入表的alias作为第一个参数,如: DYNAMIC_SAMPLING(T, 4) 不过有趣的是,这种表级别的动态采样跟session/system和cursor level是不同的。第...
优化器革命之-Dynamic Sampling(三)
表上存在过时的统计信息,采用动态采样情况下,也会表现出一些异常情况: drop table t purge; create table t as select rownum as id , mod(rownum, 10) + 1 as attr1 , rpad('x', 100) as filler from du...
oracle breakable parse lock 易碎解析锁
非常旧的一个概念了,今天被人问起,本来是想直接google一个让他看,可是半天也没找到一个比较好的对此问题解释的文章。breakable parse lock叫它锁比较牵强,一般锁是为了保护并发修改的,但是它的含义更准确的说是:一个SQL语句或着PL/SQL等对象在其依赖对象上加的/注册上的 一个“依赖”,以null级别的library cache l...
个人paper下载
cost based oracle(一).pdf 介绍CBO的基础oracle library cache lock.pdf 深入分析Oracle lock的原理OWI:PerformanceDiagnostics & Tuning.pdf OWI性能诊断调优相关SSD&PCServer&Database Architecture .pdf 介绍了随着SSD技术、PCSERVER的发展,数据库服务器架构的调整INDEX、...
个人精华帖索引
漫谈Log File Synchttp://www.itpub.net/thread-1807437-1-1.html深入分析direct path readhttp://www.itpub.net/thread-1815281-1-1.html深入Oracle Log Buffer发展史http://www.itpub.net/thread-1803010-1-1.html深入分析Buffer Busy Waitshttp://www.itpub.net/thread-1801066-1-1.html索引页块里备删除的e...
11GR1 新特性 adaptive cursor sharing
11G以前ORACLE处理带有绑定变量的SQL存在一些问题,产生出的执行计划不是对所有值都好,取决于第一次硬解析时窥探的值,11GR1版本推出了adaptive cursor sharing,它主要的目的是提升对于带有绑定变量的SQL的执行计划性能。优化器在使用adaptive cursor sharing后,已经可以为一个带有绑定变量的SQL产生出多个执行计划。这...
Bind variables 和 bind variable peeking
在我们具体阐述问题之前,先建立一个测试用例:一张表test,列status存在2个值,有数据倾斜,在列status上有索引。CREATE TABLE testASSELECT ROWNUM id, DBMS_RANDOM.STRING('A', 12) name, DECODE(MOD(ROWNUM, 500), 0, 'Inactive', 'Active') status F...