我需要使用集群(在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个不同的表的事实使我感到困惑。
答案 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)