DB2 Spatial Extender 性能调优(1)
2007-06-01 16:21:39 来源:WEB开发网DB2 内部对空间数据的处理
空间数据可能变得非常复杂,需要很多空间来存储一个几何图形中各个点的信息。例如,表示整个美国的区域的几何图形由 60 个多边形组成,总共有 198569 个点来定义那些多边形。按照 Spatial Extender 内部格式,这个几何图形的完整定义要使用 0.9 MB 的磁盘空间(使用了压缩)。如果几何图形按照 ESRI 几何图形格式编码,那么它实际上需要 3.1 MB 的磁盘空间(请参阅 参考资料 一节,了解关于 ESRI 几何图形格式的更多信息)。所有信息封装在一个 ST_Geometry 值中,这意味着这个值在数据库中也需要大约 1 MB 的磁盘空间。另一个例子是只表示一个点的空间值。对于 X 和 Y 维,我们只有用于两个浮点值的 8 个字节。将一个点表示成 ST_Point 值会增加一些开销,但是我们谈论时仍然当作是几个字节。
DB2 表中一个行中存储的所有值的总大小不能超过表空间的页宽。一个例外是大型对象(LOB),它最大可达 2 GB。DB2 支持的最大页宽是 32K。所以存储需要 1 MB 空间的几何图形需要类似于 LOB 的存储机制。但总是为点数据使用那种机制就过分了。为了解决千差万别的需求,DB2 实现了一种用于存储空间数据(或通常的结构数据)的混合方法。如果一个空间值超过了某个大小(即所谓的 inline length),那么这个值就被存储为 BLOB。否则,这个值就存储为 VARCHAR FOR BIT DATA 值。下一节 将详细讨论如何为空间列设置 inline length,以及通过更改设置可以获得的好处。之后,我们讨论 空间数据聚集,为 编写空间 SQL 查询、调优 空间网格索引 提供指南,最后我们解释如果经常要修改数据,则建议使用哪种 表空间类型。
设置空间列的 inline length
在 上一节 中,我们解释了 DB2 存储需求多变的空间数据的内部机制。确定几何图形是存储为 VARCHAR FOR BIT DATA 还是 BLOB 的决定因素就是所谓的 inline length,这个参数适用于任何表中的空间列。如果空间值的内部表示需要的字节数少于 inline length 设置中指定的值,那么它将以 内联(inline) 的方式存储为 VARCHAR FOR BIT DATA。否则,这个值将被 大对象化(lobify),并在该表的 LONG 表空间中存储为 LOB。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››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 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接