SQL Server 索引重新创建存储过程慢
Posted
技术标签:
【中文标题】SQL Server 索引重新创建存储过程慢【英文标题】:SQL Server Index recreate Stored Procedure Slow 【发布时间】:2015-06-09 13:45:03 【问题描述】:作为我们日常 ETL 流程的一部分,我们在表加载之前删除并在加载之后重新创建索引。当我们在 SSMS 中执行存储过程时,它们往往运行缓慢。但是在同一会话中运行一次后,当我们再次运行时,它运行得很快。 我有 2 个问题。
-
SP 的执行计划是否在首次运行期间得到更新,它是否适用于进一步的连接?
作为我的 ETL 过程的一部分,如果我对某些输入参数集执行该过程,用户访问时会很快。
当我们删除和重新创建索引时,统计信息会得到更新。
【问题讨论】:
【参考方案1】:您遇到了性能问题。您需要衡量问题出在哪里并确定瓶颈。阅读How to analyse SQL Server performance。
其他任何事情充其量只是猜测。是否因为阻止应用程序的并发更新而变慢?是因为计划不好而变慢了吗?是否因为缓冲区预热而变慢?谁能知道?这就是为什么使用有条不紊的方法和衡量很重要的原因。
【讨论】:
如果是缓冲区预热,有什么补救措施 您的测量结果是否证明是缓冲区预热?以上是关于SQL Server 索引重新创建存储过程慢的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server:存储过程变得非常慢,原始 SQL 查询仍然非常快
非常慢的 ExecuteNonQuery(存储过程)与使用 SQL Server Management Studio 的快速执行