数据库_DB2数据库优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011-5-9
18
具体化查询表
对于复杂查询,尤其是可能需要执行下列某些操作的查 询,具体化查询表(MQT)能够极大地改进响应时间:
基于一个或多个维聚集数据 连接和聚集涉及一组表的数据 通常访问的数据子集(即“热”水平或垂直数据库分区)中的 数据 在分区数据库环境中,表或表的一部分中重新分区的数据
Inspur group 2011-5-9
Z(超级互斥) 超级互斥)
13
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
14
创建索引的准则
在适当地方定义主键和唯一索引。 对查询用来连接表(连接谓词)的任何列创建索引。 对基于常规基础从中搜索特定值的任何列创建索引。 对通常用在 ORDER BY 子句中的列创建索引。 确保使用了仅检索您需要的数据的谓词。例如,确保谓 词的谓词选择性值表示您想要返回的那部分表。 当创建多列索引时,索引的第一列应该为查询中的谓词 最常用的那一列。 确保索引造成的磁盘和更新维护的开销不会太高。
Inspur group 2011-5-9
7
内存模型__应用全局内存 内存模型__应用全局内存 __
应用程序堆大小(applheaps applheaps) applheaps 语句堆大小(stmtheap stmtheap) stmtheap 统计信息堆大小(stat_heap_sz stat_heap_sz) stat_heap_sz
是 是 是 是
是 是 否 否
否
是
是
Inspur group 2011-5-9
23
理解SQL语句如何工作 理解SQL语句如何工作 SQL
理解谓词类型 排序和分组 连接方法 扫描方式
Inspur group 2011-5-9
24
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
17
限制结果集改进性能
使用 FOR UPDATE 子句来指定可由后续定位的 UPDATE 语句更新的列。 使用 FOR READ/FETCH ONLY 子句来使返回的列为只读的 。 使用 OPTIMIZE FOR n ROWS 子句来给予检索整个结果集 中前 n 行的优先级。 使用 FETCH FIRST n ROWS ONLY 子句来仅检索指定的几 行。 使用 DECLARE CURSOR WITH HOLD 语句来每次检索一行 。 Inspur group
Inspur group 2011-5-9
21
通过工具分析SQL执行计划 通过工具分析SQL执行计划 SQL
Visual Explain(可视化解释) db2expln db2exfmt
Inspur group 2011-5-9
22
通过工具分析SQL执行计划-工具比较 通过工具分析SQL执行计划SQL执行计划
Inspur group 2011-5-9
28
调整DB2概要注册变量 调整DB2概要注册变量 DB2
DB2_PARALLEL_IO DB2_EVALUNCOMMITTED DB2_SKIPDELETED DB2_SKIPINSERTED
Inspur group 2011-5-9
29
谢谢大家!
Inspur group 2011-5-9
Inspur group 2011-5-9
25
配置参数摘要
DBM配置参数 DB配置参数
Inspur group 2011-5-9
26
配置参数调优
影响查询的配置参数 Max_coordagents和max_connections 代理程序相关配置参数 日志缓冲区大小 应用程序堆大小 SORTHEAP和SHEAPTHRES 活动应用程序的最大数目(MAXAPPLS) 锁相关配置参数
对于分区数据库系统,快速通信管理器(FCM)需要足够多的内存空间,尤 其是在 fcm_num_buffers 的值较大时。从 FCM 缓冲池中分配需要的 FCM 内存。
Inspur group 2011-5-9
6
内存模型__数据库全局内存 内存模型__数据库全局内存 __
缓冲池的大小。 锁定列表的最大存储器(locklist locklist) locklist 数据库堆(dbheap dbheap) dbheap 实用程序堆大小(util_heap_sz util_heap_sz) util_heap_sz 程序包高速缓存大小(pckcachesz pckcachesz) pckcachesz 共享排序堆(sheapthres_shr sheapthres_shr) sheapthres_shr 目录高速缓存(catalogcache_sz catalogcache_sz) catalogcache_sz
Inspur group 2011-5-9
27
配置参数调优
异步页清除程序数目(NUM_IOCLEANERS) 异步I/O服务器数目(NUM_IOSERVERS) AVG_APPLS CHNGPGS_THRESH(DB) MAXFILOP LOGPRIMARY、LOGSECOND和LOGFILSZ STMTHEAP DFT_QUERYOPT UTIL_HEAP_SZ
Inspur group 2011-5-9
10
锁的概念
数据一致性 锁和事务边界 锁的概念
Inspur group 2011-5-9
11
并行控制与隔离级别
可重复读 读稳定性 游标稳定性 未落实的读。
Inspur group 2011-5-9
12
并行控制与锁定
IN(无意向) IN(无意向) IS(意向共享) IS(意向共享) NS(下一键共享) NS(下一键共享) S(共享) 共享) IX(意向互斥) IX(意向互斥) SIX(在意向互斥下共享) SIX(在意向互斥下共享) U(更新) 更新) NW(下一键弱互斥) NW(下一键弱互斥) X(互斥) 互斥) W(弱互斥) 弱互斥)
Inspur group 2011-5-9
15
Biblioteka Baidu
索引顾问工具
Advisor工具 Design Advisor工具 命令行 (db2advis)
db2advis –d dtw –i D:\dtw_workload –q tpcc –m I –o D:\report
Inspur group 2011-5-9
Inspur group 2011-5-9
19
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
20
通过监控找到耗时SQL 通过监控找到耗时SQL
db2 get snapshot for all on dlyctd > /databak/mahzh/v3/dbshot_"$DATESTR".log
DB2数据库优化
宋智强
2011-5-9
2
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
3
磁盘存储器
磁盘存储器性能因素 RAID设备上优化表空间性能
Inspur group 2011-5-9
4
进程模型
Inspur group 2011-5-9
5
内存模型__数据库管理共享内存 内存模型__数据库管理共享内存 __
审计缓冲区
此内存区用于数据库审计活动。此缓冲区大小由 audit_buf_sz 配置参数 确定。
监视器堆
此内存区用于数据库系统监视的数据。此内存区大小由 mon_heap_sz 配置 参数确定。
快速通信管理器(FCM) 快速通信管理器(FCM)缓冲池
所需特征 用户界面 Visual Explain 图形化 db2exfmt 基于文本 否 db2expln 基于文本 是
快速但粗略的“静态 SQL 分 否 快速但粗略的 静态 析” 静态 SQL 支持 动态 SQL 支持 CLI 应用程序支持 详细的 DB2 优化器 信息可 用 适于分析多条 SQL 语句 是 是 是 是
Inspur group 2011-5-9
8
内存模型__代理程序专用内存 内存模型__代理程序专用内存 __
每个代理程序都需要它自己的专用内存区。DB2® 服务器 将根据需要创建任意个代理程序,并接受给定的已配置 内存资源。可使用 max_coordagents 参数来控制最大 协调代理程序数。 每个代理程序的专用内存区的最大大小由下列参数的值 限制:
专用排序堆大小(sheapthres and sortheap sheapthres sortheap) 代理程序堆栈大小(agent_stack_sz agent_stack_sz) agent_stack_sz
Inspur group 2011-5-9
9
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
16
维护表和索引的组织
执行索引或表重组的步骤如下所示: 执行索引或表重组的步骤如下所示:
确定是否需要重组任何表或索引。 选择重组方法。 对标识的对象执行重组。 监视重组的进度。 对于联机表重组,可以在需要时暂停重组过程,这将允许您稍后继续 。 评估重组的结果,并确定操作是成功还是失败。对于脱机表重组和任 何索引重组,操作是同步的,并且重组的结果将在命令返回时显示出 来。联机表重组是异步处理的,因此,要评估结果,您需要引用历史 记录文件。 如果执行了联机表重组,那么可以选择进行恢复。 收集有关已重组对象的统计信息。 Inspur group 2011-5-9 重新绑定访问已重组对象的应用程序。
18
具体化查询表
对于复杂查询,尤其是可能需要执行下列某些操作的查 询,具体化查询表(MQT)能够极大地改进响应时间:
基于一个或多个维聚集数据 连接和聚集涉及一组表的数据 通常访问的数据子集(即“热”水平或垂直数据库分区)中的 数据 在分区数据库环境中,表或表的一部分中重新分区的数据
Inspur group 2011-5-9
Z(超级互斥) 超级互斥)
13
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
14
创建索引的准则
在适当地方定义主键和唯一索引。 对查询用来连接表(连接谓词)的任何列创建索引。 对基于常规基础从中搜索特定值的任何列创建索引。 对通常用在 ORDER BY 子句中的列创建索引。 确保使用了仅检索您需要的数据的谓词。例如,确保谓 词的谓词选择性值表示您想要返回的那部分表。 当创建多列索引时,索引的第一列应该为查询中的谓词 最常用的那一列。 确保索引造成的磁盘和更新维护的开销不会太高。
Inspur group 2011-5-9
7
内存模型__应用全局内存 内存模型__应用全局内存 __
应用程序堆大小(applheaps applheaps) applheaps 语句堆大小(stmtheap stmtheap) stmtheap 统计信息堆大小(stat_heap_sz stat_heap_sz) stat_heap_sz
是 是 是 是
是 是 否 否
否
是
是
Inspur group 2011-5-9
23
理解SQL语句如何工作 理解SQL语句如何工作 SQL
理解谓词类型 排序和分组 连接方法 扫描方式
Inspur group 2011-5-9
24
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
17
限制结果集改进性能
使用 FOR UPDATE 子句来指定可由后续定位的 UPDATE 语句更新的列。 使用 FOR READ/FETCH ONLY 子句来使返回的列为只读的 。 使用 OPTIMIZE FOR n ROWS 子句来给予检索整个结果集 中前 n 行的优先级。 使用 FETCH FIRST n ROWS ONLY 子句来仅检索指定的几 行。 使用 DECLARE CURSOR WITH HOLD 语句来每次检索一行 。 Inspur group
Inspur group 2011-5-9
21
通过工具分析SQL执行计划 通过工具分析SQL执行计划 SQL
Visual Explain(可视化解释) db2expln db2exfmt
Inspur group 2011-5-9
22
通过工具分析SQL执行计划-工具比较 通过工具分析SQL执行计划SQL执行计划
Inspur group 2011-5-9
28
调整DB2概要注册变量 调整DB2概要注册变量 DB2
DB2_PARALLEL_IO DB2_EVALUNCOMMITTED DB2_SKIPDELETED DB2_SKIPINSERTED
Inspur group 2011-5-9
29
谢谢大家!
Inspur group 2011-5-9
Inspur group 2011-5-9
25
配置参数摘要
DBM配置参数 DB配置参数
Inspur group 2011-5-9
26
配置参数调优
影响查询的配置参数 Max_coordagents和max_connections 代理程序相关配置参数 日志缓冲区大小 应用程序堆大小 SORTHEAP和SHEAPTHRES 活动应用程序的最大数目(MAXAPPLS) 锁相关配置参数
对于分区数据库系统,快速通信管理器(FCM)需要足够多的内存空间,尤 其是在 fcm_num_buffers 的值较大时。从 FCM 缓冲池中分配需要的 FCM 内存。
Inspur group 2011-5-9
6
内存模型__数据库全局内存 内存模型__数据库全局内存 __
缓冲池的大小。 锁定列表的最大存储器(locklist locklist) locklist 数据库堆(dbheap dbheap) dbheap 实用程序堆大小(util_heap_sz util_heap_sz) util_heap_sz 程序包高速缓存大小(pckcachesz pckcachesz) pckcachesz 共享排序堆(sheapthres_shr sheapthres_shr) sheapthres_shr 目录高速缓存(catalogcache_sz catalogcache_sz) catalogcache_sz
Inspur group 2011-5-9
27
配置参数调优
异步页清除程序数目(NUM_IOCLEANERS) 异步I/O服务器数目(NUM_IOSERVERS) AVG_APPLS CHNGPGS_THRESH(DB) MAXFILOP LOGPRIMARY、LOGSECOND和LOGFILSZ STMTHEAP DFT_QUERYOPT UTIL_HEAP_SZ
Inspur group 2011-5-9
10
锁的概念
数据一致性 锁和事务边界 锁的概念
Inspur group 2011-5-9
11
并行控制与隔离级别
可重复读 读稳定性 游标稳定性 未落实的读。
Inspur group 2011-5-9
12
并行控制与锁定
IN(无意向) IN(无意向) IS(意向共享) IS(意向共享) NS(下一键共享) NS(下一键共享) S(共享) 共享) IX(意向互斥) IX(意向互斥) SIX(在意向互斥下共享) SIX(在意向互斥下共享) U(更新) 更新) NW(下一键弱互斥) NW(下一键弱互斥) X(互斥) 互斥) W(弱互斥) 弱互斥)
Inspur group 2011-5-9
15
Biblioteka Baidu
索引顾问工具
Advisor工具 Design Advisor工具 命令行 (db2advis)
db2advis –d dtw –i D:\dtw_workload –q tpcc –m I –o D:\report
Inspur group 2011-5-9
Inspur group 2011-5-9
19
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
20
通过监控找到耗时SQL 通过监控找到耗时SQL
db2 get snapshot for all on dlyctd > /databak/mahzh/v3/dbshot_"$DATESTR".log
DB2数据库优化
宋智强
2011-5-9
2
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
Inspur group 2011-5-9
3
磁盘存储器
磁盘存储器性能因素 RAID设备上优化表空间性能
Inspur group 2011-5-9
4
进程模型
Inspur group 2011-5-9
5
内存模型__数据库管理共享内存 内存模型__数据库管理共享内存 __
审计缓冲区
此内存区用于数据库审计活动。此缓冲区大小由 audit_buf_sz 配置参数 确定。
监视器堆
此内存区用于数据库系统监视的数据。此内存区大小由 mon_heap_sz 配置 参数确定。
快速通信管理器(FCM) 快速通信管理器(FCM)缓冲池
所需特征 用户界面 Visual Explain 图形化 db2exfmt 基于文本 否 db2expln 基于文本 是
快速但粗略的“静态 SQL 分 否 快速但粗略的 静态 析” 静态 SQL 支持 动态 SQL 支持 CLI 应用程序支持 详细的 DB2 优化器 信息可 用 适于分析多条 SQL 语句 是 是 是 是
Inspur group 2011-5-9
8
内存模型__代理程序专用内存 内存模型__代理程序专用内存 __
每个代理程序都需要它自己的专用内存区。DB2® 服务器 将根据需要创建任意个代理程序,并接受给定的已配置 内存资源。可使用 max_coordagents 参数来控制最大 协调代理程序数。 每个代理程序的专用内存区的最大大小由下列参数的值 限制:
专用排序堆大小(sheapthres and sortheap sheapthres sortheap) 代理程序堆栈大小(agent_stack_sz agent_stack_sz) agent_stack_sz
Inspur group 2011-5-9
9
标题
体系结构和进程 锁和隔离级别 索引和数据存取 SQL优化 数据库参数调优
16
维护表和索引的组织
执行索引或表重组的步骤如下所示: 执行索引或表重组的步骤如下所示:
确定是否需要重组任何表或索引。 选择重组方法。 对标识的对象执行重组。 监视重组的进度。 对于联机表重组,可以在需要时暂停重组过程,这将允许您稍后继续 。 评估重组的结果,并确定操作是成功还是失败。对于脱机表重组和任 何索引重组,操作是同步的,并且重组的结果将在命令返回时显示出 来。联机表重组是异步处理的,因此,要评估结果,您需要引用历史 记录文件。 如果执行了联机表重组,那么可以选择进行恢复。 收集有关已重组对象的统计信息。 Inspur group 2011-5-9 重新绑定访问已重组对象的应用程序。