如何通过集群优化Oracle请求?

时间:2019-03-16 23:51:12

标签: sql oracle optimization

我需要使用集群(在Oracle上)优化请求,但是在理解文档方面遇到困难。

这是请求:

SELECT COUNT(*) FROM TABLE1, TABLE2, TABLE3 
WHERE TABLE1.col1=TABLE3.col3
AND TABLE2.col1=TABLE3.col4
AND TABLE1.col2=1

我了解我必须使用类似的方法创建集群

CREATE CLUSTER cluster_1(col2 INTEGER)

然后使用该集群创建表

CREATE TABLE TABLE1_CLUSTER

但是我正在使用3个不同的表的事实使我感到困惑。

1 个答案:

答案 0 :(得分:1)

您的查询应该这样写:

SELECT COUNT(*)
FROM TABLE1 JOIN
     TABLE3
     ON TABLE1.col1 = TABLE3.col3 JOIN
     TABLE2
     ON TABLE2.col1 = TABLE3.col4
WHERE TABLE1.col2 = 1;

优化的通常方法是使用索引:

  • TABLE1(col2, col1)
  • TABLE3(col3, col4)
  • TABLE2(col1)