DB2使用db2advis工具调优SQL
DB2使用db2advis工具调优SQL
- 常见的三种用法
- 部分参数的描述
转自 http://www.dataguru.cn/thread-227495-1-1.html
在之前的博文中说了如何去查看SQL的访问计划,当我们发现当前计划需要调整或者想看看有无优化空间时,我们可以使用db2advis工具,该工具是针对用户提供的工作负载(这里的工作负载就是一组SQL语句的组合)而给出的优化建议,优化建议包括创建索引,MQT,MDC以及表重分布等,优化建议以DDL的形式提供,用户直接运行即可。另外还会给出该工作负载未使用的索引及MQT等建议删除的信息。
目前个人感觉索引的建议比较有用,另外也不必删除索引吧,因为并不是只有当前的这个工作负载。
常见的三种用法
1.指定单条SQL语句
$ db2advis -d cphapp -s "select * from test" -o result.out
说明:
- -d 指定数据库名称
- -s 指定单条SQL语句用于评估并给出索引建议,需要注意的是SQL语句需要由双引号包围
- -o 指定建议输出至文件。
2.针对DB2快照中捕获的一组SQL
$ db2 reset monitor for database cphapp
$ db2advis -d cphapp -g -p -o result.out
说明:首先重置数据库监视器,然后让应用程序运行足够长的时间,以使DB2快照可以捕获到足够的动态SQL语句,然后使用db2advis工具估计工作负载并给出建议。
- -g 指示从动态SQL快照获得SQL语句
- -p 指出将捕获的SQL语句存储在ADVISE_WORKLOAD表中(此表在运行EXPLAIN表脚本时创建)
3.用户提供工作负载文件,db2advis根据此文件给出建议
$ db2advis -d cphapp -i input.sql -o result.out
说明:-i指定用于分析的工作负载文件。
工作负载文件说明:
定义SQL语句的执行频率:“–#SET FREQUENCY 100”
定义注释:“–comment“
部分参数的描述
- -m:指定返回的建议类型,包括IMCP–I(索引)M(MQT物化视图)C(MDC多维聚簇表)P(repartition),默认是I即索引。
- -q schema-name:即限定工作负载中未指定模式的查询对象的模式名。
- -l disk-limit:限定所建议的索引或物化视图所占的磁盘空间,单位是M。-1表示较大size;默认是数据库总大小的20%
- -delim char:指定工作负载文件中的语句结束符,默认为“;”
- -b tablespace-name:指定建议创建的MQT所在表空间
现在遇到的问题是不管使用单条SQL方式还是定义工作负载文件方式,db2advis不会给出创建索引的建议
此问题已经解决,原来是创建索引所分配的空间不足导致不给出任何建议,同样的SQL语句,首先使用
$ db2advis -d cphapp -i stmt.db2 -m I
没有给出任何建议,但是在建议的开头有两行:
total disk space needed for initial set [0.000]MB
total disk space constrained to [967.930]MB
当我使用另一个参数时:
$ db2advis -d cphapp -i stmt.db2 -l -1 -m I
给出了我预期的建议,建议创建一个索引,同样在建议的开头有两行:
total disk space needed for initial set [1453.513]MB
total disk space unconstrained
总结:使用了选项-l -1将不限制创建索引所占用的空间,默认是总空间的20%,超过的话将不给出创建索引的建议。
DB2使用db2advis工具调优SQL相关推荐
- Db2 V11设计与调优 --- IBM中文官网
目录 IBM官网链接: https://www.ibm.com/support/pages/node/300403 Db2 V11设计与调优 Question & Answer Questi ...
- DB2 最佳实践: 性能调优和问题诊断最佳实践
最佳实践的相关文章可见:http://www.ibm.com/developerworks/cn/data/bestpractices/ DB2 最佳实践: 性能调优和问题诊断最佳实践,第 1 部分 ...
- 实例详解 DB2 排序监控和调优
实例详解 DB2 排序监控和调优 http://automationqa.com/forum.php?mod=viewthread&tid=2882&fromuid=2
- 我如何调优SQL Server查询
我是个懒人,我只想干尽可能少的活.当我干活的时候我不想太多.是,你没看错,这看起来很糟糕,作为一个DBA这很不合格.但在今天的文章里,我想给你展示下,当你想对特定查询创建索引设计时,你如何把你的工作和 ...
- cf(聚簇因子)调优,计划调优,SQL改造
---------------1.---------数据.检测准备-------------------------------------------- drop table TE ...
- Jvm垃圾收集器调优工具调优指南
文章目录 参考文档 Jvm体系结构图 Jvm 垃圾回收(garbage collection) 1. 如何确定一个对象是垃圾 1.1 引用计数法 1.2 可达性分析 2. 垃圾回收算法 2.1 标记清 ...
- linux sql server调优,SQL SERVER性能优化(转)
[IT168技术文档] 1. 用程序中,保证在实现功能的基础上,尽量减少对数据库的访问次数:通过搜索参数,尽量减少对表的访问行数,最小化结果集,从而减轻网络负担:能够分开的操作尽量分开处理,提高每次的 ...
- jvm命令和可视化工具 调优
李克华 云计算高级群: 292870151 195907286 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch 虚拟机:系统虚拟机 程序虚拟机 系统虚拟机有:VMWare ...
- 性能调优-SQL TRACE
一 SQL TRACE 使用方法: 1.初始化sql trace 参数: timed_statistics=true 允许sql trace 和其他的一些动态性能视图收集与时间有关的 ...
最新文章
- LeetCode 264. Ugly Number II--C++,Python解法
- 【软件工程】UML软件
- rose顺序图转换为协作图_【S7200指令教程】顺序控制指令SCR SCRT SCRE
- 云计算中的Big Iron重新成为时尚
- layer的msg函数_layer弹出信息框API
- html5转换成mp4视频,HTML5的canvas动画转视频MP4
- CIO感悟:IT人转型之“势、道、术”
- ftp多线程上传、下载以及断点续传
- iphone根目录索引大全
- MTK Android 配置pmic电源
- 马尔可夫过程及其例题分析
- 通俗地理解贝叶斯公式(定理)
- 异常值监测的方法 Tukey test
- 面试官:Java的重写和重载有什么区别?
- TCP端口映射与转发软件(TCP Mapping)简介
- 【excel】QUARTILE.EXC V.S. QUARTILE.INC
- 最全的Python网站开发库!整理出来了!
- web前端培训课程有哪些?
- 关于网络安全里蜜罐的详细介绍
- 谈谈JavaScript和Java