2012-04-12 2 views
3

Ich habe einen Cluster und zwei Tabellen emp und sep auf dem Cluster erstellt.Join auf gruppierte Tabellen zeigt höhere Kosten als nicht gruppierte Tabellen?

Nun, wenn ich tun, um die einfache Abfrage ...

explain plan select * from emp_cluster join dep_cluster using (dno) 

... die Kosten sind 26

Ich habe zwei anderen Tabellen auf Heap (emp_heap und dep_heap) und wenn ich tun ...

explain plan select * from emp_heap join dep_heap using (dno) 

... sind die Kosten nur 15

, die weniger als das von Cluster. Ich habe 33000 Datensätze in die Emp-Tabellen und 99 Datensätze in den Abteilungs-Tabellen eingefügt. Ich weiß, dass sich Join im Cluster gut verhält, aber in meinem Fall ist es umgekehrt ...?

+0

MySQL _und_ Oracle? Was sind die Indizes auch? Und [select * gilt als schädlich] (http://stackoverflow.com/questions/3639861/why-is-select-con- sidered-harmful). – Ben

+0

MySQL oder Oracle? – Corbin

+0

@pst es ist Orakel –

Antwort

4

Mögliche Ursachen:

  • Statistiken veralten
  • Die Clustered-Tabellen sind zersplittert oder haben einen niedrigen Füllfaktor

Bitte die beiden Pläne stellen.