高階 DBA 技巧與錯誤排解
141. 快速重新編譯所有視圖
SQL> SPOOL VIEW1.SQL
SQL> SELECT 'ALTER VIEW ' || TNAME || ' COMPILE;' FROM TAB;
SQL> SPOOL OFF
SQL> @VIEW1.SQL
142. ORA-01555 Snapshot Too Old 解決方案
- 增加
MINEXTENTS 值
- 增加 Extent 大小
- 設定較高的
OPTIMAL 參數
143. 回滾段空間不足 (ORA-01560, ORA-01628) 處理
- 向回滾段表空間新增資料檔或擴充既有檔案
- 增加
MAXEXTENTS 值
144. 加密 PL/SQL 預存程序 (Wrap Utility)
- 將程式碼存為
AA.SQL
- 執行
WRAP INAME=AA.SQL 產生 AA.PLB
- 部署執行
@AA.PLB
145. 監控 Instance 等待事件
SELECT EVENT,
SUM(DECODE(WAIT_TIME,0,0,1)) "PREV",
SUM(DECODE(WAIT_TIME,0,1,0)) "CURR",
COUNT(*) "TOT"
FROM V$SESSION_WAIT
GROUP BY EVENT ORDER BY 4;
146. 檢視回滾段爭用情形
SELECT NAME, WAITS, GETS, WAITS/GETS "RATIO"
FROM V$ROLLSTAT C, V$ROLLNAME D
WHERE C.USN = D.USN;
147. 監控表空間 I/O 比例
SELECT B.TABLESPACE_NAME NAME, B.FILE_NAME "FILE",
A.PHYRDS PYR, A.PHYBLKRD PBR,
A.PHYWRTS PYW, A.PHYBLKWRT PBW
FROM V$FILESTAT A, DBA_DATA_FILES B
WHERE A.FILE# = B.FILE_ID;