【发布时间】:2020-03-05 22:29:25
【问题描述】:
我的 oracle 表包含 9 亿条记录,该表分区为 24 个分区,并且有索引:
我尝试使用 hint 并将 fetch_buffer 设置为 100000:
select /+ 8 parallel +/
* from table
获取1亿条记录需要30分钟
我的问题是: 有什么方法可以更快地获得 9 亿(表中的所有数据)?我应该使用分区并进行 24 个顺序查询吗?或者我应该使用索引并将我的查询拆分为 10 个查询,例如
【问题讨论】:
-
“需要 30 分钟才能获得 1 亿条记录” 得到它 查询时间有多少,跨网络传输和客户端渲染有多少?数据库查询优化都是关于细节的。没有简单的启发式方法可以解决所有问题。请阅读this post on asking Oracle tuning questions。我解释了在我们尝试回答之前您需要提供的信息,尽管我们可以说索引不会帮助您加快全表读取。
-
我将它们提取到文件中,我如何计算跨网络传输和在客户端呈现的时间?我使用 jdbc Scala 库来提取数据
标签: sql oracle performance query-optimization bulk-operations