数据库服务器根据查询的 PDQ 优先级(结合其他因素)为该查询分配某些数目的扫描。您可以调整 DS_MAX_SCANS 配置参数值来限制并发扫描数。
scan_threads = min (nfrags, (DS_MAX_SCANS * (pdqpriority / 100) * (MAX_PDQPRIORITY / 100) )
例如:假定一个大表包含 100 个分段。如果不对允许的并发扫描数进行限制,数据库服务器将并发执行 100 个扫描线程来读取该表。此外,许多用户可启动此查询。
作为数据库服务器管理员,您应将 DS_MAX_SCANS 配置参数设置为小于此表中的分段数的值,以防止数据库服务器的多重决策支持查询所需的扫描线程数目过多。您可以将 DS_MAX_SCANS 设置为 20,以确保数据库服务器为并行扫描最多并发执行 20 个扫描线程。而且,如果多个用户都启动并行数据库查询,那么根据分配给查询的 PDQ 优先级和数据库服务器管理员设置的 MAX_PDQPRIORITY 配置参数值,每个查询只能收到一定百分比的 20 个扫描线程。