全部产品
云市场

资源计算池

更新时间:2019-06-25 20:41:04

本文介绍如何使用DLA资源计算池,解决复杂查询时出现的计算长尾问题。

背景信息

使用DLA进行数据查询时,经常会遇到一些需要进行复杂计算的查询,这些查询运行期间占用大量资源,导致分配到同一节点的简单查询任务延迟执行,最终出现计算长尾问题。通过DLA资源计算池,可以有效避免复杂查询时出现的计算长尾问题。

长尾问题是指DLA需要慢慢等待所有的查询任务执行完毕,整个查询才算结束。

资源计算池类型

DLA允许按照查询执行的最长时间,将查询任务放在不同的资源计算池中,有效隔离复杂查询任务和简单查询任务,从而避免计算长尾问题。

  • 5min资源计算池:资源计算池中查询任务的最大运行时间不超过5min。

    在5min资源计算池中,您还可以指定查询任务的最大执行时间。

  • default资源计算池:资源计算池中查询任务的运行时间无限制。

如何使用资源计算池

在查询语句之前,通过DLA的hint即可使用资源计算池。

5min资源计算池

在hint中通过pool-selector=5min使用5min资源计算池。

  1. /*+ pool-selector=5min */ select * from table1 ...

在5min资源计算池中,您还可以指定查询任务的最大执行时间。

注意:查询任务的最大执行时间必须小于5min,否则系统将提示出错。

例如,以下SQL中查询任务在5min资源计算池中执行,并且指定查询执行时间不超过30s。

  1. /*+ pool-selector=5min, max-running-time-sec=30 */ select * from table1 ...

以下SQL中查询任务在5min资源计算池中执行,但由于指定的查询执行时间超过5min,系统将报错。

  1. /*+ pool-selector=5min, max-running-time-sec=1000 */ select * from table1 ...

default资源计算池

在hint中不进行pool-selector设置,系统默认使用default资源计算池。

  1. select * from table1 ...

或者hint中设置了无效的资源计算池,系统也会自动使用default资源计算池。

  1. /*+ pool-selector=not_exists_pool */select * from table1 ...