DS_MAX_SCANS 配置参数限制可同时运行的 PDQ 扫描线程的数目。该配置参数防止数据库服务器被多个决策支持查询的扫描线程淹没。
scan_threads = min (nfrags, (DS_MAX_SCANS * pdqpriority / 100 * MAX_PDQPRIORITY / 100) )
减少扫描线程的数目可以缩短大型查询在就绪的队列中等待的时间,尤其是当同时提交许多大型查询的时候。但是,如果扫描线程数小于 nfrags,那么查询一旦开始,就会花费较长时间。
例如:如果查询需要扫描一个表中的 20 个分段,但是 scan_threads 公式使该查询在仅有 10 个扫描线程时就开始,每个扫描线程按顺序扫描两个分段。查询执行需要的时间将是使用 20 个扫描线程需要的时间的两倍。