《收穫,不止oralce》讀書筆記(6)

2021-06-26 16:05:10 字數 497 閱讀 5873

表連線

巢狀迴圈(nested loops join)

參與連線的兩張表有驅動表和被驅動表之分。類似於巢狀的兩層for迴圈。訪問被驅動表的次數等於驅動表的返回記錄數。如果在被驅動表的連線條件列上加上索引,可以顯著提高查詢效率。(適合返回少量記錄的場合,被驅動表最好有索引)

雜湊連線(hash join)

同樣有驅動表和被驅動表之分。首先把驅動表load到記憶體中,並且計算關聯列的hash值。然後逐行掃瞄被驅動表的記錄,計算出hash值並檢查在驅動表中是否也存在該hash值。這個檢查的時間複雜度是o(1)。這樣驅動表和被驅動表只掃瞄了一次。索引無效。計算hash值和排序是在pga中的hash_area_size

排序合併(merge sort join)

首首先在記憶體中排序,然後合併。時間複雜度(o(2n))比巢狀迴圈的時間複雜度(o(n^2))要小的多。在連線列上加上索引(索引是有序的),可以避免排序。效率大大提高。適合返回大量紀錄的場合。

後兩種排序只支援等值連線條件。

《收穫,不止oralce》讀書筆記(3)

資料庫 database 由若干表空間 tablespace 組成,表空間由若干段 segment 組成,段 segment 由若干區 extend 組成,區 extend 又是由oracle的最小單元塊 block 組成。extend是oracle資料庫分配空間的最小單位。segment對應著表 ...

1 讀書筆記收穫不止Oracle之開篇

1.讀書筆記收穫不止oracle之開篇 偶然看到梁敬彬和梁敬弘合著的 收穫,不止oracle 心中滿懷欣喜,從題目上看不光是講oracle知識,應該會參雜一些技術之外或技術之上的東西。而且也有很多大師們的推薦,既然如此覺得可以好好學習一下,吸取其中精華 有很多oracle資料庫方面的技術大師們 馮培...

17 讀書筆記收穫不止Oracle之 索引儲存列值

17.讀書筆記收穫不止oracle之 索引儲存列值 下面來看下索引的第二個特點,索引儲存列值及rowid的特性。sql create table t as select from dba objects create index idx1 object id on t object id selec...