【问题标题】:SQL Select Query Timing OutSQL 选择查询超时
【发布时间】:2012-10-16 19:29:23
【问题描述】:

我的 SQL Server 2008 数据库中有一个名为 dbo.app_additional_info 的表,其中包含大约 130,000 条记录。下面展示了表格的结构。

当我在 SQL Server Management Studio 2008 中运行如下查询时

select app_additional_text
from app_additional_info
where application_id = 2665 --Could be any ID here

我的查询需要很长时间才能执行(最多 5 分钟),有时会超时。此数据库还连接到 Web 应用程序,当它运行上述查询时,我总是收到超时错误。

我可以做些什么来加快查询的性能?

非常感谢您对此提供的帮助,因为这会使我的 Web 应用程序停止运行。

谢谢。

更新

下面显示了我的 SSMS 执行计划(我为质量不佳道歉)

【问题讨论】:

  • @podiluska 上面有外键关系,算索引吗?
  • @tgriffiths 由于您使用的是 SSMS,请转到 Query -> Include Actual Execution Plan 以查看您的查询是否使用索引。事实上,如果您可以发布您的执行计划,我们可以为您提供更多帮助。

标签: sql sql-server-2008 timeout


【解决方案1】:

根据问题中的有限信息,您似乎正在执行表扫描,因为 application_id 上没有索引。所以,试试这个:

CREATE INDEX IX_app_additional_info_application_id on 
                app_additional_info (application_id)

您的查询现在应该运行得更快了。

【讨论】:

  • Clustered Index Scan 说明了一切:“扫描”每一行。这个索引应该让它说“寻找”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-28
相关资源
最近更新 更多