gpt4 book ai didi

sql - 添加 SQL Server 索引,但如何仅重新编译受影响的存储过程?

转载 作者:行者123 更新时间:2023-12-03 02:25:20 24 4
gpt4 key购买 nike

我需要向表添加索引,并且我想仅重新编译/所有引用该表的存储过程。有什么快速简便的方法吗?

编辑:

来自 SQL Server 2005 联机丛书,重新编译存储过程:

当数据库因添加索引或更改索引列中的数据等操作而发生更改时,用于访问其表的原始查询计划应通过重新编译来再次优化。 Microsoft SQL Server 2005 重新启动后第一次运行存储过程时,会自动进行此优化。如果存储过程使用的基础表发生更改,也会发生这种情况。 但是,如果添加了一个可能使存储过程受益的新索引,则直到 Microsoft SQL Server 重新启动后下次运行存储过程时才会发生优化。 在这种情况下,它可能很有用强制存储过程在下次执行时重新编译

强制存储过程重新编译的另一个原因是在必要时抵消存储过程编译的“参数嗅探”行为。当 SQL Server 执行存储过程时,该过程在编译时使用的任何参数值都将作为生成查询计划的一部分包含在内。如果这些值代表随后调用过程所使用的典型值,则存储过程每次编译和执行时都会受益于查询计划。如果没有,性能可能会受到影响

最佳答案

您可以执行 sp_recompile 并提供刚刚索引的表名称。所有依赖于该表的过程都将从存储的过程缓存中刷新,并在下次执行时进行“编译”

请参阅 msdn 文档: sp_recompile (Transact-SQL)

关于sql - 添加 SQL Server 索引,但如何仅重新编译受影响的存储过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/840719/

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