用于调整 Oracle 实例以实现 ArcSDE XML 存储的脚本
ArcSDE for Oracle 在 SDEHOME > Tools > oracle 目录中包含两个脚本,这两个脚本可帮助您配置 Oracle 实例,以在存储 ArcSDE XML 数据时获得最佳性能。这两个脚本是 xml_lob_block_distribution.sql 和 xml_lob_cache_size.sql。
xml_lob_block_distribution
此脚本用于报告 XML 数据在表中的分布信息。可输入包含 XML 列的表名称,并且此脚本将返回 XML 数据在以下块中的分布信息:
- 小于 8 KB 的数据
- 介于 8 KB 与 16 KB 的数据
- 大于 16 KB 的数据
通过此信息,可确定大部分 XML 数据的大小。如果大部分的 XML 数据小于 8 KB,而您使用的是 16 KB 的块大小,则数据库中可能有浪费的空间,且每个查询响应将需要两倍的内存,而其中一半的内存未被使用。相反,如果您使用的是 8 KB 的块大小,则可将两倍的数据打包到每个响应和缓存中,并且对于返回相同数量记录的查询来说,需要从数据库中读取的数据可能会更少。然而,如果大部分 XML 数据都大于 16 KB,而您正在使用的是 8 KB 的块大小,则与使用 16 KB 的块大小相比,您可能需要用两倍的块来存储数据。这意味着,对于业务表中相同数量的记录来说,每个响应从磁盘中读取的数据量需要相当于原来的两倍,从而降低查询性能。
xml_lob_cache_size
xml_lob_cache_size 脚本有助于评估 XML 数据在指定块大小下的缓存要求。如同 xml_lob_block_distribution 脚本一样,可输入包含 XML 列的表名称。此外,还可指定块大小。如果未指定块大小,将使用 db_block_size 进行评估。
从该脚本返回的信息将告诉您应使用多大的 LOB 缓存来优化搜索性能。
不能更改现有 Oracle 数据库的块大小。如果上述脚本指示您需要更改块大小以优化 XML 查询,则必须为现有数据库创建一个备份,创建一个具有正确块大小的新数据库,并将数据移动到新数据库中。