回答

收藏

T-SQL参数嗅探重新编译计划

技术问答 技术问答 284 人阅读 | 0 人回复 | 2023-09-12

我有SQL命令
$ m& j5 n1 x3 H+ }exec sp_executesql N'SELECT TOP (10) * FROM mytableView WHERE ([Name]) LIKE (@Value  ORDER BY [Id] DESC',N'@Value0 varchar(5)',@Value0='value'此sql命令将在22秒后执行。我发现发生这种情况是因为我有一个参数嗅探。如果添加到它中。SQL命令 选项(重新编译)
! U4 O2 ~2 e2 B5 M最后,它的工作速度:Managements studio中显示了0秒. [) H9 N( w, m: e; O2 j3 _# d
exec sp_executesql N'SELECT TOP (10) * FROM mytableView WHERE ([Name]) LIKE  (@Value  ORDER BY [Id] DESC     option(recompile)',N'@Value0 varchar(5)',@Value0='value'能否重新编译/重新创建/删除/更新执行计划,使我SQL命令在没有选项(重新编译)的情况下工作?0 _6 {( J" r& z6 B7 s
我试着申请- {3 r1 u, \: k4 L
更新统计 + m0 R& z/ h, j/ b* G
sp_recompile
. S7 I% s8 r1 D' z; ]4 k% ]DBCC免费程序; ^6 H* v) k: F* x" P7 V; ^
DBCC更新用法(0)
7 C  s3 L+ f6 g: u9 j- @* ?, I* F- x; QDBCC FREESYSTEMCACHE(’ALL’)
# v& |! o" k2 P3 w3 }4 Q7 t不幸的是,ALTER INDEX和REBUILD所有这些操作都没有帮助我。
                                                                9 C& u! h& b2 P2 L
    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则