对不同用户发出的查询设置优先级

场景

您希望一个部门的用户查询比另一个部门的查询具有更高的优先级。

解决方案

解决方案类似于混合工作负载场景。在此场景中,您没有限制资源使用量;您设置了不同的优先级。若要这样做,可创建两个不同的池,每个池都具有 MEMORYSIZE=0% 以及一个不同的 PRIORITY 参数。这两个池都从 GENERAL 池中借用资源,但在争夺资源时,优先级决定了每个池的请求获得批准的顺序。例如:

=> CREATE RESOURCE POOL dept1_pool PRIORITY 5;
=> CREATE RESOURCE POOL dept2_pool PRIORITY 8;

如果您发现此解决方案不足以满足需要,或者一个部门的查询一直使另一个部门的用户难以执行查询,则可以通过设置 MEMORYSIZE 为每个池添加预留,这样会保证每个部门都可以使用一些内存。

例如,两个资源都使用 GENERAL 池获取内存,所以您可以通过使用 ALTER RESOURCE POOL 更改每个池的 MEMORYSIZE,为每个资源池分配一些内存。

=> ALTER RESOURCE POOL dept1_pool MEMORYSIZE '100M';
=> ALTER RESOURCE POOL dept2_pool MEMORYSIZE '150M';