Oracle數(shù)據(jù)庫(kù)巡檢SQL腳本檢查表空間使用情況、索引、約束、日志、實(shí)例狀態(tài)、表空間狀態(tài)、數(shù)據(jù)文件狀態(tài)等。性能最差的前10條SQL語(yǔ)句和一些擴(kuò)展異常的對(duì)象需要特別關(guān)注。
Oralce數(shù)據(jù)庫(kù)巡檢SQL腳本
1 檢查表空間使用情況
2 檢查是否有 offline 狀態(tài)的表空間
3 在線日志是否存在小于 50M 的及狀態(tài)不正常
4 檢查鎖阻塞
5 查看是否有僵死進(jìn)程
6 檢查是否有失效索引
7 檢查不起作用的約束
8 緩沖區(qū)命中率
9 數(shù)據(jù)字典命中率
10 庫(kù)緩存命中率
11 內(nèi)存中的排序
12 磁盤(pán)中的排序
13 臨時(shí)空間使用率
14 檢查ORACLE實(shí)例狀態(tài)
15 檢查ORACLE表空間的狀態(tài)
16 檢查ORACLE所有數(shù)據(jù)文件狀態(tài)
17 檢查所有回滾段狀態(tài)
18 檢查一些擴(kuò)展異常的對(duì)象
19 DISK READ最高的SQL語(yǔ)句的獲取
20 性能最差的前10條SQL
21 檢查運(yùn)行很久的SQL
22 檢查碎片程度高的表
23 檢查死鎖及處理
24 失效的觸發(fā)器
25 失敗的JOB
Oralce數(shù)據(jù)庫(kù)巡檢SQL腳本
1 檢查表空間使用情況
SELECT B.TABLESPACE_NAME TABLESPACE,
A.EXTENT_MANAGEMENT EXT_MGT,
A.SEGMENT_SPACE_MANAGEMENT SEG_MGT,
A.STATUS,
A.LOGGING,
B.TOTAL,
B.FREE,
B.USED_PCT
FROM DBA_TABLESPACES A,
(SELECT D.TABLESPACE_NAME TABLESPACE_NAME,
ROUND((D.SUMBYTES / 1024 / 1024 / 1024), 2) || 'GB' TOTAL,
ROUND(DECODE(F.SUMBYTES, NULL, 0, F.SUMBYTES) / 1024 / 1024 / 1024,
2) || 'GB' FREE,
ROUND((D.SUMBYTES - DECODE(F.SUMBYTES, NULL, 0, F.SUMBYTES)) * 100 /
D.SUMBYTES,
2) || '%' USED_PCT
FROM (SELECT TABLESPACE_NAME, SUM(BYTES) SUMBYTES
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT TABLESPACE_NAME,
SUM(BYTES) SUMBYTES
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME) D
WHERE F.TABLESPACE_NAME(+) = D.TABLESPACE_NAME
ORDER BY D.TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;
2 檢查是否有 offline 狀態(tài)的表空間
SELECT FILE_ID AS ID,
RELATIVE_FNO "FNO",
ROUND(BYTES / 1024 / 1024) AS MBYTES,
ROUND(MAXBYTES / 1024 / 1024) MAXMBYTES,
BLOCKS,
MAXBLOCKS,
AUTOEXTENSIBLE "AUTO",
INCREMENT_BY "INC",
ROUND(USER_BYTES / 1024 / 1024) "NOW_MB",
USER_BLOCKS,
STATUS,
ONLINE_STATUS "ONLINE_S"
FROM DBA_DATA_FILES;
3 在線日志是否存在小于 50M 的及狀態(tài)不正常
SELECT A.GROUP#, A.STATUS, A.BYTES, B.MEMBER, A.ARCHIVED
FROM V$LOG A, V$LOGFILE B
WHERE A.GROUP# = B.GROUP#;
4 檢查鎖阻塞
SELECT DECODE(REQUEST, 0, '阻塞者:', '等待者:') || SID SID,
ID1,
ID2,
LMODE,
REQUEST,
TYPE
FROM V$LOCK
WHERE (ID1, ID2, TYPE) IN
(SELECT ID1, ID2, TYPE FROM V$LOCK WHERE REQUEST > 0)
ORDER BY ID1, REQUEST;
5 查看是否有僵死進(jìn)程
SELECT SPID FROM V$PROCESS WHERE ADDR NOT IN (SELECT PADDR FROMV$SESSION);
6 檢查是否有失效索引
SELECT OWNER, A.INDEX_NAME, A.INDEX_TYPE, A.STATUS
FROM DBA_INDEXES A
WHERE STATUS = 'UNUSABLE';
SELECT A.INDEX_NAME, A.PARTITION_NAME, A.TABLESPACE_NAME, A.STATUS
FROM DBA_IND_PARTITIONS A
WHERE STATUS = 'UNUSABLE';
7 檢查不起作用的約束
SELECT OWNER, CONSTRAINT_NAME, TABLE_NAME, CONSTRAINT_TYPE, STATUS
FROM DBA_CONSTRAINTS
WHERE STATUS = 'DISABLE'
AND CONSTRAINT_TYPE = 'P';
8 緩沖區(qū)命中率
緩沖命中率應(yīng)大于90%。
SELECT (1 - (SUM(DECODE(NAME, 'PHYSICAL READS', VALUE, 0)) /
(SUM(DECODE(NAME, 'DB BLOCK GETS', VALUE, 0)) +
SUM(DECODE(NAME, 'CONSISTENT GETS', VALUE, 0))))) * 100 "HIT RATIO"
FROM V$SYSSTAT;
9 數(shù)據(jù)字典命中率
數(shù)據(jù)字典命中率應(yīng)大于 95%。
SELECT (1 - (SUM(GETMISSES) / SUM(GETS))) * 100 "HIT RATIO" FROM V$ROWCACHE;
10 庫(kù)緩存命中率
庫(kù)緩存命中率應(yīng)大于 95%。
SELECT SUM(PINS) / (SUM(PINS) + SUM(RELOADS)) * 100 "HIT RATIO" FROMV$LIBRARYCACHE;
11 內(nèi)存中的排序
如果存在大量的磁盤(pán)排序,則表明檢查目前系統(tǒng)中消耗大量磁盤(pán)的 SQL 是否已經(jīng)經(jīng)過(guò)調(diào)整。
SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%SORTS%';
12 磁盤(pán)中的排序
檢查使用磁盤(pán)排序的會(huì)話信息,可以定位執(zhí)行了大量磁盤(pán)排序的會(huì)話。
SELECT B.NAME, A.SID, A.VALUE
FROM V$SESSTAT A, V$STATNAME B
WHERE A.STATISTIC# = B.STATISTIC#
AND B.NAME = 'SORTS (DISK)'
AND A.VALUE > 0
AND ROWNUM < 10
ORDER BY A.VALUE DESC;
13 臨時(shí)空間使用率
SELECT * FROM V$TEMP_SPACE_HEADER;
14 檢查ORACLE實(shí)例狀態(tài)
其中“STATUS”表示ORACLE當(dāng)前的實(shí)例狀態(tài),必須為“OPEN”;“DATABASE_STATUS”表示ORACLE當(dāng)前數(shù)據(jù)庫(kù)的狀態(tài),必須為“ACTIVE”。
SELECT INSTANCE_NAME, HOST_NAME, STARTUP_TIME, STATUS, DATABASE_STATUS FROM V$INSTANCE;
15 檢查ORACLE表空間的狀態(tài)
輸出結(jié)果中STATUS應(yīng)該都為ONLINE。
SELECT TABLESPACE_NAME, STATUS FROM DBA_TABLESPACES;
16 檢查ORACLE所有數(shù)據(jù)文件狀態(tài)
輸出結(jié)果中“STATUS”應(yīng)該都為“ONLINE”。
SELECT NAME, STATUS FROM V$DATAFILE;
輸出結(jié)果中“STATUS”應(yīng)該都為“AVAILABLE”。
SELECT FILE_NAME, STATUS FROM DBA_DATA_FILES;
17 檢查所有回滾段狀態(tài)
輸出結(jié)果中所有回滾段的“STATUS”應(yīng)該為“ONLINE”。
SELECT SEGMENT_NAME, STATUS FROM DBA_ROLLBACK_SEGS;
18 檢查一些擴(kuò)展異常的對(duì)象
如果有記錄返回,則這些對(duì)象的擴(kuò)展已經(jīng)快達(dá)到它定義時(shí)的最大擴(kuò)展值,對(duì)于這些對(duì)象要修改它的存儲(chǔ)結(jié)構(gòu)參數(shù)。
SELECT SEGMENT_NAME,
SEGMENT_TYPE,
TABLESPACE_NAME,
(EXTENTS / MAX_EXTENTS) * 100 PERCENT
FROM SYS.DBA_SEGMENTS
WHERE MAX_EXTENTS != 0
AND (EXTENTS / MAX_EXTENTS) * 100 >= 95
ORDER BY PERCENT;
19 DISK READ最高的SQL語(yǔ)句的獲取
SELECT SQL_TEXT
FROM (SELECT * FROM V$SQLAREA ORDER BY DISK_READS)
WHERE ROWNUM <= 5;
20 性能最差的前10條SQL
SELECT *
FROM (SELECT PARSING_USER_ID EXECUTIONS,
SORTS,
COMMAND_TYPE,
DISK_READS,
SQL_TEXT
FROM V$SQLAREA
ORDER BY DISK_READS DESC)
WHERE ROWNUM < 10;
21 檢查運(yùn)行很久的SQL
SELECT USERNAME,
SID,
OPNAME,
ROUND(SOFAR * 100 / TOTALWORK, 0) || '%' AS PROGRESS,
TIME_REMAINING,
SQL_TEXT
FROM V$SESSION_LONGOPS, V$SQL
WHERE TIME_REMAINING <> 0
AND SQL_ADDRESS = ADDRESS
AND SQL_HASH_VALUE = HASH_VALUE;
22 檢查碎片程度高的表
SELECT SEGMENT_NAME TABLE_NAME, COUNT(*) EXTENTS
FROM DBA_SEGMENTS
WHERE OWNER NOT IN ('SYS', 'SYSTEM')
GROUP BY SEGMENT_NAME
HAVING COUNT(*) = (SELECT MAX(COUNT(*))
FROM DBA_SEGMENTS
GROUP BY SEGMENT_NAME);
23 檢查死鎖及處理
SELECT SID,
SERIAL#,
USERNAME,
SCHEMANAME,
OSUSER,
MACHINE,
TERMINAL,
PROGRAM,
OWNER,
OBJECT_NAME,
OBJECT_TYPE,
O.OBJECT_ID
FROM DBA_OBJECTS O, V$LOCKED_OBJECT L, V$SESSION S
WHERE O.OBJECT_ID = L.OBJECT_ID
AND S.SID = L.SESSION_ID;
24 失效的觸發(fā)器
SELECT OWNER, TRIGGER_NAME, TABLE_NAME, STATUS
FROM DBA_TRIGGERS
WHERE STATUS = 'DISABLED';
25 失敗的JOB
SELECT JOB, WHAT, LAST_DATE, NEXT_DATE, FAILURES, BROKEN
FROM DBA_JOBS
WHERE SCHEMA_USER = 'USER';
點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力!
收藏,你的青睞是我努力的方向!
評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富!
PS:因?yàn)楣娞?hào)平臺(tái)更改了推送規(guī)則,如果不想錯(cuò)過(guò)內(nèi)容,記得讀完點(diǎn)一下“在看”,加個(gè)“星標(biāo)”,這樣每次新文章推送才會(huì)第一時(shí)間出現(xiàn)在你的訂閱列表里。點(diǎn)“在看”支持我吧!
原文來(lái)源:https://mp.weixin.qq.com/s/Fdtc7hZx9yJbj2WZvLuOAQ
來(lái)源:本文內(nèi)容搜集或轉(zhuǎn)自各大網(wǎng)絡(luò)平臺(tái),并已注明來(lái)源、出處,如果轉(zhuǎn)載侵犯您的版權(quán)或非授權(quán)發(fā)布,請(qǐng)聯(lián)系小編,我們會(huì)及時(shí)審核處理。
聲明:江蘇教育黃頁(yè)對(duì)文中觀點(diǎn)保持中立,對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或者完整性不提供任何明示或暗示的保證,不對(duì)文章觀點(diǎn)負(fù)責(zé),僅作分享之用,文章版權(quán)及插圖屬于原作者。
Copyright?2013-2024 JSedu114 All Rights Reserved. 江蘇教育信息綜合發(fā)布查詢平臺(tái)保留所有權(quán)利
蘇公網(wǎng)安備32010402000125
蘇ICP備14051488號(hào)-3技術(shù)支持:南京博盛藍(lán)睿網(wǎng)絡(luò)科技有限公司
南京思必達(dá)教育科技有限公司版權(quán)所有 百度統(tǒng)計(jì)