SELECT
name AS dbname,'oracle'AS dbtype,
version AS dbversion,
log_mode AS logmode,
database_role AS dbrole,(SELECT LISTAGG(DB_UNIQUE_NAME,', ')WITHINGROUP(ORDERBY dest_id)AS dbuname FROM v$archive_dest WHERE UPPER(db_unique_name)NOTIN(SELECT UPPER(db_unique_name)FROM v$database)AND db_unique_name !='NONE')AS dbuname ,CASEWHEN(SELECTcount(*)FROM gv$instance)>1THEN1ELSE0ENDAS israc ,(SELECTcount(*)FROM gv$instance)AS racnum,
TO_CHAR(startup_time,'YYYY-MM-DD HH24:MI:SS')AS uptime
FROM v$database, v$instance
实例
SELECT inst_id AS instid ,
instance_name AS instname,
host_name AS hostname,
TO_CHAR(startup_time,'YYYY-MM-DD HH24:MI:SS')AS uptime,statusAS inststatus,
database_status AS dbstatus
FROM gv$instance
orderby inst_id
参数
SELECT name AS pname, display_value AS pvalue, description AS description
FROM v$parameter
WHERE name IN('memory_target','sga_target','pga_aggregate_target','processes','sessions','db_block_size','log_buffer','shared_pool_size','buffer_cache_size','java_pool_size','large_pool_size','db_recovery_file_dest','db_recovery_file_dest_size')
用户 及对象
WITH z AS(SELECT
owner ,
NVL("TABLE",0)AS tablenum,
NVL("VIEW",0)AS viewnum,
NVL("FUNCTION",0)AS functionnum,
NVL("INDEX",0)AS indexnum,
NVL("PROCEDURE",0)AS procedurenum,
NVL("TRIGGER",0)AS triggernum,
NVL("SYNONYM",0)AS synonymnum,
NVL("SEQUENCE",0)AS sequencenum,
NVL("PACKAGE",0)AS packagenum
FROM(SELECT owner, object_type,COUNT(*)AS cnt
FROM all_objects
WHERE owner IN(SELECT username FROM dba_users WHERE account_status ='OPEN')AND owner NOTIN('SYSTEM','SYS')GROUPBY owner, object_type ) t
PIVOT(SUM(cnt)FOR object_type IN('TABLE'AS"TABLE",'VIEW'AS"VIEW",'FUNCTION'AS"FUNCTION",'INDEX'AS"INDEX",'PROCEDURE'AS"PROCEDURE",'TRIGGER'AS"TRIGGER",'SYNONYM'AS"SYNONYM",'SEQUENCE'AS"SEQUENCE",'PACKAGE'AS"PACKAGE")) p)SELECT
a.username,
a.account_status AS userstatus,
TO_CHAR(a.created,'YYYY-MM-DD HH24:MI:SS')AS createtime,
TO_CHAR(a.lock_date,'YYYY-MM-DD HH24:MI:SS')AS locktime,
TO_CHAR(a.expiry_date,'YYYY-MM-DD HH24:MI:SS')AS expirytime,
TO_CHAR(a.PASSWORD_CHANGE_DATE,'YYYY-MM-DD HH24:MI:SS')AS changepstime,
TO_CHAR(a.LAST_LOGIN,'YYYY-MM-DD HH24:MI:SS')AS lastlogintime,
a.default_tablespace AS dtablespace,a.temporary_tablespace AS ttablespace,
z.tablenum,z.viewnum,z.functionnum,z.indexnum,z.procedurenum,z.triggernum,z.synonymnum,z.sequencenum,z.packagenum
FROM dba_users a LEFTJOIN z ON a.username=z.owner
ORDERBY a.account_status DESC, a.username
WITH z AS(SELECT k.owner,k.name, LISTAGG(k.column_name,', ')WITHINGROUP(ORDERBY k.column_position)AS partition_key
FROM dba_part_key_columns k WHERE k.owner NOTIN('AUDSYS','MDSYS','SYS','SYSTEM')AND k.object_type ='TABLE'GROUPBY k.owner,k.name )SELECT t.owner AS username,
t.table_name AS tablename,
z.partition_key AS partkey,
t.partitioning_type AS parttype,
t.INTERVALASinterval,
t.SUBPARTITIONING_TYPE AS subparttype,
p.partition_name AS partname,
p.high_value AS highvalue,
p.tablespace_name AStablespace,ROUND(s.bytes /1024/1024,2)||'MB'AS"size",
p.num_rows AS numrows,
TO_CHAR( p.last_analyzed ,'YYYY-MM-DD HH24:MI:SS')AS analyzed
FROM dba_part_tables t LEFTJOIN dba_tab_partitions p ON t.owner=p.table_owner AND t.table_name =p.table_name
LEFTJOIN z ON t.owner=z.owner AND t.table_name =z.name
LEFTJOIN dba_segments s ON t.owner = s.owner AND t.table_name = s.segment_name AND p.partition_name = s.partition_name
WHERE t.owner NOTIN('AUDSYS','MDSYS','SYS','SYSTEM')orderby t.owner,t.table_name,p.partition_name
分区索引
SELECT
pi.owner AS username,
pi.table_name AS tablename,
pi.index_name AS indexname,
pi.locality AS locality,
pi.partitioning_type AS parttype,
ip.partition_name AS partname,
ip.statusASstatus,
ip.tablespace_name AStablespace,
ip.high_value AS highvalue,
TO_CHAR(ip.last_analyzed,'YYYY-MM-DD HH24:MI:SS')AS analyzed
FROM
dba_part_indexes pi
JOIN
dba_ind_partitions ip
ON pi.owner = ip.index_owner
AND pi.index_name = ip.index_name
WHERE
pi.owner NOTIN('AUDSYS','MDSYS','SYS','SYSTEM')ORDERBY
pi.owner, pi.table_name, pi.index_name, ip.partition_name
redolog
SELECT
l.group# AS "group",
l.member AS filepath,
lg.thread# AS thread,
lg.sequence# AS "sequence",
lg.bytes/1024/1024/1024||'GB'AS"size",
lg.statusASstatus,
lg.archived AS archived,
TO_CHAR(lg.first_time,'YYYY-MM-DD HH24:MI:SS')AS firsttime
FROM
v$logfile l
JOIN
v$log lg ON l.group# = lg.group#ORDERBY
lg.group#, l.member
慢sql
WITH slow_sql AS(SELECT
dhs.dbid,
dhs.sql_id AS sqlid,SUM(nvl(dhs.executions_delta,0))AS execcount,ROUND(SUM(nvl(dhs.elapsed_time_delta,0))/1000000,3)AS totaltime,ROUND(CASEWHENSUM(nvl(dhs.executions_delta,0))=0THEN0ELSESUM(nvl(dhs.elapsed_time_delta,0))/1000000/SUM(nvl(dhs.executions_delta,0))END,3)AS avgtime,ROUND(SUM(nvl(dhs.cpu_time_delta,0))/1000000,3)AS cputime,ROUND(SUM(nvl(dhs.iowait_delta,0))/1000000,3)AS iowait,SUM(nvl(dhs.disk_reads_delta,0))ASreads,
dhs.parsing_schema_name AS username,COUNT(DISTINCT dhs.instance_number)AS instnum
FROM dba_hist_sqlstat dhs
JOIN dba_hist_snapshot dhsnap
ON dhs.snap_id = dhsnap.snap_id
AND dhs.dbid = dhsnap.dbid
AND dhs.instance_number = dhsnap.instance_number
WHERE
dhsnap.end_interval_time >= SYSDATE -1AND dhs.parsing_schema_name NOTIN('SYS','SYSTEM','AUDSYS','MDSYS')AND nvl(dhs.elapsed_time_delta,0)>0GROUPBY dhs.dbid, dhs.sql_id, dhs.parsing_schema_name
)SELECT
a.sqlid,
a.username,
a.instnum,
a.execcount,
a.totaltime,
a.avgtime,
a.cputime,
a.iowait,
a.reads,
t.sql_text AS sqltext
FROM slow_sql a
JOIN dba_hist_sqltext t
ON a.dbid = t.dbid
AND a.sqlid = t.sql_id
WHERE a.execcount>1and(a.totaltime >60OR a.avgtime >5)ORDERBY a.totaltime DESC, a.avgtime DESC
dblink
SELECT
owner ,
db_link AS dblink ,
username ,
host,
TO_CHAR(created,'YYYY-MM-DD HH24:MI:SS')AS created ,
valid
FROM dba_db_links