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 索引重新创建存储过程慢的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver 问题

SQL Server:存储过程变得非常慢,原始 SQL 查询仍然非常快

SQL Server 2008 R2 中运行缓慢的存储过程

非常慢的 ExecuteNonQuery(存储过程)与使用 SQL Server Management Studio 的快速执行

SQL Server 列存储索引更新/插入存储过程

SQL Server存储过程