0

我正在为客户构建一个 Web 应用程序,但我遇到了特定 SQL 查询的问题。

查询是:

select order_header.order_no,
       order_header.purchase_order_no,
       order_header.entry_date,
       order_header.delivery_date,
       order_totals.total_quantity
from   order_header,
       order_totals
where  order_header.order_no = order_totals.order_no

我已经做了一些故障排除,这个:

where  order_header.order_no = order_totals.order_no

是问题所在。使用此行的 SQL 查询需要 35 秒(导致 DataTables 有时甚至超时),没有它它是即时的。

所以,我知道这个问题,但我不是 DBA,所以不知道解决方案。

这不是我的数据库,所以我需要将解决方案发送给 DBA 进行排序,这样我才能继续我的工作。就像是

“嘿,你介意在 B 桌上做 A 让 C 加速吗?”

我只是不知道实际上需要做什么!

4

2 回答 2

1

首先在 order_header.order_no 和 order_totals.order_no 上添加一个索引,并检查两个列是否属于同一类型。对于其他优化,我们应该讨论数据。不要忘记更新统计信息

于 2015-07-03T11:14:18.347 回答
-1

要求您的数据库

在 order_header 和 order_total 中的 order_no 列上添加索引

这应该有助于解决您当前的问题。此外,查找 JOIN 并更改您的查询以使用 JOIN 语法。

 select order_header.order_no,
           order_header.purchase_order_no,
           order_header.entry_date,
           order_header.delivery_date,
           order_totals.total_quantity
    from   order_header 
    join   order_totals ON order_header.order_no = order_totals.order_no
于 2014-12-18T18:49:04.857 回答