一、前言
1.ORACLE系统表视图表
v$controlfile:控制文件的信息;@b@v$datafile:数据文件的信息;@b@v$log:日志文件的信息;@b@v$process:处理器的信息;@b@v$session:会话信息;@b@v$transaction:事务信息;@b@v$resource:资源信息;@b@v$sga:系统全局区的信息。
2.ORACLE系统对象表
--DBA对象@b@select * from DBA_OBJECTS@b@--所有对象@b@select * from ALL_OBJECTS@b@--用户所属对象@b@select * from USER_OBJECTS@b@--所有对象包括表、索引、序列等,具体如下@b@CONSUMER GROUP@b@INDEX PARTITION@b@SEQUENCE@b@SCHEDULE@b@TABLE PARTITION@b@RULE@b@JAVA DATA@b@PROCEDURE@b@OPERATOR@b@WINDOW@b@PACKAGE@b@PACKAGE BODY@b@LIBRARY@b@RULE SET@b@PROGRAM@b@LOB@b@TYPE BODY@b@CONTEXT@b@JAVA RESOURCE@b@XML SCHEMA@b@TRIGGER@b@JOB CLASS@b@DIRECTORY@b@MATERIALIZED VIEW@b@TABLE@b@INDEX@b@SYNONYM@b@VIEW@b@FUNCTION@b@WINDOW GROUP@b@JAVA CLASS@b@INDEXTYPE@b@CLUSTER@b@TYPE@b@EVALUATION CONTEXT@b@JOB
3.ORACLE系统表信息(DBA_TABLES-dba表、ALL_TABLES所有表、USER_TABLES用户表)
select * from DBA_TABLES@b@select * from ALL_TABLES@b@select * from USER_TABLES
4.ORACLE系统字段信息
select * from DBA_TAB_COLUMNS@b@select * from ALL_TAB_COLUMNS@b@select * from USER_TAB_COLUMNS
5、ORACLE其他更多
--完整性约束 @b@DBA_CONSTRAINTS、ALL_CONSTRAINTS和USER_CONSTRAINST显示有关约束的一般信息。 @b@DBA_CONS_COLUMNS、ALL_CONS_COLUMNS和USER_CONS_COLUMNS显示有关列的相关约束的一般信息。 @b@@b@--视图 @b@DBA_VIEWS、ALL_VIEWS和USER_VIEWS。 @b@注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括视图。 @b@@b@--序列@b@DBA_SEQUENCES、ALL_SEQUENCES和USER_SEQUENCES。 @b@注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括序列。 @b@@b@--同义词 @b@DBA_SYNONYMS、ALL_SYNONYMS和USER_SYNONYMS。 @b@注意:DBA_OBJECTS、ALL_OBJECTS和USER_OBJECTS显示了模式对象的信息,包括同义词。 @b@@b@--索引 @b@DBA_INDEXS、ALL_INDEXS、USER_INDEXS、DBA_IND_COLUMNS、ALL_IND_COLUMNS和USER_IND_COLUMNS。 @b@@b@--用户 @b@DBA_USERS。 @b@@b@--角色 @b@DBA_ROLES。 @b@@b@--表空间定额 @b@DBA_TS_QUOTAS。 @b@@b@--配置表 @b@DBA_PROFILES。 @b@@b@--表空间 @b@DBA_TABLESPACES。 @b@@b@--数据文件 @b@DBA_DATA_FILES。 @b@@b@--段 @b@DBA_SEGMENTS、USER_SEGMENT。 @b@@b@--回滚段@b@DBA_ROLLBACK_SEGS、V$ROLLNAME、V$ROLLSTAT。
二、示例说明
1.查询关联索引表字段表sql语句
select i.index_name,@b@ i.index_type,@b@ i.table_owner,@b@ i.table_name,@b@ i.uniqueness,@b@ i.tablespace_name,@b@ c.column_name,@b@ c.column_position,@b@ c.column_length@b@from user_indexes i, user_ind_columns c@b@where i.index_name = c.index_name;
2.查出锁定表的session的sid, serial#,os_user_name, machine name, terminal和执行的语句
SELECT l.session_id sid,@b@ s.serial#,@b@ l.locked_mode,@b@ l.oracle_username,@b@ s.user#,@b@ l.os_user_name,@b@ s.machine,@b@ s.terminal,@b@ a.sql_text,@b@ a.action@b@ FROM v$sqlarea a,@b@ v$session s,@b@ v$locked_object l@b@ WHERE l.session_id = s.sid@b@ AND s.prev_sql_addr = a.address@b@ ORDER BY sid,@b@ s.serial#;
3.查询全表扫描的SQL语句(增加索引优化-汇总FULL全表执行计划F5结果)
select a.SQL_TEXT,--SQL语句前1000字符@b@ a.SORTS,--所有子游标排序的次数@b@ a.EXECUTIONS,--执行次数@b@ a.PX_SERVERS_EXECUTIONS,--并行执行次数@b@ a.FETCHES,--SQL语句获取次数@b@ a.ROWS_PROCESSED,--SQL语句处理的总行数@b@ a.LAST_ACTIVE_CHILD_ADDRESS,--最后一次活动时间@b@ a.ELAPSED_TIME,--执行时间@b@ a.CPU_TIME,--语句解析,执行,获取,所花费的时间 @b@ a.VERSION_COUNT,--此父游标下子游标的数量@b@ a.SHARABLE_MEM,--所有子游标占用的共享内存@b@ a.PERSISTENT_MEM,--所有子游标在打开的生命周期内固定内存总大小@b@ v.TIMESTAMP,@b@ v.OBJECT_OWNER,@b@ v.OBJECT_NAME,@b@ v.FILTER_PREDICATES,@b@ v.PROJECTION,@b@ a.SQL_ID@b@ from v$sql_plan v, v$sqlarea a, v$session s@b@ where v.OPERATION = 'TABLE ACCESS'@b@ and v.OPTIONS = 'FULL'@b@ and v.OBJECT_OWNER = 'XWOOD'@b@ and v.SQL_ID = a.SQL_ID
4.查询会话及SQL语句详情
select s.*,a.* from v$session s, v$sqlarea a where s.SQL_ADDRESS=a.ADDRESS
5.其他监控数据库性能
5.1、当前数据库各个终端连接数@b@@b@SELECT "连接数","终端名称"@b@@b@FROM ( SELECT COUNT(TERMINAL) AS 连接数,@b@@b@TERMINAL AS 终端名称@b@@b@FROM v$sessionGROUP BY TERMINAL@b@@b@)@b@@b@ORDER BY 连接数 DESC;@b@@b@5.2、查询性能最差的SQL@b@@b@SELECTdisk_reads,executions,rows_processed,@b@@b@first_load_time,sql_text@b@@b@FROMsys.v_$sqlarea@b@@b@WHEREdisk_reads >10@b@@b@AND executions < 10@b@@b@ORDER BYfirst_load_time;@b@@b@5.3、找使用CPU多的用户session@b@@b@SELECT a.sid,spid,status,substr(a.program,1,40) prog,@b@@b@a.terminal,osuser,value/60/100 value@b@@b@FROM v$session a,v$process b,v$sesstat c@b@@b@WHERE c.statistic#=12@b@@b@AND c.sid=a.sid@b@@b@AND a.paddr=b.addr@b@@b@ORDER BY VALUE DESC;@b@@b@5.4、当前各用户运行什么SQL语句@b@@b@SELECTosuser, username, sql_text@b@@b@FROMv$session a, v$sqltext b@b@@b@WHEREa.sql_address =b.address@b@@b@ORDER BY address, piece;