【发布时间】:2020-09-03 02:00:03
【问题描述】:
假设我有查询(它在多个表上有连接)并假设它已经过调整和优化。此查询在具有 N 条记录和查询结果 R 条记录并花费时间 T 的目标数据库/表上运行。现在负载逐渐增加并说目标记录变为 N2,它给出的结果是 R2,所需时间为T2。假设我已经为 Oracle 分配了足够的内存,L2/L1 将接近 T2/T1。意味着负载的比例增加将导致执行时间的比例增加。对于这个问题,让我们说 L2 = 5L1,意味着负载已增加到 5 倍。那么这个查询完成的时间也将是 5 倍或更多,对吧?那么,为了减少时间的比例增长,我们在 Oracle 中是否有选项,比如并行提示等?在 Java 中,我们将作业拆分为多个线程,负载增加 2 倍,工作线程的 2 倍,我们几乎在同一时间完成。因此,随着负载的增加,我们增加了工作线程并相当好地实现了扩展问题。这种事情在 Oracle 中是否可行,或者 Oracle 是否会在后端处理这种事情并通过在内部将负载拆分为并行处理来进行扩展?在这里,我有多核处理器。我会试验一下,但如果有专家意见,它会有所帮助。
【问题讨论】:
标签: sql oracle query-optimization