使用oracle

时间:2017-05-10 09:18:53

标签: oracle sql-order-by

在我的应用程序中,我需要生成由所有客户端完成的事务历史记录报告。我已经将Oracle 12c用于我的应用程序。我有300k客户。此表是相关的客户端详细信息和事务历史记录表。我编写了查询以生成每月显示的交易历史记录。它返回了近2000万条记录。

SELECT C.CLIENT_ID, CD.CLIENT_NAME, ...... FROM CLIENT C, CLIENT_DETAILS CD, 
TRANSACTION_HISTORY TH
--Condition part
ORDER BY C.CLIENT_ID

这3个表有正确的索引,工作正常。但是,当使用order by按顺序显示客户时,此查询需要8小时才能执行批处理。

我分析了查询的费用。成本是80085.但是当我从查询中删除订单时,成本变为200.所以我已经删除了截至目前的订单。但我需要通过订单向客户展示。我不能使用限制。有没有办法克服这个问题?

1 个答案:

答案 0 :(得分:0)

您可以尝试索引表中的客户端ID,这样可以加快表的性能,以便按某种顺序获取数据。

您可以使用该链接作为参考:link

希望这会对你有所帮助