當 Oracle 在執行一些 SQL 時,會需要一些臨時空間來儲存執行時產生的中間資料。這些臨時空 間由 Orac le
從指定的暫存資料表空間中分配給進程。主要有三種情況會佔用臨時空間:暫存資料表/索引操作、排序和 臨時 LO B
對象操作。
A.暫存資料表/索引:
在會話中,當第一次對暫存資料表進行 INSERT(包括 CTAS)時 ,Orac le 會從暫存資料表空間中為臨時 表
及其索引分配臨時空間一儲存資料。
B.排序:
任何會使用到排序的操作,包括 JOIN、建立(重建)INDEX、ORDER BY、彙總計算 (GROUP
BY)以及統計資料收集,都可能使用到暫存資料表空間。排序操作首先會選擇在記憶體中的 Sort Area
進行(Sort In Memory),一旦 Sort Area 不足,則會使用臨時空間進行排序操作 (Sort In Disk)。
看下面的例子:
SQL> alter session set sort_area_size = 10000000;
Session altered.
SQL> select owner, object_name from t_test1 order by objec t_id;
47582 rows selected.
Exec ution Plan
Plan hash value : 1312425564
Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 47582 | 1486K| 155 (4)| 00:00:02 |
| 1 | SORT ORDER BY | | 47582 | 1486K| 155 (4)| 00:00:02 |
| 2 | TABLE ACCESS FULL| T_TEST1 | 47582 | 1486K| 150 (1)| 00:00:02 |
Statistics
1 recursive calls
0 db block gets
658 c onsistent gets
0 physic al reads
0 redo size
1566184 bytes sent via SQL*Net to c lient
35277 bytes received via SQL*Net from client
3174 SQL*Net roundtrips to/from c lient
1 sorts (memory)
0 sorts (disk)
47582 rows processed
SQL> alter session set sort_area_size = 10000;
Session altered.
SQL> select owner, object_name from t_test1 order by objec t_id;
47582 rows selected.
Exec ution Plan
Plan hash value : 1312425564
| Id | Operation | Name | Rows | Bytes |TempSpc| Cost (%CPU)| Time|
| 0 | SELECT STATEMENT | | 47582 | 1486K| | 1251 (1)| 00:00:16 |
| 1 | SORT ORDER BY | | 47582 | 1486K| 4136K| 1251 (1)| 00:00:16 |
| 2 | TABLE ACCESS FULL| T_TEST1 | 47582 | 1486K| | 150 (1)| 00:00:02 |
Statistics
6 recursive calls
20 db bloc k gets
658 c onsistent gets
629 physical reads
0 redo size
1566184 bytes sent via SQL*Net to c lient
35277 bytes received via SQL*Net from client
3174 SQL*Net roundtrips to/from c lient
0 sorts (memory)
1 sorts (disk)
47582 rows processed
C.臨時 LOB 對象:
LOB 對象包括 BLOB、CLO B、NCLOB、和 BFILE。在 PLSQL 程式塊中,如果定義了 LOB 變數,
則這些 LOB 變數就是臨時 LOB 對象。臨時 LOB 對象被建立在暫存資料表空間上,直到 LOB 資料被
釋放,或者會話結束。
本文出自 “Oracle之路” 部落格,請務必保留此出處 http://19880614.blog.51cto.com/4202939/791762
查看本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/