WEB开发网
开发学院数据库DB2 DB2 用户观点:DB2 XML 和 LOB 设计 阅读

DB2 用户观点:DB2 XML 和 LOB 设计

 2009-11-16 00:00:00 来源:WEB开发网   
核心提示:DB2 提供了把各种 XML 文档和非结构化数据对象与事务数据存储在一起的功能,应用程序开发人员已经开始利用这个功能,DB2 用户观点:DB2 XML 和 LOB 设计,这种数据和大对象 (LOB) 的联姻增强了新应用程序的灵活性和功能性, 当然,这会产生最好的性能, 没有最佳的管理 LOB 的通用方法,XML 和其他

DB2 提供了把各种 XML 文档和非结构化数据对象与事务数据存储在一起的功能,应用程序开发人员已经开始利用这个功能。这种数据和大对象 (LOB) 的联姻增强了新应用程序的灵活性和功能性。

当然,XML 和其他 LOB 要求考虑更多的性能因素。在设计和调整 LOB 应用程序时,要考虑以下因素。

LOB 引用。在使用 LOB 时最重要的因素是,在 DB2 或用户地址空间中出现 LOB 时如何引用它。出现的方式由所选的 LOB 设计和引用方法决定。

使用 LOB 文件引用变量会提供最好的性能。这种方式会避免在 DBM1 地址空间和应用程序中出现 LOB,同时回避了应用程序中的内存容量或分配限制。

LOB 日志记录。LOB 非常大;对它们进行日志记录会给当前使用的日志和存档日志带来性能问题。 DB2 9 允许对超过 1GB 的 LOB 进行日志记录; LOB 越大,潜在的性能影响就越大。只要情况允许,就应该把 LOB 表空间定义调整为 NOT LOGGED,以避免 LOB 更新日志记录活动产生大量数据。另外,在装载 LOB 数据类型时最好关闭日志记录(如果使用的实用程序有这样的参数的话)。

LOB 大小。因为许多新的 Java 和分布式应用程序都使用 LOB,DB2 9 和 JDBC Universal Driver Type 4 (JCC T4) 现在会优化 DRDA LOB 数据流。这种优化称为渐进式数据流,它根据 LOB 的大小以及 JCC T4 和 DRDA 设置以不同方式处理 LOB 。对于比较小的 LOB,渐进式数据流的优化效果特别好;它用查询块传输小的 LOB(小于 32KB),就像对待长的 varchar 列一样。

对于中等大小的 LOB(大于 32KB 但小于 1MB),DB2 9 用查询块传输非 LOB 数据,用外部溢出数据块传输 LOB 。这种方式把所有查询数据交给客户机,把 LOB 数据交给服务器。

可以通过 MEDDTASZ DRDA 参数设置和 JCC T4 属性调整处理小型和中等 LOB 的方式。新的 DB2 Universal JCC T4 Driver 有两个重要的属性设置。第一个参数是 progressiveStreaming,在启用时它提供一个新的处理选项。另一个参数是 streamBufferSize,它调整 LOB 缓冲区处理。如果启用 progressiveStreaming,就会忽略 JCC fullyMaterializeLobData 的设置。可以通过这两个参数调整 LOB 出现的方式和处理 DRDA 应用程序工作流,从而提高 LOB 的总体性能。

对于大型 LOB,查询块与 LOB 定位符变量一起返回。对大型 LOB 使用定位符可以避免在应用程序工作流中出现 LOB,这会产生最好的性能。

没有最佳的管理 LOB 的通用方法,但是适当地处理 LOB 数据类型可以提高系统、数据库和应用程序的性能。

Tags:DB 用户 观点

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接