檢視臨時表空間佔用及當前天在執行的sql
所以,在處理以上操作時,dba需要加倍關注temp的使用情況,v$sort_segment字典可以記載temp的比較詳細的使用情況,而v$sort_usage將會告訴我們是誰在做什麼.
sql>select tablespace_name,current_users,total_blocks,used_blocks,free_blocks from v$sort_segment;
TABLESPACE_NAME CURRENT_USERS TOTAL_BLOCKS USED_BLOCKS FREE_BLOCKS
------------------------------- ------------- ------------ ----------- -----------
TEMP 1 63872 30464 33408
sql>
SQL>select username,session_addr,sqladdr,sqlhash from v$sort_usage
USERNAME SESSION_ADDR SQLADDR SQLHASH
------------------------------ ---------------- ---------------- ----------
CYBERCAFE C0000000D7EF99E8 C0000000E1BFE970 4053158416
然後通過多表聯接,我們可以找出更詳細的操作:
SQL>select se.username,se.sid,su.extents,su.blocks*to_number(rtrim(p.value)) as Space,tablespace,segtype,sql_text from v$sort_usage su,v$parameter p,v$session se,v$sql s
where p.name='db_block_size' and su.session_addr=se.saddr and s.hash_value=su.sqlhash and s.address=su.sqladdr order by se.username,se.sid;
USERNAME SID EXTENTS SPACE TABLESPACE SEGTYPE
------------------------------ ---------- ---------- ---------- ------------------------------- ---------
SQL_TEXT
-------------------------------------------------------------------------------------------------------------------------
CYBERCAFE 42 238 249561088 TEMP SORT
select 1 from sys.streams$_prepare_ddl p where ((p.global_flag=1 and :1 is null) or (p.global_flag=0 and p.usrid=:2)) and rownum=1
本例應該是由一些異常引起的,其實大多數情況下sort都會在幾乎內結束,如果在sort操作的若干秒內剛好就捕獲了該SQL,應該走狗屎運的事情,即你知道某個SQL將會發生sort操作,當你想捕抓它們時,發現它們已經sort完了,排序完畢後sort segment會被smon清除。但很多時間,我們則會遇到臨時段沒有被釋放,temp表空間幾乎滿的狀況,這時該如何處理呢?
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-22212/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視oracle臨時表空間佔用率的檢視Oracle
- Oracle臨時表空間檢視、新增臨時表空間資料檔案、修改預設臨時表空間 方法!Oracle
- 【臨時表空間組】臨時表空間組的建立、維護及應用
- MYSQL造資料佔用臨時表空間MySql
- SQL Server 檢視錶佔用空間大小SQLServer
- SQL Server檢視所有表大小,所佔空間SQLServer
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- 【儲存管理】建立臨時表空間組、建立臨時表空間組及使用
- 檢視佔用磁碟空間的程式
- 檢視ORACLE的表所佔空間大小Oracle
- Oracle檢視物件佔用空間Oracle物件
- 臨時表空間被佔滿的原因查詢
- Oracle下查詢臨時表空間佔用率Oracle
- 插敘那些sql和那些sessioin用的臨時表空間SQL
- 一次臨時表空間大量佔用問題的處理
- oracle的臨時表空間Oracle
- 解決Oracle臨時表空間佔滿的問題Oracle
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- 臨時表空間的建立、刪除,設定預設臨時表空間
- oracle 臨時表空間Oracle
- oracle臨時表空間Oracle
- oracle 檢視錶所佔用的空間大小Oracle
- 臨時表空間達到幾十G,執行SQL語句報錯解決SQL
- 批量處理時臨時增加回滾表空間臨時表空間檔案
- PostgreSQL Page頁結構解析(4)- 執行DML時表佔用空間解析SQL
- linux檢視mysql佔用磁碟空間LinuxMySql
- Oracle 臨時表空間的概念Oracle
- ORACLE臨時表空間的清理Oracle
- 檢視SQL SERVER表的空間使用情況SQLServer
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- Oracle 臨時表空間概念Oracle
- oracle臨時表空間組Oracle
- Oracle Temp 臨時表空間Oracle
- sql檢視所有表空間使用情況SQL
- 檢視資料庫佔用磁碟空間的方法資料庫
- 【TEMP】臨時表空間的工作原理及維護方法
- 【實驗】重建臨時表空間解決臨時表空間過大問題