sp_cursorprepexec导致5300万次读取?
我们正在使用SQL Server 2012运行Dynamics AX 2012安装。我知道不应再使用游标,但是AX正在使用它,并且我们无法更改此行为,因此必须使用它。 今天,我遇到了一个非常糟糕的查询,读取次数超过5300万,执行时间超过20分钟。 我通过我们的监视工具SentryOne捕获了此查询。 declare @p1 int set @p1=1073773227 declare @p2 int set @p2=180158805 declare @p5 int set @p5=16 declare @p6 int set @p6=1 declare @p7 int set @p7=2 exec sp_cursorprepexec @p1 output,@p2 output,N'@P1 bigint,@P2 nvarchar(5),@P3 bigint,@P4 nvarchar(8),@P5 bigint,@P6 bigint,@P7 bigint,@P8 bigint,@P9 bigint,@P10 bigint,@P11 bigint,@P12 bigint,@P13 bigint,@P14 …