04 2014 档案

摘要:限制并发select的patch,代码量很少,主要是为了学习mysql的源码,yy一下。增加两个全局控制变量: thread_limit_min thread_limit_max增加一个条件变量: COND_thread_running_limit增加一个新的错误码: concurr... 阅读全文
posted @ 2014-04-30 17:08 xpchild 阅读(450) 评论(0) 推荐(0)
摘要:为了方便自己测试和监控,写了三个监控的脚本。 分别监控: 主机【cpu,mem,disk,fs,net】 oracle mysql 脚本如下:hmon.py: monitor Linux os system including cpu,memory,disk,net,file s... 阅读全文
posted @ 2014-04-27 20:58 xpchild 阅读(268) 评论(0) 推荐(0)
摘要:lock and latch在oracle中为了保护共享资源,使用了两种不同的锁机制lock和latch,这两种锁有明显不同点:1,lock和pin,采用的是队列的方式,先来先服务的策略,latch和mutex,采用的是抢占的方式,fast fail模式2,lock可以hold的时间比较长,而lat... 阅读全文
posted @ 2014-04-27 20:37 xpchild 阅读(398) 评论(0) 推荐(0)
摘要:事务和一致性oracle的redo和undo机制保证了数据库的ACID特性,以及高性能和可恢复特性。redo的数据是记录着数据块变更的顺序的正向数据流,commit时,保证redo同步持久化,保证高性能。恢复的时候,顺序的应用日志。redo的机制相对比较简单。undo记录着数据块的前映像。保证事务的... 阅读全文
posted @ 2014-04-27 20:31 xpchild 阅读(449) 评论(0) 推荐(0)
摘要:undo信息oracle中undo的信息主要完成下面的功能:1,构建块一致性读2,回滚事务UBA:undo block address1,块中的事务槽ITL中的UBA表示这个ITL所在的block历经的最后一次改变所对应的undo record所在的UBA,主要用于一致读。2,undo segmen... 阅读全文
posted @ 2014-04-27 20:25 xpchild 阅读(323) 评论(0) 推荐(1)
摘要:ACID特性oracle如何使用undo和redo来保证了关系数据库的ACID特性。 ACID的特性简单描述为:Atomic:以事务为单位的原子性Consistency:保证数据一致性Isolation:不同事务之间的隔离性,未提交的事务对其它会话是不可见的Durablity:提交的事务在系统失败的... 阅读全文
posted @ 2014-04-27 20:24 xpchild 阅读(354) 评论(0) 推荐(0)
摘要:数据更改oracle core完成了oracle的核心功能,recovery,读一致性等。 深入的了解oracle的机制,就从一个最简单的更新开始。对于oracle来说,最大的一个特性就是写了两次数据:写数据到数据文件中写数据的变更日志到日志文件中对于最常见的数据更新来说,oracle主要做了一下动... 阅读全文
posted @ 2014-04-27 20:23 xpchild 阅读(415) 评论(0) 推荐(0)
摘要:oracle数据库系统的架构及其复杂,其提供的特性也非常的多。作为一种关系型数据库,oracle提供的基本特性:transactionconcurrencyread consistent而支撑这些特性的必不或缺的组件组成了Oracle Core。如下面的缩略图所示:这个oracle系统的架构图涵盖了... 阅读全文
posted @ 2014-04-27 20:11 xpchild 阅读(1047) 评论(0) 推荐(0)
摘要:命中率模型是在owi之前比较常用的一种诊断性能问题的方法,通过命中率的计算,发现系统中的一些设置是否合理,当命中率不高的时候,通过调整一些参数和设置,提高命中率,有效的提高系统的性能和吞吐量。但当系统的命中率很高的时候,系统的性能问题和瓶颈就无法使用命中率模型来有效的定位,因为命中率说到底是一种平均... 阅读全文
posted @ 2014-04-27 18:46 xpchild 阅读(687) 评论(0) 推荐(0)
摘要:系统现在很慢”似乎是对系统的性能最常用的抱怨了,但究竟慢到什么程度,如何来界定慢,可能需要对性能进行量化,对于OS来说,大致主要分为cpu,内存,磁盘,网络等组件,对这些维度的性能量化,不但可以更准确的定位到系统的瓶颈,更是做容量评估的基础。下面先看看cpu。 Cpu的性能主要跟缓存,主频,指令集,... 阅读全文
posted @ 2014-04-27 18:38 xpchild 阅读(1341) 评论(0) 推荐(0)
摘要:Buffer sort引发的血案 今天遇到的一个问题,在线系统上,有两张表,test1大概50G,test2大概200G,需要查询出来test1表中部分记录,并且这些记录不存在test2表中。于是就写了一个sql:select t1.* from test1 t1, test2 t2 where... 阅读全文
posted @ 2014-04-27 18:31 xpchild 阅读(1645) 评论(0) 推荐(0)
摘要:稳定执行计划 1 策略: Oracle的sql 执行计划在一些场景下会发生变化,导致系统会发生不可知的情况,影响系统的稳定性,特别是关键业务的sql。比如下面的场景: 统计信息过老,重新收集了统计信息。为表添加了新的分区,删除分区。而oracle提供的稳定执行计划的策略也大致有:存储纲要(sto... 阅读全文
posted @ 2014-04-27 18:28 xpchild 阅读(256) 评论(0) 推荐(0)
摘要:对于在线的繁忙业务表的任何操作都可能带来意想不到的风险。一张业务表,对partition key进行升位,其步骤是:rename原表新建临时表交换分区到临时表升位临时表的字段的长度交换临时表到第二张临时表rename第二种临时表为业务表整个的操作过程如果顺利,预计在10s左右,如果放在文件中,速度会... 阅读全文
posted @ 2014-04-27 18:25 xpchild 阅读(714) 评论(0) 推荐(0)
摘要:对于实际的业务系统,通常有一些热点的表,insert和delete的量非常大,这个时候就会发现一些查询语句的逻辑读比较偏高,这时可能就是oracle在构建一致性块的进行的consistent read。下面做一个测试看下:第一步准备数据:create table test(col1 varchar2... 阅读全文
posted @ 2014-04-27 18:22 xpchild 阅读(415) 评论(0) 推荐(0)
摘要:oracle对于子查询的支持做的很好,oracle optimizer会对inline view进行query transfomation,即视图合并,不过也经常带来意想不到的问题。下面是一个inline view的merge的例子:1, 创建临时表1 create table test1 as ... 阅读全文
posted @ 2014-04-27 18:18 xpchild 阅读(602) 评论(0) 推荐(0)
摘要:oracle的optimizer会对一些sql语句进行查询转换,比如:合并视图子查询非嵌套化inlist转换下面讲讲遇到的in list转化优化的案例:create table test(col1 varchar2(12)col2 numberext varchar2(4000));creat... 阅读全文
posted @ 2014-04-27 18:12 xpchild 阅读(1758) 评论(0) 推荐(0)
摘要:Oracle在9i或者早期的版本,对于性能优化方面,主要采用命中率模型,后面的版本,也保留着命中率模型,比如在awr报告中,Instance Efficiency Percentages (Target 100%)就有关于buffer cache,library cache等相关的命中率。命中率在性... 阅读全文
posted @ 2014-04-27 18:06 xpchild 阅读(723) 评论(0) 推荐(0)
摘要:Oracle的数据字典表dba_objects包含了两个字段,object_id, data_object_id,官方文档上的解释是:object_id: Dictionary object number of the object.Data_object_id: Dictionary object... 阅读全文
posted @ 2014-04-27 17:58 xpchild 阅读(3865) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-8/作者:Jonathan Lewis在前面的关于statspack的文章中,我引用了Don Burleson发表的文章中的一些数字。这是oracle 10g的数... 阅读全文
posted @ 2014-04-27 17:53 xpchild 阅读(214) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-7/作者:Jonathan Lewis这是一段Oracle Database 10g Performance Tuning Tips and Techniques... 阅读全文
posted @ 2014-04-27 17:51 xpchild 阅读(189) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-6/作者:Jonathan Lewis下面是一段时间以前网络上贴出来的一个AWR快照的片段,并有一段文字描述为何值得看一下,摘抄主要来自Don Burleson的... 阅读全文
posted @ 2014-04-27 17:48 xpchild 阅读(163) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-5/作者:Jonathan Lewis前些天,有人给我发了封邮件,附上了一份10g版本的statpack报告,因为开发人员抱怨系统很慢,但是从statpack的报... 阅读全文
posted @ 2014-04-27 17:46 xpchild 阅读(204) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-4/作者:Jonathan Lewis使用statspack的一个方式是从数据中抽取出来趋势信息,两年前在我的网站上发布了一些样例的sql,这些sql用来完成这样... 阅读全文
posted @ 2014-04-27 17:45 xpchild 阅读(232) 评论(0) 推荐(0)
摘要:原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-3/作者:Jonathan Lewis下面的例子中的结果并非从statspack中得出,但是却给我们了一个重要的提醒,statpack如何通过平均来隐藏一些信息而... 阅读全文
posted @ 2014-04-27 17:43 xpchild 阅读(232) 评论(0) 推荐(0)
摘要:Analysing Statspack 2命中率陷阱原文:http://jonathanlewis.wordpress.com/2006/12/27/analysing-statspack-2/作者:Jonathan Lewis了解Statspack的报告的一个重要的事情是要甄别出哪些内容是不需要看... 阅读全文
posted @ 2014-04-27 17:36 xpchild 阅读(191) 评论(0) 推荐(0)
摘要:在双1的情况下,两阶段提交的过程环境准备:mysql 5.5.18, innodb 1.1 version配置: sync_binlog=1 innodb_flush_log_at_trx_commit=1 autocommit=0设置断点: sql_parse.cc::dispatch... 阅读全文
posted @ 2014-04-27 16:46 xpchild 阅读(1063) 评论(0) 推荐(0)
摘要:MySQL server为每一个connection建立一个thread为其服务,虽然thread create比着fork process代价高,单高并发的情况下,也不可忽略。 所以增加了Thread cache,重载了exit方式,cache Thread到一个队列中,当有新的THD请求时,从... 阅读全文
posted @ 2014-04-27 16:31 xpchild 阅读(220) 评论(0) 推荐(0)
摘要:启动mysqld,并进入listen阶段函数调用栈:mysqld_main(): my_init();初始化变量,锁,错误串 my_thread_global_init(): 初始化互斥锁,信号量,线程独享变量 load_defaults();查找my.cnf sys_var_init()... 阅读全文
posted @ 2014-04-27 16:22 xpchild 阅读(1169) 评论(0) 推荐(0)
摘要:开始MySQLsource code 之旅。 阅读全文
posted @ 2014-04-02 15:23 xpchild 阅读(147) 评论(0) 推荐(0)