减少由长但非优先级的特殊查询引起的对服务器负载的影响

时间:2011-03-23 22:02:53

标签: sql-server oracle

我有几个应用程序在OLTP数据库中进行长查询。但是它们对数据库服务器负载有重大影响。

是否可以以低优先级运行它们?仍然打算允许用户进行adhoc查询,但响应时间并不重要。 请为oracle和/或sqlserver建议解决方案。

3 个答案:

答案 0 :(得分:2)

如果您使用11g,那么Database Resource Manager可能会帮助您。资源管理器允许您根据I / O消耗更改使用者组,这在以前的版本中是不可用的。如果没有,您可以做的最好的是基于CPU使用的较低优先级。

答案 1 :(得分:0)

通过个人资料为其帐户设置资源限制。这是一个链接: http://psoug.org/reference/profiles.html

答案 2 :(得分:0)

为此,您可以使用Oracle Resource Manager。 对此最重要的是,您需要了解资源管理器如何选择要限制的会话。您可以有许多条件将用户分配给资源使用者组。通常使用用户名,但这可能是其他一些东西,如机器,模块等。请参阅创建使用者组映射规则(http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/dbrm004.htm #CHDEDAIB)

通过设置资源限制来指定自动切换(http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/dbrm004.htm#CHDDCGGG)对您来说非常有用,因为所有用户都在启动在同一个OLTP组中。有些人开始长时间运行adhoc查询。您希望这些会话在该呼叫期间切换到较低优先级的组。

可能有一点障碍:如果该限制会话有锁定,那些锁定会停留更长时间,并可能在其他地方引起问题。