提高索引构建的性能

可以通过调整 PDQ 优先级并为整个索引分配足够内存和临时空间来改善索引构建的性能。

只要可能,数据库服务器就会使用并行处理,以缩短索引建立的响应时间。 并行处理的数量取决于索引中分段的数量,以及 PSORT_NPROCS 环境变量的值。 即使 PDQ 优先级的值为 0,数据库服务器仍将使用并行处理方式构建索引。

通常还可以通过执行以下步骤来提高索引建立的性能:

  1. 将 PDQ 优先级设置为大于 0 的值,以获取多于缺省 128 KB 的内存。

    如果将 PDQ 优先级设置为大于 0 的值,那么索引构建将利用附加内存进行并行处理。

    要设置 PDQ 优先级,请使用 PDQPRIORITY 环境变量或 SQL 中的 SET PDQPRIORITY 语句。

  2. 不要设置 PSORT_NPROCS 环境变量。
    如果您的计算机具有多个 CPU,那么数据库服务器将在对索引键进行排序时为每个排序使用两个线程,并且不会设置 PSORT_NPROCS。排序的数量取决于索引中分段的数目、键的数目、键大小以及 PDQ 内存配置参数的值。
  3. 分配足够的内存和临时空间以建立整个索引。
    1. 估计数据库服务器可能需要用于排序的虚拟共享内存量。

      有关更多信息,请参阅估计排序所需的内存

    2. 使用 DS_TOTAL_MEMORY 和 DS_MAX_QUERIES 配置参数指定更多内存。
    3. 如果没有足够的可用内存,那么需要估计完整的索引建立所需要的临时空间量。

      有关更多信息,请参阅估计用于索引构建的临时空间

    4. 使用 onspaces -t 实用程序可创建大型临时数据库空间,并在 DBSPACETEMP 配置参数或 DBSPACETEMP 环境变量中指定这些数据库空间。

      有关如何优化临时数据库空间的信息,请参阅为临时表和排序文件配置数据库空间