gpt4 book ai didi

sql-server-2008 - SSRS 报告需要比查询更长的时间;尝试参数嗅探和 nolock 修复

转载 作者:行者123 更新时间:2023-12-04 21:18:23 24 4
gpt4 key购买 nike

我有一个加载缓慢的 SSRS 报告,大概是由于锁定错误。这是我所知道的。

如果我将驱动报表的查询放入 Management Studio 查询窗口,则运行大约需要 50 毫秒。

当我从浏览器界面运行我一直在测试的报告标准时,来自 ReportServer..ExecutionLog (WHERE Status='rsSuccess' AND ReportID=[thereport]) 的时间值范围如下:

TimeDataRetrieval:  95000-120000
TimeProcessing: 35000-50000
TimeRendering: 75-125

因为我不知道更好的方法来做到这一点,所以我在运行报告几次时监视了 sys.dm_exec_requests 并且这个查询似乎是挂断:
CREATE PROCEDURE [dbo].[CheckSessionLock]  
@SessionID as varchar(32) AS
DECLARE @Selected nvarchar(32)
SELECT @Selected=SessionID
FROM [ReportServerTempDB].dbo.SessionLock
WITH (ROWLOCK) WHERE SessionID = @SessionID

看起来这个命令花费的时间与上面的 TimeDataRetrieval + TimeProcessing 值大致相同,所以我相信它是罪魁祸首。我还发现它做了一个类似的 CleanOrphanedSnapshots 创建,所以我想这是正常 SSRS 操作的一部分。到目前为止,我还没有在报告生成器或代码本身中找到相关的配置设置。

我在网上找到的建议解决方案与“参数嗅探”和 WITH(nolock) 有关。前者似乎只是在调用存储过程的上下文中,而这并没有这样做。我创建了一个SP,看看对抢占参数的处理是否会改变结果,看起来是一样的。我已经添加了 WITH(nolock) 提示,并将隔离设置为没有运气的未提交读取。

我确定我错过了一些简单的东西。这里希望有人知道它是什么。谢谢你的帮助。

参数嗅探 - Fast query runs slow in SSRS
Nolock 方法 - SSRS is locking table

最佳答案

根据上面 Martin Smith 的评论请求,这个特定问题的答案是认识到在问题报告中运行的子报告本身导致了缓慢。简单地查看在 SSMS 中运行的查询,这并不是显而易见的。因此,请比我更加细心,并确保您了解报告的完整内容。 :)

关于sql-server-2008 - SSRS 报告需要比查询更长的时间;尝试参数嗅探和 nolock 修复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17579259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com