1
我想确保从只读模式运行查询时服务器的压力最小(用户可以选择数据并创建临时表和变量,但可以'执行SP,写入和其他更高级的东西)。在这种情况下我可以使用哪些数据提示/其他技巧?尽量减少SQL Server对来自只读模式的查询的压力
目前我:
- 使用
WITH (NOLOCK)
提示为每个表 - 整个批次-10设置
DEADLOCK_PRIORITY
(虽然我不知道它真正需要的,因为我使用NOLOCK
)
我的目标是尽可能少的服务器资源,并允许服务器自由处理其他更重要的事情。我要发送到服务器的查询是本地的(不能保存为SP),并且会有很多来自每个5分钟的不同用户。它们通常很简单,并且很便宜。还有其他方法可以使它们更便宜吗?
编辑: 我不是我连接到的服务器的所有者,所以我只能使用SQL传递到服务器来实现我想要的。
谢谢,现在我看到它从我的问题中不明显,但问题是,我不是我将连接用户的服务器的所有者。所以我唯一需要做的事情就是嵌入到我发送给服务器的SQL查询中。 – 2014-10-02 13:51:37
在这种情况下,你已经尽力了。删除所有NOLOCK内容并设置TRAN ISOLATION LEVEL RUC。考虑LOCK_TIMEOUT = 0或其他一些低值。当然,这可能会导致零星的故障。 RUC也可能导致零星的查询失败。 – usr 2014-10-02 13:54:27
你可以将它移动到答案中,以便我可以接受它吗?另外,既然你说NOLOCK和RUC一样,你为什么建议交换呢? – 2014-10-02 14:04:16