时间:2021-07-01 10:21:17 帮助过:43人阅读
性能对于一个产品的重要性不言而喻。本文是 DB2 pureScale 在 Power 平台上的性能调优系列的又一专题,关于如何调优系统临时表空间来获得最佳的索引创建性能。
本文基于我们在实际试验中遇到的性能问题,阐述了我们所尝试的各种解决方法以及得出的结论,最后归纳出在 DB2 pureScale 环境中调优系统临时表空间的最佳实践。
索引是中的一个重要对象,它对于提高用户查询的性能起着至关重要的作用。在中根据应用需要创建相应的索引是数据库管理员或者用户经常进行的操作,因此提高索引创建的性能对于用户来说非常重要。创建索引的过程涉及到很多排序操作,这时我们就需要用系统临时表空间来存储排序时生成的临时数据,因此系统临时表空间的性能表现在某种意义上决定了索引创建的效率。本文将详细阐述我们在 DB2 pureScale 中创建索引时遇到的性能问题,然后介绍我们所尝试的各种解决方案以及得到的结论,最后归纳出在 DB2 pureScale 环境中调优系统临时表空间的最佳实践。尽管本文基于我们在 Power7 平台上所做的实验,但是其思想和最佳实践同样适用于其它平台。
表空间简介
数据库当中的表空间被用来存储系统、用户及临时性数据。每个数据库必须至少包含 3 个表空间:1 个编目表空间(存储系统的编目表),1 个用户表空间(存储用户数据),1 个系统临时表空间(存储系统临时数据)。
我们可以使用 清单 1中的命令来查看数据库中的所有表空间,输出结果如 图 1所示。
清单 1. 查看数据库中所有表空间的命令脚本
db2 list tablespaces
图 1. 数据库中所有的表空间
其中的 SYSCATSPACE 是系统编目表空间,USERSPACE1 是用户表空间,TEMPSPACE1 是系统临时表空间。
我们可以使用 清单 2中的命令来查看所有表空间的详细信息,输出结果如 图 2所示。
清单 2. 查看数据库中所有表空间详细信息的命令脚本
db2 list tablespaces show detail
图 2. 数据库中所有表空间的详细信息
我们可以使用 清单 3中的命令来查看某个表空间的容器信息,输出结果如 图 3所示。