Db2性能优化-表分区

前言

最近在做db2数据库优化,整理如下:

实验环境:

  • 操作系统版本:

OS 名称: Microsoft Windows Server 2008 R2 Enterprise
OS 版本: 6.1.7601 Service Pack 1 Build 7601

  • DB2版本:

Product name: “DB2 Enterprise Server Edition”
License type: “CPU 选项”
Expiry date: “永久”
Product identifier: “db2ese”
Version information: “9.5”
Features:
DB2 Database Partitioning: “未许可”
DB2 Performance Optimization ESE: “未许可”
DB2 Storage Optimization: “未许可”
DB2 Advanced Access Control: “未许可”
DB2 Geodetic Data Management: “未许可”
DB2 pureXML ESE: “未许可”
IBM Homogeneous Federation ESE: “未许可”
IBM Homogeneous Replication ESE: “未许可”

  • 优化对象环境:

2张400w表的联合查询。

相关文章链接与解读

  • 关于DB2版本差异

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0611zikopoulos/
官方介绍:
了解 IBM® DB2® 9.5 for Linux®, UNIX®, and Windows® 的每个版本的详细信息。作者介绍了每个版本的概况、许可方面的考虑因素以及自 DB2 9 以来的更改,描述了客户正在用每个 DB2 版本实现的一些有趣功能。这篇流行的文章已经针对 DB2 9.5 进行了修改,符合当前的情况。
注解:进行db2数据库优化前,需要了解数据库支持哪些特性,比如表分区,数据库分区等,只有在ese版本中才支持,在db2 express版本中不支持。往往通过版本差异,即可了解到进行性能优化的方向。(PS:事实是这样的:在进行优化时,发现某些高级特性:如表分区无法使用,所以只能到处找原因,最后发现:开发环境是db2 express版本,但是生产环境是db2ese版本)

  • Db2 develogWroks中国 文档库

http://www.ibm.com/developerworks/cn/views/data/libraryview.jsp
注解:这里面包含了大部分DB2的特性,以及使用介绍,可以有针对的进行性分析(PS:好吧,其实也是海底捞针一样)

  • DB2 9 表分区

http://www.ibm.com/developerworks/cn/education/data/dm0612read/dm0612read.html?from=singlemessage&isappinstalled=0#ibm-pcon
官方介绍:
本教程旨在演示 DB2® 9 中的范围分区(Range Partitioning)功能。读者将获得对 DB2 表范围分区特性的第一手体验。表分区是一种数据组织模式,在这种模式中,数据将以一个或多个表列的值为依据,分割到多个称为数据分区(或范围)的存储对象 中。每一个数据分区被分别存储。这些存储对象可以位于不同的表空间中,可以位于相同的表空间中,也可能是这两种情况的组合。
注解:介绍了表分区的实战环节(PS:我就是从这里开始的)

  • DB2 9.5 数据库分区管理及应用实践

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0903zhanggy/
官方介绍:
本文主要介绍什么是 DB2 数据库分区,为什么采用数据库分区,并以 Balanced Warehouse E7100 为例介绍数据库分区管理的基本方法及应用实践。
注解:这篇将的心潮澎湃,但是看了db2的license,发现不支持数据库分区,呵呵,就当有个了解吧。

  • DB2 分区特性

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0608mcinerney/
官方介绍:
本文介绍 IBM® DB2® for Linux®, UNIX®, and Windows® 的以下表设计特性:表分区、多维聚类(MDC)、数据库分区表和物化查询表(MQT)。您还将看到这些特性如何在数据仓库领域并肩作战,以及它们为查询性 能、转入和转出带来的好处。
注解:涵盖了db2几种分区特性对比信息,建议详读。

  • DB2 基础: 物化查询表简介

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0509melnyk/
官方介绍:
物化查询表(MQT)的定义是以一次查询的结果为基础的。MQT 可以显著提高查询的性能。本文将介绍 MQT、总结表(summary)和 staging 表,并通过一些实用的例子展示如何创建和使用物化查询表。
注解:MQT最早在2013年的时候使用过,用来将原有业务中的部分复杂实时查询业务分离出来,每天定时刷新,以此来提高数据库查询性能。

  • 利用 DB2 说明工具深入理解物化查询表(MQT)刷新机制

http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-1005haoqy/
官方介绍:
在本文中将利用 DB2 说明(explain)工具深入理解物化查询表(MQT)的各种刷新机制,从而使读者能够在实际应用中合理的选择其刷新方式。
注解:在2015年末,为了提高2张400w的表的联合查询,使用了MQT的实时刷新功能。起初只做了查询性能分析,资源消耗减少了90%,自我感觉良好,忽略了插入,更新,删除的性能分析。戏剧性的一幕发生了:第二天业务高峰期时,应用服务出现查询超时,无响应等症状,并且发现数据库死锁严重,查遍各种锁表问题,最终把问题落在了MQT上;痛定思痛,最终全面分析引入MQT后,对业务插入,更新与删除带来的影响:发现引入MQT后,插入消耗为原来的7倍,更新性能为原来的4倍;结果:是否使用MQT实时刷新,需要根据实际情况而定。

你可能感兴趣的:(db2)