我想确保在从只读模式运行查询时,对服务器的压力是最小的(用户可以选择数据并创建临时表和变量,但不能执行SPs、more和其他更高级的内容)。在这种情况下,我可以使用什么db提示/其他技巧?
目前我是:
WITH (NOLOCK)提示DEADLOCK_PRIORITY设置为-10 (虽然我不确定它是否真的需要,因为我正在使用NOLOCK)我的目标是尽可能少地使用服务器资源,并允许服务器自由地处理其他更重要的事情。我要发送给服务器的查询是本地的(不能保存为SPs),每5分钟就会有许多来自不同用户的查询。它们通常都是简单的SELECTs,并且隔离起来很便宜。还有其他方法让它们更便宜吗?
编辑:我不是连接到的服务器的所有者,所以我只能使用传递给服务器的SQL查询来实现我想要的结果。
发布于 2014-10-02 13:38:43
你所采取的两项措施不会产生什么影响。它们大多是出于迷信而使用的。它们在罕见的情况下会产生影响。实际上,READ UNCOMMITTED (与NOLOCK完全相同)允许对B树进行分配顺序扫描.这只对内存中不存在的表很重要。
如果您希望最小化锁定和阻塞,则快照隔离可能是一个简单且非常有效的解决方案。
为了真正最小化某个工作负载的影响,您需要使用资源调控器。其他一切都是局部的解决方案/解决办法。
考虑限制CPU的使用、内存、IO和并行性。
https://stackoverflow.com/questions/26162009
复制相似问题