我一直在研究 SQL 2008 和 SQL 2008 R2 中的资源调控器。我发现我只能使用它来限制某些会话使用的 CPU 和内存。不过,这对我来说似乎很奇怪,因为如果我使用受控会话在另一个表/会话上创建块,使用资源调控器不是会让情况变得更糟吗?
假设我的查询在默认池(允许 100% CPU/内存)中将在 10 秒内执行,同时在 3 个表中保存块,因为我对其进行了很差的优化。
现在假设我的 CPU 和内存使用率被控制在 10%,并且我运行相同的查询。由于资源调控器的原因,执行时间会更长。因此,它会阻塞更长时间,对吗?
我确实希望通过配置资源调控器来避免该问题,使其首先不允许我的会话阻止对象,并向我发送错误消息。这不可能吗?
如果这有任何意义的话请告诉我。
答案1
资源调控器根本不能用来防止阻塞。锁定和阻塞是数据库的工作方式,无法防止。