獲取表空間是否可自動擴充套件的SQL
好長時間沒寫SQL了,今天看到同事在使用一個檢查表空間是否可自動擴充套件的SQL,不但效率不高,而且非常的累贅,忍不住自己寫了一個。
原始SQL如下:
SQL> select distinct
tablespace_name, autoextensible
2 from DBA_DATA_FILES
3 where autoextensible = 'YES'
4 union
5 select distinct tablespace_name, autoextensible
6 from DBA_DATA_FILES
7 where autoextensible = 'NO'
8 and tablespace_name not in
9 (select distinct tablespace_name
10 from DBA_DATA_FILES
11 where autoextensible = 'YES');
TABLESPACE_NAME AUT
------------------------------ ---
SYSAUX NO
SYSTEM NO
UNDOTBS1 YES
USERS NO
這個SQL的唯一優點就是思路比較清晰,透過SQL的寫法可以明確的看到作者是如何根據資料檔案的可擴充套件性來判斷表空間是否可以擴充套件的。
當一個表空間中只要包含一個可擴充套件的資料檔案,則這個表空間就是可擴充套件的,只有表空間下所有的資料檔案都是不可擴充套件的,這個表空間才是不可擴充套件的。
雖然作者的思路沒有問題,但是這個SQL的寫法實在不敢恭維,對DBA_DATA_FILES檢視查詢了三次,每次都使用了DISTINCT,同時還包含了NOT IN連線以及UNION集合。
其他的先不說,UNION在這裡就完全沒有意義,二者包含的結果是互斥的,那麼這裡至少應該使用UNION ALL。
其實這個SQL根本不需要這麼麻煩,因為AUTOEXTENSIBLE只有兩個取值,YES或NO,那麼只需要一次查詢DBA_DATA_FILES就可以得到結果:
SQL> SELECT TABLESPACE_NAME,
MAX(AUTOEXTENSIBLE)
2
FROM DBA_DATA_FILES
3
GROUP BY TABLESPACE_NAME;
TABLESPACE_NAME MAX
------------------------------ ---
SYSAUX NO
UNDOTBS1 YES
USERS NO
SYSTEM NO
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-716968/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢表空間是否具備自動擴充套件空間套件
- 表空間自動擴充套件 AUTOALLOCATE 的擴充套件規律套件
- 擴充套件表空間套件
- 增加自動擴充套件臨時表空間及改變預設表空間套件
- 【實驗】修改資料庫檔案為自動擴充套件以達到表空間自動擴充套件的目的資料庫套件
- 使用oracle procedure儲存過程自動擴充套件表空間空間tablespace_自動化運維Oracle儲存過程套件運維
- oracle UNDO表空間一個bug——undo表空間快速擴充套件Oracle套件
- ubuntu 擴充套件磁碟空間Ubuntu套件
- 大檔案表空間受作業系統限制無法自動擴充套件作業系統套件
- 擴充套件系統的磁碟空間套件
- Oracle 10g 物理DataGuard擴充套件表空間Oracle 10g套件
- 表空間無法擴充套件問題處理套件
- mysql空間擴充套件 VS PostGISMySql套件
- 擴充套件邏輯卷空間套件
- T-SQL——透視PIVOT動態獲取待擴充套件元素集SQL套件
- enqueue HW wait 引起表空間突然大量擴充套件ENQAI套件
- ORA-01659錯誤,主要是表空間不夠,設定自動擴充套件套件
- Linux擴充套件LVM空間Linux套件LVM
- HP-UX擴充套件swap空間UX套件
- HP-UNIX擴充套件/tmp空間套件
- 測試oracle表空間自動擴充套件特性與分配固定size的關係(儲存屬性)Oracle套件
- 有限螢幕的無限空間 -從空間角度談移動介面擴充套件套件
- windchill 擴充USERS表空間
- 使用命令擴充套件vmdk磁碟空間套件
- 擴充套件表套件
- 可擴充套件性套件
- 可擴充套件的使用者表設計套件
- CONNECT BY 擴充套件用法,實現獲取bom級聯擴充套件數量套件
- 虛擬磁碟空間滿後的擴充套件方法套件
- 開源 - Ideal庫 -獲取特殊時間擴充套件方法(四)Idea套件
- SQL Server資料庫檔案不滿足擴充套件條件時不再自動擴充套件SQLServer資料庫套件
- mssql 獲取表空間大小SQL
- 利用可恢復空間分配技術自動分配表空間
- 獲取資料庫空閒空間的SQL資料庫SQL
- 設定maxsize的自動擴充套件資料檔案在達到maxsize後是否會繼續擴充套件套件
- 自動化時序異常檢測的可擴充套件通用框架套件框架
- 表空間擴充套件過程 停電導致異常中斷, 無法啟動套件
- 華納雲:如何配置oracle表空間自動擴容?Oracle