排序sort area 記憶體不足會用到臨時表空間
排序:
使用到排序的操作有: create index,order by ,group by ,收集統計資訊時,都可能會用臨時表空間
排序操作首先會在sort area 記憶體中進行排序,一旦sort area 記憶體不足,則會使用到臨時表空間 sort in disk
oracle 9i 目前排序在pga 中用 自動管理
SQL> show parameter pga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target big integer 25165824
SQL> show parameter work
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
workarea_size_policy string AUTO
一般把這個引數設大點
以下例子說明sort area 記憶體不足 用到臨時表空間 sort in disk
ALTER SESSION SET workarea_size_policy =MANUAL --改為手動
SQL> alter session set sort_area_size=10000000;
SQL> set autotrace traceonly
SQL> select owner,object_name from dba_objects order by object_id;
8655 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 VIEW OF 'DBA_OBJECTS'
3 2 UNION-ALL
4 3 FILTER
5 4 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
6 5 NESTED LOOPS
7 6 TABLE ACCESS (FULL) OF 'USER$'
8 6 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
9 4 TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
10 9 INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
11 3 NESTED LOOPS
12 11 TABLE ACCESS (FULL) OF 'USER$'
13 11 INDEX (RANGE SCAN) OF 'I_LINK1' (NON-UNIQUE)
Statistics
----------------------------------------------------------
0 recursive calls
0 db block gets
5443 consistent gets
0 physical reads
0 redo size
248492 bytes sent via SQL*Net to client
6839 bytes received via SQL*Net from client
578 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
8655 rows processed
SQL> alter session set sort_area_size=100;
Session altered.
SQL> set autotrace traceonly
SQL> select owner,object_name from dba_objects order by object_id;
8655 rows selected.
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 VIEW OF 'DBA_OBJECTS'
3 2 UNION-ALL
4 3 FILTER
5 4 TABLE ACCESS (BY INDEX ROWID) OF 'OBJ$'
6 5 NESTED LOOPS
7 6 TABLE ACCESS (FULL) OF 'USER$'
8 6 INDEX (RANGE SCAN) OF 'I_OBJ2' (UNIQUE)
9 4 TABLE ACCESS (BY INDEX ROWID) OF 'IND$'
10 9 INDEX (UNIQUE SCAN) OF 'I_IND1' (UNIQUE)
11 3 NESTED LOOPS
12 11 TABLE ACCESS (FULL) OF 'USER$'
13 11 INDEX (RANGE SCAN) OF 'I_LINK1' (NON-UNIQUE)
Statistics
----------------------------------------------------------
7 recursive calls
34 db block gets
5445 consistent gets
185 physical reads --物理讀
0 redo size
248492 bytes sent via SQL*Net to client
6839 bytes received via SQL*Net from client
578 SQL*Net roundtrips to/from client
0 sorts (memory)
1 sorts (disk)
8655 rows processed
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-196049/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於排序、sort_area_size、臨時表空間(轉)排序
- TimesTen臨時(記憶體)空間使用和調整臨時(記憶體)空間記憶體
- 系統臨時表空間不足問題
- 增大sort_area_size 後 排序時間增長排序
- mysql臨時表和記憶體表MySql記憶體
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 建立index時候要用到排序空間Index排序
- 什麼時候會用到透明加密表空間呢?加密
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- 臨時表空間的建立、刪除,設定預設臨時表空間
- MySQL-37:記憶體臨時表MySql記憶體
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- oracle的臨時表空間Oracle
- Oracle Temp 臨時表空間Oracle
- Jenkins臨時空間不足處理辦法Jenkins
- 記憶體表和臨時表的區別記憶體
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- 【實驗】重建臨時表空間解決臨時表空間過大問題
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案
- Script:List SORT ACTIVITY監控臨時空間的使用
- oracle 表空間 不足時如何處理Oracle
- 【臨時表空間】11g中使用 SHRINK方法縮小臨時表空間和臨時檔案(續)
- oracle臨時表空間相關Oracle
- MySQL InnoDB臨時表空間配置MySql
- Oracle TEMP臨時表空間概念Oracle
- Oracle 臨時表空間的概念Oracle
- 臨時表空間操作總結
- ORACLE臨時表空間總結Oracle
- oracle 重建臨時表空間 tempfileOracle
- 刪掉Oracle臨時表空間Oracle
- ORACLE臨時表空間的清理Oracle
- oracle 表空間,臨時表空間使用率查詢Oracle
- 【轉載】MySQL之臨時表和記憶體表MySql記憶體