檢視臨時表空間佔用及當前天在執行的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
- SQL Server 檢視錶佔用空間大小SQLServer
- SQL Server檢視所有表大小,所佔空間SQLServer
- MYSQL造資料佔用臨時表空間MySql
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- 檢視佔用磁碟空間的程式
- 臨時表空間被佔滿的原因查詢
- linux檢視mysql佔用磁碟空間LinuxMySql
- MySQL 5.7 新特性 共享臨時表空間及臨時表改進MySql
- Oracle 12C RMAN備份佔用大量臨時表空間Oracle
- mysql臨時表,臨時表空間,ibtmp1表空間暴增原因初探MySql
- PostgreSQL Page頁結構解析(4)- 執行DML時表佔用空間解析SQL
- 檢視資料庫佔用磁碟空間的方法資料庫
- Linux技巧--檢視檔案及資料夾佔用空間大小Linux
- netstat -ano |findstr 6379 檢視redis佔用的臨時埠Redis
- oracle臨時表空間相關Oracle
- 4.2.1.8規劃臨時表空間
- 刪除臨時表空間組
- MySQL InnoDB臨時表空間配置MySql
- 透過空間佔用和執行計劃瞭解SQL Server的行儲存索引SQLServer索引
- 消除臨時表空間暴漲的方法
- Linux如何檢視系統/伺服器的執行時間及啟動時間?Linux伺服器
- Linux 檢視程式啟動時間、執行時間Linux
- 2.5.7 建立預設臨時表空間
- 查詢過去一段時間內某條sql使用的臨時表空間大小SQL
- 使用聯機SQL執行表空間還原(一)SQL
- oracle建立臨時表空間和資料表空間以及刪除Oracle
- 臨時表空間和回滾表空間使用率查詢
- 【TUNE_ORACLE】檢視Oracle的壞塊在空閒空間中還是在已用空間中的SQL參考OracleSQL
- oracle 臨時表空間的增刪改查Oracle
- oracle11g 查詢臨時表空間的使用率和正在使用臨時表空間的使用者Oracle
- AWR佔用sysaux表空間太大UX
- 在Linux中,如何檢視當前日期和時間?Linux
- SQLServer如何釋放tempdb臨時表空間SQLServer
- 檢視ELF中資料段哪些變數佔用空間變數
- 達夢使用聯機SQL執行表空間還原(二)SQL
- 當使用者無限制使用表空間配額且表空間有足夠空間時出現超出表空間的空間限額
- 如何檢視SQL的執行計劃SQL