排序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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- Jenkins臨時空間不足處理辦法Jenkins
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- MySQL-37:記憶體臨時表MySql記憶體
- 【Oracle】排序與sort_area_sizeOracle排序
- oracle臨時表空間相關Oracle
- 4.2.1.8規劃臨時表空間
- 刪除臨時表空間組
- MySQL InnoDB臨時表空間配置MySql
- 2.5.7 建立預設臨時表空間
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 臨時表空間和回滾表空間使用率查詢
- JavaScript之記憶體空間JavaScript記憶體
- 消除臨時表空間暴漲的方法
- SQLServer如何釋放tempdb臨時表空間SQLServer
- JVM記憶體分為3個記憶體空間JVM記憶體
- MYSQL造資料佔用臨時表空間MySql
- oracle 臨時表空間的增刪改查Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- 臨時表空間被佔滿的原因查詢
- 臨時表空間ORA-1652問題解決
- 10-記憶體空間佈局記憶體
- win10記憶體不足會黑屏嗎_win10電腦記憶體不足黑屏了怎麼辦Win10記憶體
- oracle建立使用者,表空間,臨時表空間,分配許可權步驟詳解Oracle
- 磁碟空間不足
- Mac記憶體空間不足怎麼辦?試試刪除這幾個資料夾!Mac記憶體
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- 電腦C盤空間嚴重不足,教你5招!電腦記憶體瞬間多出10個G記憶體
- 檢視oracle臨時表空間佔用率的檢視Oracle
- Linux使用者空間記憶體管理Linux記憶體
- Allowed memory size 記憶體不足記憶體
- oracle表空間不足:ORA-01653: unable to extend tableOracle
- 深入理解javascript系列(二):記憶體空間JavaScript記憶體
- JVM元空間Metaspace的記憶體結構JVM記憶體
- 當composer update卡住或提示記憶體不足時的分析記憶體
- HANA資料庫查詢大表佔用記憶體空間 for hana 2.0資料庫記憶體
- win10記憶體不足怎麼解決_win10記憶體不足怎麼辦Win10記憶體
- 臨時表空間使用率過高的解決辦法