SSRS在查询时会锁定表格吗?

时间:2012-09-11 08:53:54

标签: sql-server reporting-services

我的大四学生告诉我,对于SQL查询,默认情况下执行不会锁定表。

但是我的SSRS报告存在一些问题,似乎在锁定和出错方面遇到了一些问题。

我做了一些谷歌搜索但没有找到任何东西。

只是寻找确认SSRS报告实际上会锁定正在查询的所有表吗?

是否有任何MSDN文档专门记录此行为?

2 个答案:

答案 0 :(得分:5)

SSRS不会自行锁定任何内容。锁定将由报告中嵌入的您的查询驱动。没有人可以回答这个问题,但你看看报告和使用的查询,然后看看他们是否锁定表。

通常,查询会锁定表中的数据,而不是表。一致,正确,报告绝对需要锁定。不要屈服于添加NOLOCK提示并将其称为一天you will get incorrect results的谬论。

如果您发现报告引起的生产争用,那么有很多解决方案。使用Availability Groupsdatabase snapshotstandby log shipping server将报告卸载到只读服务器。另一种方法是enable row versioned isolation levels like SNAPSHOT

答案 1 :(得分:0)

来自SSRS的直接选择语句的

肯定会锁定表。

您可以使用NOLOCK并编写一个特定查询,并在报告中显示所需的列。

此处您的选择查询必须没有“*”,其中包含列名称。