DB2 最佳实践: DB2 数据库存储机制
2010-06-23 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鎯у⒔閹虫捇鈥旈崘顏佸亾閿濆簼绨绘い鎺嬪灪閵囧嫰骞囬姣挎捇鏌熸笟鍨妞ゎ偅绮撳畷鍗炍旈埀顒勭嵁婵犲嫮纾介柛灞捐壘閳ь剛鎳撻~婵嬪Ω閳轰胶鐤呯紓浣割儐椤戞瑩宕ョ€n喗鐓曟い鎰靛亝缁舵氨绱撻崘鈺傜婵﹤顭峰畷鎺戔枎閹搭厽袦婵犵數濮崑鎾绘⒑椤掆偓缁夌敻骞嗛悙鍝勭婵烇綆鍓欐俊鑲╃磼閹邦収娈滈柡灞糕偓鎰佸悑閹肩补鈧尙鏁栧┑鐐村灦閹稿摜绮旈悽绋课﹂柛鏇ㄥ灠閸愨偓濡炪倖鍔﹀鈧繛宀婁邯濮婅櫣绱掑Ο璇茶敿闂佺ǹ娴烽弫璇差嚕婵犳碍鏅插璺猴工瀹撳棝姊虹紒妯哄缂佷焦鎸冲畷鎴﹀箻鐠囧弶宓嶅銈嗘尰缁嬫垶绂嶉悙顒佸弿婵☆垳鍘ф禍楣冩倵濮樼偓瀚�

EXTENTSIZE 的默认设置(32 个页面,由 DFT_EXTENT_SZ 配置参数指定)大多数情况下应该能提供足够的性能。例如,如果数据库使用 8 KB 的页面,在不知道 RAID 条块大小方面的详细信息时,使用 32 (8 KB x 32 个页面 = 256 KB )的 EXTENTSIZE 应该足够了。即使对于 4 KB 或 16 KB 的页面,32 的 EXTENTSIZE 仍可以分别得到 128 KB 或 512 KB 的盘区大小,这符合建议的范围。
设置 DB2_PARALLEL_IO 实现最佳 I/O 并行性
默认情况下,在表扫描期间,DB2 for Linux, UNIX and Windows 的 I/O 服务器或预取程序为每个表空间容器执行盘区大小的 I/O 。因此,EXTENTSIZE 不仅是 DB2 的条带化单位,也是预取程序在连续预取期间使用的读 I/O 大小。
如果按照上一节中的最佳实践设置 EXTENTSIZE ,那么在包含每个 DB2 容器使用的文件系统的(单个)RAID 阵列中,应确保一个盘区的数据横跨所有的驱动器,然后就不需要设置 DB2_PARALLEL_IO 了,因为数据库管理器将自动从容器中的所有物理磁盘中并行地预取该盘区。
除了本文提供的方式外,还有其他方式可用于设置 EXTENTSIZE 和设计 DB2 系统的条带化。
在某些配置中,另一种方式是将 EXTENTSIZE 设为使连续数据横跨每个 RAID 阵列中的一个物理磁盘。也就是说,将 EXTENTSIZE 设为条块大小,而不是上一节推荐的条带大小。在这样的配置中,在连续预取期间,每个表空间容器采用单个盘区大小的 I/O 便不适用,因为它只能驱动文件系统所基于的 RAID 阵列中的一个物理磁盘。对于这些系统,如果想让数据库管理器生成多盘区大小的预取请求,并行地驱动用于每个 DB2 表空间容器的物理磁盘,就必须设置 DB2_PARALLEL_IO 。
DB2_PARALLEL_IO 允许用户显式地指定每个容器下的物理磁盘数,以便为每个容器生成适当数量的预取请求。例如,如果每个表空间容器存在于一个由 RAID 5 4+1 阵列支持的文件系统上,那么下面是合适的 DB2_PARALLEL_ IO 设置:
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››最佳ASP.NET编程习惯
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
更多精彩
赞助商链接