我常用的幾個SQL,不斷新增中
轉自:http://space.itpub.net/9134/viewspace-166449
Dba做日常Oracle的維護SQL相當多,我的近百個,如下的幾個是經常用的,不斷的會在本文件新增。
1、檔案IO統計
select TS.Name,
DF.Name File_Name,
FS.Phyblkrd Blocks_Read,
FS.Phyblkwrt Blocks_Written,
FS.Phyblkrd+FS.Phyblkwrt Total_IOs
from V$FILESTAT FS, V$DATAFILE DF,v$tablespace TS
where DF.File#=FS.File#
AND DF.ts#=TS.TS#
order by FS.Phyblkrd+FS.Phyblkwrt desc;
2、表空間統計
SELECT upper(f.tablespace_name) "表空間名",
d.Tot_grootte_Mb "表空間大小(M)",
d.Tot_grootte_Mb - f.total_bytes "已使用空間(M)",
to_char(round((d.Tot_grootte_Mb - f.total_bytes) / d.Tot_grootte_Mb * 100,2),'990.99') "使用比",
f.total_bytes "空閒空間(M)",
f.max_bytes "最大塊(M)"
FROM
(SELECT tablespace_name,
round(SUM(bytes)/(1024*1024),2) total_bytes,
round(MAX(bytes)/(1024*1024),2) max_bytes
FROM sys.dba_free_space
GROUP BY tablespace_name) f,
(SELECT dd.tablespace_name, round(SUM(dd.bytes)/(1024*1024),2) Tot_grootte_Mb
FROM sys.dba_data_files dd
GROUP BY dd.tablespace_name) d
WHERE d.tablespace_name = f.tablespace_name
ORDER BY 4 DESC
3、檢視回滾段狀態
SELECT a.segment_name,b.status
FROM Dba_Rollback_Segs a,
v$rollstat b
WHERE a.segment_id=b.usn
ORDER BY 2
4、檢視哪些session正在使用哪些回滾段
/*col 回滾段名 format a10
col SID format 9990
col 使用者名稱 format a10
col 操作程式 format a80
col status format a6 trunc*/
SELECT r.name 回滾段名,
s.sid,
s.serial#,
s.username 使用者名稱,
s.status,
s.SQL_ADDRESS,
t.cr_get,
t.phy_io,
t.used_ublk,
t.noundo,
substr(s.program, 1, 78) 操作程式
FROM sys.v_$session s,sys.v_$transaction t,sys.v_$rollname r
WHERE t.addr = s.taddr and t.xidusn = r.usn
-- AND r.NAME IN ('ZHYZ_RBS')
ORDER BY t.cr_get,t.phy_io
5、檢視無法擴充套件的段
SELECT segment_name,
segment_type,
owner,
a.tablespace_name "tablespacename",
initial_extent/1024 "inital_extent(K)",
next_extent/1024 "next_extent(K)",
pct_increase,
b.bytes/1024 "tablespace max free space(K)",
b.sum_bytes/1024 "tablespace total free space(K)"
FROM dba_segments a,
(SELECT tablespace_name,MAX(bytes) bytes,SUM(bytes) sum_bytes FROM dba_free_space GROUP BY tablespace_name) b
WHERE a.tablespace_name=b.tablespace_name
AND next_extent>b.bytes
ORDER BY 4,3,1
6、檢視系統鎖
SELECT A.OWNER,
A.OBJECT_NAME,
B.XIDUSN,
B.XIDSLOT,
B.XIDSQN,
B.SESSION_ID,
B.ORACLE_USERNAME,
B.OS_USER_NAME,
B.PROCESS,
B.LOCKED_MODE,
C.MACHINE,
C.STATUS,
C.SERVER,
C.SID,
C.SERIAL#,
C.PROGRAM
FROM ALL_OBJECTS A,
V$LOCKED_OBJECT B,
SYS.GV_$SESSION C
WHERE ( A.OBJECT_ID = B.OBJECT_ID )
AND (B.PROCESS = C.PROCESS )
-- AND
ORDER BY 1,2 ;
7、檢視Io較大正在執行的session
SELECT se.sid,
se.serial#,
pr.SPID,
se.username,
se.status,
se.terminal,
se.program,
se.MODULE,
se.sql_address,
st.event,
st.p1text,
st.p1,
st.p2,
st.p3,
st.STATE,
st.SECONDS_IN_WAIT,
si.physical_reads,
si.block_changes
FROM v$session se,
v$session_wait st,
v$sess_io si,
v$process pr
WHERE st.sid=se.sid
AND st.sid=si.sid
AND se.PADDR=pr.ADDR
AND se.sid>6
AND st.wait_time=0
AND st.event NOT LIKE '%SQL%'
ORDER BY physical_reads DESC
8、檢視正在使用臨時段的session
SELECT username,
sid,
serial#,
sql_address,
machine,
program,
tablespace,
segtype,
contents
FROM v$session se,
v$sort_usage su
WHERE se.saddr=su.session_addr
9、檢視某一個作業系統程式的SQL
SELECT a.username,
a.machine,
a.program,
a.sid,
a.serial#,
a.status,
c.piece,
c.sql_text
FROM v$session a,
v$process b,
v$sqltext c
WHERE b.spid=****08
AND b.addr=a.paddr
AND a.sql_address=c.address(+)
ORDER BY c.piece
10、檢視enqueue鎖狀態
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid
sess, 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
;
10、找出enqueue等待的holder程式
SELECT DECODE(request,0,'Holder: ','Waiter: ')||sid
sess, id1, id2, lmode, request,
type FROM
V$LOCK WHERE (id1, id2, type)
IN (SELECT id1, id2, type FROM V$LOCK WHERErequest>0)
ORDER BY id1, request
;
11、檢視hotblock
SELECT /*+ ordered */
E.OWNER || '.' || E.SEGMENT_NAME SEGMENT_NAME,
E.EXTENT_ID EXTENT#,
X.DBABLK - E.BLOCK_ID + 1 BLOCK#,
X.TCH,
L.CHILD#
FROM SYS.V$LATCH_CHILDREN L, SYS.X$BH X, SYS.DBA_EXTENTS E
WHERE L.NAME = 'cache buffers chains'
AND L.SLEEPS > &SLEEP_COUNT
AND X.HLADDR = L.ADDR
AND E.FILE_ID = X.FILE#
AND X.DBABLK BETWEEN E.BLOCK_ID AND E.BLOCK_ID + E.BLOCKS - 1
ORDER BY X.TCH;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16486600/viewspace-545059/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幾個常用的網路診斷命令
- Linux常用命令(不斷更新中)Linux
- postmen新增常用斷言解析
- 我設計資料庫常用的幾個原則資料庫
- JS常用判斷空對像的幾種方法JS
- Kotlin中的幾個常用函式let with run also applyKotlin函式APP
- git的幾個常用基本操作Git
- 常用的Linux,記住了幾個?Linux
- 一個ArcGIS中我知道但是不常用的工具
- python 的幾個常用的函式Python函式
- Spring中11個最常用的擴充套件點,你知道幾個?Spring套件
- AppDelegate中幾個常用回撥函式的呼叫時機APP函式
- 工作中,我們經常用到哪些SQL語句呢?SQL
- Cesium 比較常用的幾個方法
- 《安全測試常用的幾個工具》
- Nginx的幾個常用配置和技巧Nginx
- js中我最常用的幾種遍歷處理資料的方法梳理JS
- linux常用的幾個系統介紹Linux
- 深入 TypeScript – 2( 幾個常用的小技巧)TypeScript
- 幾個常用的linux效能監控命令Linux
- Java的幾個不錯的網站Java網站
- 檢視SQL執行計劃的幾種常用方法YQSQL
- 如何判斷sql中的索引是否生效SQL索引
- js 中斷迴圈的幾種方式JS
- ES6陣列新增的幾個方法陣列
- 常用的sqlSQL
- Java中幾個常用併發佇列比較 | BaeldungJava佇列
- 別人大廠offer不斷,我兩個月了還沒找到前端工作!前端
- 2020年我的幾個沒想到
- 分享我的幾個學習故事
- Python中判斷字典的值常用的方法!Python
- 幾個SQL查詢小技巧SQL
- 我常用的4個備份工具
- sql server 計算兩個時間 相差的 幾天幾時幾分幾秒SQLServer
- JavaScript陣列 幾個常用方法JavaScript陣列
- 分享 Python 3.6 中常用的幾個新特性Python
- Laravel 9 個不經常用的小技巧Laravel
- Python中判斷字母大小寫常用的方法!Python
- 給2021年的我立幾個FLAG