Oracle查询速度慢

时间:2014-12-18 18:44:49

标签: php sql oracle oracle8i

我正在为客户构建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加速吗?"

我只是不知道究竟需要做什么!

2 个答案:

答案 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