DSS 查询性能优化,在使用 PDQ 时,首先考虑如下 3 点:
定义 PDQPRIORITY,set PDQPRIORITY n;--n>0
若要启用 PDQ,则需要在 session 中定义,默认不启用 PDQ(除排序和index build外)。在启用 PDQ 后,系统资源将动态地进行分配管理,PDQ 任务可以获取更多,优先级更高,可以提高查询性能。甚至在只有一个 CPU 和表没有分片的情况下提高性能。
表分片
在 PDQ 任务中,分片表非常关键,因为 DSS 查询需要进行大量的I/O操作。在没有分片的情况下,只能有一个 scan 线程进行磁盘扫描。而在分片表的情况下,每个dbspace都会有一个 scan 线程进行磁盘扫描。甚至在只有一个 CPU 的情况下,分片表都可以充分利用磁盘的 I/O,将 CPU 资源运行在 I/O Free 的磁盘上。
在多 CPU 上执行
PDQ任务有多个并行操作都可以运行在多个不同的CPU上,这样可以充分利用多CPU的并发处理能力,提高单个查询的性能。