您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在您使用SQL Server的职业生涯中的某个时刻,参数嗅探是否会跳出来攻击?

在您使用SQL Server的职业生涯中的某个时刻,参数嗅探是否会跳出来攻击?

答案还不完全,但是我会分享我的经验。

当我转向主要从事DBA的工作后,我回到Developer DBA时,参数嗅探花了我几年的sql Server来e住我。我对引擎,sql的工作方式,对客户的最佳了解等方面的知识更多,而我是一个更好的sql编码器。

例如,动态sql或CURSOR或普通的错误sql代码可能永远不会遭受参数嗅探。但是更好的集合编程或如何避免动态sql或更优雅的sql的可能性更大。

我注意到它适用于复杂的搜索代码(大量条件)和复杂的报告,其中参数认值影响了计划。当我看到经验不足的开发人员将如何编写此代码时,它就不会受到参数嗅探的困扰。

无论如何,与WITH RECOMPILE相比,我更喜欢使用参数掩码。无论如何,更新统计信息或索引都会强制重新编译。但是为什么要一直重新编译呢?我已经在其他地方用一个链接回答了您的一个问题,其中提到在编译过程中会嗅探到参数,因此我也不相信它。

是的,参数屏蔽是一项开销,但是,它允许优化器根据情况评估查询,而不是一揽子重新编译。特别是在sql Server 2005的语句级重新编译的情况下

sql Server 2008中的“未知”优化似乎与屏蔽完全相同。我和我的sql Server MVP同事花了一些时间进行调查,并得出了这个结论。

SQLServer 2022/1/1 18:43:12 有439人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶