Tag Archives: Tuning

MySQL 优化之 Slow Query Log

从一种 DB 转到另一种 DB 的最初阶段,往往要找自己原来熟悉的工具。拿我自己来说,算是有点 Oracle 的经验,有时被问及 MySQL 优化的东西,就希望找到 MySQL 上类似 Oracle 等待接口或是 SQL Trace 之类的工具,多少有些路径依赖。

Slow Query Log 是 MySQL 的基本 Log 之一。这个优化思路基本上是用 SQL 执行时间 作基准(类似 Oracle 基于等待的优化思想。另外,在 MySQL 中我还没发现根据 逻辑 IO 作基准的方法,这样对于存储层的性能控制就有些不好入手)具体如何操作我就不赘述了。默认情况下,在产品环境中如果临时决定起用该特性是影响可用性的。另外,旧一些的版本时间粒度相对比较大(最小 1 秒钟)。可以通过 Microslow Patch 来解决这个问题(粒度可以到百万分之一秒)。这个 Patch 在开发测试环境也很有用武之地,有些公司的线下开发环境数据不能达到产品环境的规模,如果也把眼光放到抓取执行时间大于 1 秒钟的 SQL 无疑会漏掉很多潜在的问题语句。

在 MySQL 5.0 之后,利用 –log-queries-not-using-indexes 参数可以抓到未使用索引的慢查询。为什么 SQL 没有使用索引,这恐怕是开发 DB 应用的朋友要问的最常见的问题之一。

关于 Slow Query Log 的分析,MySQL 自带有 mysqldumpslow 分析工具,除此之外,也有包装的更好(?)一点的开源工具,比如 MyProfi,以及 Mysql-log-filter

Sun 收购 MySQL 之后,相信很多人都会对 Dtrace 能否集成到 MySQL 比较感兴趣。其实原来就有人利用 Dtrace 来分析 MySQL 性能问题。不过这个方式门槛还比较高,也没有形成比较清晰的方法论。

网上关于 MySQL 优化的文章汗牛充栋,我这篇就当是读书笔记吧。

EOF

About Oracle 10g/11g AWR

Oracle 10g 开始 引入了AWR (Automatic Workload Repository). Oracle 建议用户用这个取代 Statspack。不过这个需要注意的是使用 AWR 需要有 Diagnostic Pack License。Oracle 后来推出了一个解决方案可以禁止掉该特性。

在 Note. 436386.1 有说明:

SQL> @dbms_awr.plb

然后执行:

dbms_awr.disable_awr();

如果用 sys 之外的用户创建 AWR 报告,则需要进行合适的授权。否则会报告错误 PACKAGE 执行错误。

CONNECT / AS SYSDBA;
GRANT ADVISOR TO foo;
GRANT SELECT_CATALOG_ROLE TO foo;
GRANT EXECUTE ON sys.dbms_workload_repository TO foo;

注意 Bug 4597354 在创建基线数据的时候,对性能有很大影响。在一个非常繁忙的系统上不要进行此操作。

如果结合企业管理器用 AWR 是很方便的,如果用手工方式收集性能数据,多了很多可供调整的地方,是更加方便了呢?还是更加麻烦了?

EOF

关于 CBO 的文档

昨天我提到过, The Search for Intelligent Life in the Cost-Based Optimizer 是最经典的两篇关于 CBO 的文档之一. 有朋友问我, 另外一篇是什么?
其实我说的另一篇就是 Wolfgang BreitlingA Look under the Hood of CBO: The 10053 Event. 这篇文档最早出现在 2002 年,如同名字暗示的,内容重点在 10053 事件的解释上.反复阅读之后, 相信对 CBO 已经有所理解的朋友都能够利用这篇文档中的信息对跟踪文件的信息进行解释了.Wolfgang Breitling 还写了很多关于 Oracle 优化器的论文. 喜欢研究的朋友不妨找找这些文章的漏洞.

继续阅读

此文作者:, 位于 Database 分类 标签: , on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

Statspack 的一些资源

“大家帮我看看这个Statspack吧!” — 如果你去一些中文的数据库论坛,你会发现这个请求出现的非常的频繁. 一些朋友可能知道通过 Statspack 来进行数据库优化,可面对报告的各项指标却不知如何下手.
在这里介绍一点关于 Statspack 的技术资源.
Performance Diagnostics using STATSPACK data 作者是:Mary Crystal 与 Tim Gorman . (Tim Gorman 就是 The Search for Intelligent Life in the Cost-Based Optimizer 这篇经典文章的作者.这是 关于 CBO 的两篇最优秀的论文之一.) 该文档覆盖了 Statspack 的大部分内容. 并且介绍了一些如何有效挖取 Statspack 信息的技巧.
Getting fast results from Statspack: How do you apply the YAPP method on a statspack report? 这个文档介绍了如何运用 YAPP(Yet Another Performance Profiling Method) 方法快速分析 Statspack. 在上面的连接中,还可以下载 YAPP 方法的 PDF 文档.

继续阅读