简单的选择需要很长时间才能执行

Posted

技术标签:

【中文标题】简单的选择需要很长时间才能执行【英文标题】:Simple selects takes so much time to execute 【发布时间】:2017-08-30 09:10:22 【问题描述】:

我有一个带有 JOIN 和 UNION 的复杂选择,它需要很长时间,所以我决定在一个简单的选择中测试它,但是这个选择仍然需要时间来执行。我已经保存了执行计划here

代码只有

SELECT pchrgqty,pchrgup,pcchrgamt  FROM 
hdocord
WHERE acctno = '2014-000136557'

但是执行需要1分11秒

如何加快速度? 为什么很慢?

【问题讨论】:

它正在扫描整个表。在acctno 上创建一个索引,以便它可以搜索。 (另外,请考虑通知该表的设计者 SQL Server 最多支持 128 个字符的名称,因此没有理由使用这些不可读的名称,除非您必须与某种遗留系统兼容。) @JeroenMostert 我无权访问数据库。请问acctno的索引怎么加?这样我就可以尝试添加它。您可以提供它作为答案 【参考方案1】:

您可以尝试添加缺少的索引只是运行此 SQL 语句:

CREATE NONCLUSTERED INDEX ix_hdocord_acctno ON hdocord
(
    acctno ASC
)
ON [PRIMARY]

如果他们没有给你足够的权限,它将失败。

【讨论】:

以上是关于简单的选择需要很长时间才能执行的主要内容,如果未能解决你的问题,请参考以下文章

odbc_exec 执行简单查询需要很长时间

为啥 popToRootViewContoller 会冻结或需要很长时间才能执行?

Mysql Join Query需要很长时间才能执行

简单连接的问题需要很长时间才能完成

查询需要很长时间才能执行 laravel

异步任务进度对话框需要很长时间才能完成 android 中的简单任务