1............
當連線的表資料量很大,但是select的最終結果不是很多,且select列的個數不是很多的時候,加上distinct之後,這個排序的代價要小於semi join連線的代價。這就是增加乙個distinct操作查詢效率反而提高,這個似乎不可能發生的情況的真正原因。
不加distinct的情況,由於使用in子查詢的查詢,oracle對第二個連線採用了hash join semi,這種hash join semi相對於普通的hash join,代價要大一些。
sql> select /*distinct*/ t1.object_name, t1.object_type, t2.tablespace_name
2 from t1, t2
3 where t1.object_name = t2.segment_name
4 and t1.object_name in
5 (
6 select index_name from t3
7 where t3.tablespace_name = t2.tablespace_name
8 );
2.............
DISTINCT關鍵字理解
distinct關鍵字作為一種資料去重的手段,有如下使用方法 對單個資料進行去重時 select distinct name from members 這意味著從members表中取出去重後的name值對多個字段進行去重時 select distinct name,age from members ...
Oracle的distinct關鍵字
distinct關鍵字用於從查詢的結果集中篩選出唯一值的記錄。我們通過示例來介紹distinct關鍵字的用法。用以下sql建立超女基本資訊表 t girl 插入一些測試資料。create table t girl id char 4 not null,編號 name varchar2 30 not ...
Oracle的distinct關鍵字
distinct關鍵字用於從查詢的結果集中篩選出唯一值的記錄。我們通過示例來介紹distinct關鍵字的用法。用以下sql建立超女基本資訊表 t girl 插入一些測試資料。create table t girl id char 4 not null,編號 name varchar2 30 not ...