我正在为客户构建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加速吗?"
我只是不知道究竟需要做什么!
答案 0 :(得分:1)
首先在order_header.order_no和order_totals.order_no上添加一个索引,并检查两个列是否属于同一类型。 对于其他优化,我们应该讨论数据。 不要忘记更新统计信息
答案 1 :(得分:-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