熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle中表的連接及其調整

2013-11-13 12:49:26  來源: Oracle 
在日常基於數據庫應用的開發過程中我們經常需要對多個表或者數據源進行關聯查詢而得出我們需要的結果集那麼Oracle到底存在著哪幾種連接方式?優化器內部又是怎樣處理這些連接的?哪種連接方式又是適合哪種查詢需求的?只有對這些問題有了清晰的理解後我們才能針對特定的查詢需求選擇合適的連接方式開發出健壯的數據庫應用程序選擇合適的表連接方法對SQL語句運行的性能有著至關重要的影響下面我們就Oracle常用的一些連接方法及適用情景做一個簡單的介紹


   
嵌套循環連接(Nested Loop)

嵌套循環連接的工作方式是這樣的
Oracle首先選擇一張表作為連接的驅動表這張表也稱為外部表(Outer Table)由驅動表進行驅動連接的表或數據源稱為內部表(Inner Table)
提取驅動表中符合條件的記錄與被驅動表的連接列進行關聯查詢符合條件的記錄在這個過程中Oracle首先提取驅動表中符合條件的第一條記錄再與內部表的連接列進行關聯查詢相應的記錄行在關聯查詢的過程中Oracle會持續提取驅動表中其他符合條件的記錄與內部表關聯查詢這兩個過程是並行進行的因此嵌套循環連接返回前幾條記錄的速度是非常快的在這裡需要說明的是由於Oracle最小的IO單位為單個數據塊因此在這個過程中Oracle會首先提取驅動表中符合條件的單個數據塊中的所有行再與內部表進行關聯連接查詢的然後提取下一個數據塊中的記錄持續地循環連接下去當然如果單行記錄跨越多個數據塊的話就是一次單條記錄進行關聯查詢的
嵌套循環連接的過程如下所示

  

  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.