DB2数据库设计和最高性能原则
2007-05-20 16:18:01 来源:WEB开发网如果数据中包含了LOB,那么用户就必须创建LOB表空间。对于非LOB的数据,通常的选择是分段或者分区表空间,具体选择哪一个在很大程序上取决于你要存储的数据量,同时还需要考虑相关应用程序需求的数据访问类型。不太推荐使用单一的表空间。
分段表空间比单一的表空间具有更多的性能优势,如下所示:
对于包含多于一个表的表空间,当DB2在一个表上获得锁定时,那个锁定不影响其他表分段的访问。
当DB2扫描一个表时,只访问与那个表相联系的分段。此外,空分段的页不会被取出。
如果一个表被清除了,不需要执行REORG实用工具集,它的分段就立即在COMMIT点上变成可再次使用的状态。
如果一个表中的所有行被删除了(被称为块删除),不需要执行REORG实用工具集,所有的分段都立即在COMMIT点上变成可再次使用的状态。
块删除操作起来更加有效,并且书写相当少的记录信息。
COPY(复制)实用工具集不复制由于块删除或者表清除所造成的空页。
当表达到一个特定的尺寸,它们的可管理性和性能都可以通过分区表空间获得改善。如果你想获得这方面的进展,在设计和创建时,以分区的形式定义表空间是一个明智的做法。分区表空间的一些潜在优势列举如下:
并行性:你可以利用三种类型的并行性,它们目前正应用于DB2 UDB。DB2 V3引入了查询并行性(多个I/O路径)。DB2 V4则实现了CP并行性(多CP之上的多任务)。DB2 UDB V5更是引入了系统查询并行机制(多个DB2数据共享群之上的多任务)。DB2的发展进化,显著提高了DB2应用程序处理分区表空间的并行处理能力。由于CPU时间的增加,这些查询所消耗的时间也显著的减少了。
在数据的一部分上工作:分区表空间允许DB2应用程序一次运行数据的一个分区,因而使其能够同时运行另外分区上的另外的工作或者应用程序。以同样的方式,你可以将块UPDATE(更新)、DELETE(删除)或INSERT(插入)操作分解为独立的工作。除增加了可用性之外,这一技术也为完成这类DB2工作减少消耗的时间提供了可能。
更多精彩
赞助商链接