Informix的PDQ技术将大量数据库操作分割成为多个并行操作任务,充分利用多处理器的并行处理能力,以比普通查询快若干倍的速度完成数据查询。
使用PDQ时,首先要申明所做的操作是PDQ操作,通过执行:set pdqpriority high可以打开PDQ开关。
SET PDQPRIORITY语句允许在应用程序中动态设置PDPRIORITY。执行完以后,可通过:set pdqpriority low关闭。没有参与优化查询在数据库端,所以不能使用动态设置将PDQPRIORITY设置优先级。
PDQ并不适合所有查询,如果使用不当会导致性能下降。例如:”cursor stablility”的隔离等级、嵌套子查询等,PDQ就不能使用。
PDQ擅长和适宜使用的场景:
1. update statistics
2. create index
3. sort
4. group
6. 分片表并行加载数据
7. union distinct merge等
PDQ的几个参数:
MAX_PDQPRIORITY ===> 动态修改onmode -D
DS_MAX_QUERIES ===> 动态修改onmode -Q
DS_TOTAL_MEMORY ===> 动态修改onmode -M
DS_MAX_SCANS ===> 动态修改onmode -S
会话调用PDQ资源:
set pdqpriorty 100;