在我的应用程序中,我需要生成由所有客户端完成的事务历史记录报告。我已经将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.所以我已经删除了截至目前的订单。但我需要通过订单向客户展示。我不能使用限制。有没有办法克服这个问题?