oracle臨時段

edwardking888發表於2010-07-01

當Oracle處理一個查詢時,經常需要為SQL語句的解析與執行的中間結果
(intermediate stage)準備臨時空間。Oracle會自動地分配被稱為臨時段
(temporary segment)的磁碟空間。例如,Oracle在進行排序操作時就需要使
用臨時段。當排序操作可以在記憶體中執行,或Oracle設法利用索引就執行
時,就不必建立臨時段。

 

需要使用臨時段的操作:

● CREATE INDEX
● SELECT ... ORDER BY
● SELECT DISTINCT ...
● SELECT ... GROUP BY
● SELECT . . . UNION
● SELECT ... INTERSECT
● SELECT ... MINUS

有些不能使用索引的關聯操作(unindexed join),或者需要在子查詢間建立
相互關係(correlated subqueries),也可能需要使用臨時段(temporary
segment)。所以當查詢包含DISTINCT,GROUP BY,或 ORDER BY 子句
時,Oracle有可能使用兩個臨時段。

臨時表及其索引使用的段

Oracle可以為臨時表(temporary table)及其索引分配臨時段(temporary
segment)。臨時表中的資料只在會話(session)或事務(transaction)的執行
期記憶體在。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-666795/,如需轉載,請註明出處,否則將追究法律責任。

相關文章