Oracle暫存資料表空間

來源:互聯網
上載者:User

當 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/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.