数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle系统视图总结


发布日期:2020年05月16日
 
oracle系统视图总结

dba视图

select * from dba_data_files 指定表空间的数据文件及所在的路径

select * from dba_free_space 指定表空间的剩余空间

select * from dba_users 找出当前数据库实例中的所有用户

select * from dba_segments 找出当前数据库实例中的所有对象的物理信息所占空间pctincrease等

select * from dba_tab_columns 指定所有表对应的列名

select * from dba_col_comments 指定所有列的注释信息

select * from dba_tablespaces 列出所有的表空间及相关信息

select * from dba_tab_partitions 所有表分区的信息

select * from dba_ind_columns 显示所有的被索引的列

select * from dba_indexes 显示所有的索引信息

select * from dba_jobs 显示所有的job信息

select * from dba_jobs_running 显示正在运行的job信息

v$视图

select * from v$session 显示当前所有的session信息

v$lock视图

反映内容该视图展示当前保持的锁信息

名称 类型 说明部分

********************************

ADDR RAW() //锁状态对象地址

KADDR RAW() //锁地址

SID NUMBER //保持锁的会话的会话标识符

TYPE VARCHAR() //锁类型 TM:dml排队TX:事务排队UL:用户提供

ID NUMBER //锁标示

ID NUMBER //锁标示

LMODE NUMBER //会话保持的锁的模式

REQUEST NUMBER //进程请求锁定时所处的模式

CTIME NUMBER //当前的锁模式所消耗的时间

BLOCK NUMBER //阻塞其他锁

解释代表无代表空(null)代表行(ss)代表行(sx)共享SS/行X(SSX)独占

通过这个视图你能初步了解锁的模式从而判断锁会出现的地方

v$PROCESS视图

放映内容包含有关当前活动进程的信息

SQL> desc v$process

名称 类型 说明部分

********************************

ADDR RAW() //进程对象状态地址

PID NUMBER //oracle进程标识符类似于序号

SPID VARCHAR() //操作系统进程标识符可以用来和操作系统进程联系

USERNAME VARCHAR() //操作系统进程用户名

SERIAL# NUMBER //进程序列号

TERMINAL VARCHAR() //操作系统终端标示符

PROGRAM VARCHAR() //进程中的程序

TRACEID VARCHAR() //跟蹤文件标识符

BACKGROUND VARCHAR() //表示后台进程null表示其它

LATCHWAIT VARCHAR() //进程正在等待锁的地址如果该值为n/a则锁地址为null

LATCHSPIN VARCHAR() //进程正在轮循的锁的地址如果该职位n/a则为地址nill

PGA_USED_MEM NUMBER //当前正在使用的pga内存

PGA_ALLOC_MEM NUMBER //当前已经分配的pga内存

PGA_FREEABLE_MEM NUMBER //可以释放的已分配的pga内存

PGA_MAX_MEM NUMBER //曾经需要的最大的最大pga内存

这个视图分很有用可以和操做系统联系这样用来诊断跟蹤顶级系统资源使用很有益处这里就可以有个案例经常用到的通过消耗资源做大的系统进程号的到执行的sql语句需要结合v$session视图一起来完成

v$session

反映内容列出连接到实例的会话这个视图有非常多的信息字段也比较多

SQL> desc v$session

名称 类型

SADDR RAW() session地址

SID NUMBER session标识符

SERIAL# NUMBER session会话序列号

AUDSID NUMBER 审计的会话id

PADDR RAW() 拥有该会话的oracle进程号和v$process联系

USER# NUMBER oracle用户

USERNAME VARCHAR() oracle用户名

COMMAND NUMBER 执行的命令

OWNERID NUMBER 会话的所有者

TADDR VARCHAR() 事务地址

LOCKWAIT VARCHAR() 锁等待地址null if none

STATUS VARCHAR() 会话的状态activeinactivekilledcachedsniped

SERVER VARCHAR() 服务的类型共享还是专用服务器

SCHEMA# NUMBER 用户标示模式

SCHEMANAME VARCHAR() 用户模式名称

OSUSER VARCHAR() 客户端操作系统名称

PROCESS VARCHAR() 操作系统客户端进程号

MACHINE VARCHAR() 操作系统机器名称

TERMINAL VARCHAR() 操作系统终端名

PROGRAM VARCHAR() 操作系统程序名

TYPE VARCHAR() session种类

SQL_ADDRESS RAW() 当前回话识别目前执行的sql语句的表示地址

SQL_HASH_VALUE NUMBER 和sql_address一起唯一标示一条执行的sql语句

SQL_ID VARCHAR() 目前被执行的sql语句的标识符

SQL_CHILD_NUMBER NUMBER 目前被执行的sql语句的子句数量

PREV_SQL_ADDR RAW() 与sql_hash_value一起标示上一条被执行的sql语句

PREV_HASH_VALUE NUMBER 与PREV_SQL_ADDR 一起表示上一条被执行的sql语句

PREV_SQL_ID VARCHAR() 前一条被执行的sql语句

PREV_CHILD_NUMBER NUMBER 上一条被执行的sql的子句数量

MODULE VARCHAR() 这个没太懂oracle文档上面的解释比较清楚

MODULE_HASH NUMBER 这是针对上面一个字段的hash value

ACTION VARCHAR() 当前 正在执行被DBMS_APPLICATION_INFOSET_ACTION procedure调用名称

ACTION_HASH NUMBER 针对上一字段name的hash value

CLIENT_INFO VARCHAR() 由APPLICATION_INFOSET_ACTION procedure设定的过程名

FIXED_TABLE_SEQUENCE NUMBER oracle文档有着详细的解释session活动增长记录最好再去看oracle文档

ROW_WAIT_OBJ# NUMBER 对象id对象是table包含行源数据在OW_WAIT_ROW#中的id标识符

ROW_WAIT_FILE# NUMBER 标示数据文件等待在OW_WAIT_ROW#中的row这些行包含在这些数据文件中

ROW_WAIT_BLOCK# NUMBER 表示数据块这些数据块中行源等待在OW_WAIT_ROW#中

ROW_WAIT_ROW# NUMBER 目前被锁定的行

LOGON_TIME DATE time of logon

LAST_CALL_ET NUMBER 当前session为active时 记录的是session是session编程active状态来的运行时间相反则为inactive的时间

PDML_ENABLED VARCHAR() 已经被PDML_STATUS字段所取代

FAILOVER_TYPE VARCHAR()

这是oracle文档对以上这个字段的解释

Indicates whether and to what extent transparent application failover

(TAF) is enabled for the session:

■ NONE Failover is disabled for this session

■ SESSION Client is able to fail over its session following a disconnect

■ SELECT Client is able to fail over queries in progress as well

See Also:

■ Oracle Database Concepts for more information on TAF

■ Oracle Database Net Services Administrators Guide for information on

configuring TAF

FAILOVER_METHOD VARCHAR()

oracle文档的解释

Indicates the transparent application failover method for the session:

■ NONE Failover is disabled for this session

■ BASIC Client itself reconnects following a disconnect

■ PRECONNECT Backup instance can support all connections from

every instance for which it is backed up

FAILED_OVER VARCHAR() //判定是否session已经处于失败状态yes或者no

RESOURCE_CONSUMER_GROUP VARCHAR() 当前session用户的源数据组

PDML_STATUS VARCHAR()

oracle的文档解释

If ENABLED the session is in a PARALLEL DML enabled mode If

DISABLED PARALLEL DML enabled mode is not supported for the

session If FORCED the session has been altered to force PARALLEL DML

PDDL_STATUS VARCHAR()

oracle文档解释

If ENABLED the session is in a PARALLEL DDL enabled mode If

DISABLED PARALLEL DDL enabled mode is not supported for the

session If FORCED the session has been altered to force PARALLEL DDL

PQ_STATUS VARCHAR()

oracle文档解释

If ENABLED the session is in a PARALLEL QUERY enabled mode If

DISABLED PARALLEL QUERY enabled mode is not supported for the

session If FORCED the session has been altered to force PARALLEL

QUERY

CURRENT_QUEUE_DURATION NUMBER if 则session已经在队列中if 则还未形成排队

CLIENT_IDENTIFIER VARCHAR() 客户端session标识符

BLOCKING_SESSION_STATUS VARCHAR()

oracle文档资料注解

Blocking session status:

■ VALID

■ NO HOLDER

■ GLOBAL

■ NOT IN WAIT

■ UNKNOWN

BLOCKING_INSTANCE NUMBER 模块化的实例标识符

BLOCKING_SESSION NUMBER 模块化的session标识符

SEQ# NUMBER 不唯一的标示每个等待的序列号

EVENT# NUMBER 事件数量

EVENT VARCHAR() oracle的session正在等待的数据或者事件

PTEXT VARCHAR() 首个附加参数的描述

P NUMBER 首个附加参数

PRAW RAW() 首个附加参数和前一个区别我还不是很懂

PTEXT VARCHAR() 第二个附加参数的描述

P NUMBER 第二个附加参数

PRAW RAW() 第二个附加参数

PTEXT VARCHAR() 第三个附加参数的描述

P NUMBER 第三个附加参数

PRAW RAW() 第三个附加参数

WAIT_CLASS_ID NUMBER 标记等待事件种类

WAIT_CLASS# NUMBER 等待事件的种类

WAIT_CLASS VARCHAR() 等待事件的名称

WAIT_TIME NUMBER 非代表上一次session上次等待时间代表session当前正在等待

SECONDS_IN_WAIT NUMBER

oracle文档的资料

If WAIT_TIME = then SECONDS_IN_WAIT is the seconds spent in the

current wait condition If WAIT_TIME > then SECONDS_IN_WAIT is the

seconds since the start of the last wait and SECONDS_IN_WAIT WAIT_

TIME / is the active seconds since the last wait ended

STATE VARCHAR()

oracle资料文档

Wait state:

WAITING (the session is currently waiting)

WAITED UNKNOWN TIME (duration of last wait is unknown)

WAITED SHORT TIME (last wait </th of a second)

■ > WAITED KNOWN TIME (WAIT_TIME = duration of last wait)

SERVICE_NAME VARCHAR() session的服务名称

SQL_TRACE VARCHAR() 标示sql是否能被跟蹤

SQL_TRACE_WAITS VARCHAR() 标记是否等待事件被跟蹤

SQL_TRACE_BINDS VARCHAR() 标记是否绑定跟蹤可用与否

v$SQL

反映内容包括查询游标等级的详细信息可以用来找到负责解析游标的会话或者人同样也有着繁多的信息字段我下面只拿出一些常用的关键的列

SQL> desc v$sql;

名称 类型

SQL_TEXT VARCHAR() sql语句的前千个字符

SQL_FULLTEXT CLOB sql语句的全部分作为一个clob字段

SQL_ID VARCHAR() sql与在liberary cache中的parent cursor的标识符

SHARABLE_MEM NUMBER 被子cursor所使用的共享内存的和bytes

PERSISTENT_MEM NUMBER 整个生命周期child cursor所使用的固定内存的大小bytes

USERS_OPENING NUMBER

FETCHES NUMBER 这条sql语句返回的数据行数量

EXECUTIONS NUMBER library cache中这条sql语句被执行的次数

USERS_EXECUTING NUMBER 执行这条sql语句的用户的数量

LOADS NUMBER sql或者object被装载load或者被reloaded次数

FIRST_LOAD_TIME VARCHAR() parent cursor创建的时间

INVALIDATIONS NUMBER this child cursor 曾经无效的数量

PARSE_CALLS NUMBER 做语法分析调用child cursor的次数

DISK_READS NUMBER 直接做磁盘读取的次数

DIRECT_WRITES NUMBER 直接做磁盘写的次数

BUFFER_GETS NUMBER 逻辑读次数

APPLICATION_WAIT_TIME NUMBER 应用等待时间 单位微秒

CLUSTER_WAIT_TIME NUMBER 集群等待时间 单位微妙

USER_IO_WAIT_TIME NUMBER 用户由于I/O造成等待时间

PLSQL_EXEC_TIME NUMBER plsql程序执行时间 单位微秒

ROWS_PROCESSED NUMBER 通过语法分析的sql返回的数据总行数

OPTIMIZER_MODE VARCHAR() 优化器选择方式

OPTIMIZER_COST NUMBER 采用上面指定优化器所要花费的代价

HASH_VALUE NUMBER Hash value of the parent statement in the library cache

SERVICE VARCHAR() 服务名能够知道是oracle用户进程做得还是oracle后台进程

CPU_TIME NUMBER CPU time (in microseconds) used by this cursor for parsing executingand fetching

ELAPSED_TIME NUMBER 用在解析分析取回返回数据所使用的总的时间

REMOTE VARCHAR() 是否是远程调用

LAST_LOAD_TIME VARCHAR() 上次加载时间

CHILD_LATCH NUMBER 受保护的子闩锁数量

LAST_ACTIVE_TIME DATE 上次活动时间

BIND_DATA RAW() 绑定数据

这个视图你能很容易的得到造成过多的解析物理读物理写逻辑读等待sql语句对于查找低效率sql语句很方便

v$event_name

反映内容所有等待事件以及相关参数(pp的定义)没有全部写出来只写了最重要的字段

SQL> desc v$event_name

名称 类型

EVENT# NUMBER 该事件的引用编号

EVENT_ID NUMBER 该事件的标识符

NAME VARCHAR() oracle针对次事件的名称

PARAMETER VARCHAR() P信息的描述

PARAMETER VARCHAR() P信息的描述

PARAMETER VARCHAR() P信息的描述

V$session_event

反映的内容最近的所有等待事件的统计信息

SQL> desc v$session_event

名称 类型

SID NUMBER 标识符

EVENT VARCHAR() 该事件的名称

TOTAL_WAITS NUMBER 该会话总的等待次数

TOTAL_TIMEOUTS NUMBER 该会话在等待事件期间遇到的超时次数

TIME_WAITED NUMBER 该会话等待该事件所消耗的总时间单位

AVERAGE_WAIT NUMBER 该会话等待该事件所消耗平均等待时间

MAX_WAIT NUMBER 进程必须等待该事件的最大时间总值单位

EVENT_ID NUMBER 等待事件的唯一标识符对应V$event_name表

通过这个动态性能视图你应该很容易了解到最近常常发生的等待事件的大体情况

v$session_wait

反映的内容提供了当前会话的当前等待事件的详细信息

SQL> desc v$session_wait

名称 是否为空? 类型

SID NUMBER 唯一表示符

SEQ# NUMBER 等待次序的计数器进程每开始一次新的等待就就增加

EVENT VARCHAR() Resource or event for which the session is waiting

PTEXT VARCHAR() 等待事件P参数名称

P NUMBER p的值

PRAW RAW() p参数进制值

PTEXT VARCHAR() 等待事件P参数名称

P NUMBER p的值

PRAW RAW() p参数进制值

PTEXT VARCHAR() 等待事件P参数名称

P NUMBER p的值

PRAW RAW() p参数进制值

WAIT_TIME NUMBER 上一次等待持续的时间单位

SECONDS_IN_WAIT NUMBER 等待时间单位秒

STATE VARCHAR() 指出进程是已经完成了等待还是还在等待

比如

SQL> select event nameptext pnamep pvalue from v$session_wait;

NAME PNAME PVALUE

jobq slave wait

SQL*Net message from client driver id

Streams AQ: qmn slave idle wai

t

Streams AQ: qmn coordinator id

le wait

Streams AQ: waiting for time m

anagement or cleanup tasks

rdbms ipc message timeout

rdbms ipc message timeout

rdbms ipc message timeout

很容易看到当前等待事件的情况

v$system_event

反映的内容列出自从实例启动以来的等待事件的统计信息

SQL> desc v$system_event

名称 类型

EVENT VARCHAR() 等待事件的名称

TOTAL_WAITS NUMBER 次等待事件的总的等待次数

TOTAL_TIMEOUTS NUMBER 总的超时等待事件的次数

TIME_WAITED NUMBER 等待事件的总的等待时间

AVERAGE_WAIT NUMBER 平均等待时间单位s

EVENT_ID NUMBER 等待事件的唯一标示符 和v$event_name中的对应

dba_tables

反映内容记录数据库表所有信息这里我也只是列出用于性能测试多的字段

SQL> desc dba_tables;

名称 类型

OWNER NOT NULL VARCHAR() 所有者

TABLE_NAME NOT NULL VARCHAR() 表名

TABLESPACE_NAME VARCHAR() 表所在的表空间名

CLUSTER_NAME VARCHAR() 所在集群的名称

PCT_FREE NUMBER 数据块允许空闲的最小百分比

PCT_USED NUMBER 数据块允许使用的最大百分比

MAX_TRANS NUMBER 最大事务数

FREELISTS NUMBER 被分配给段的空闲进程数量

LOGGING VARCHAR() 是否记录日志生成重做日志记录

NUM_ROWS NUMBER 总共有多少行数据记录

BLOCKS NUMBER 此表使用的块数

EMPTY_BLOCKS NUMBER 表中从来不没有被使用的空块

AVG_SPACE NUMBER 表中平均可用空闲空间

AVG_SPACE_FREELIST_BLOC NUMBER Average freespace of all blocks on a freelist

NUM_FREELIST_BLOCKS NUMBER 空闲列表的块数

CACHE VARCHAR() 检查表是否被cache到buffer中

TABLE_LOCK VARCHAR() 表名表是正在否被锁定

SAMPLE_SIZE NUMBER 表被分析的比例或者数量

LAST_ANALYZED DATE 表上一次被分析的时间点

NESTED VARCHAR() 表是否嵌套

BUFFER_POOL VARCHAR() buffer_pool中被用于表块的defaultkeeprecycle

MONITORING VARCHAR() 表名表是否正被监控

这个视图非常的有用一般可以用来作为健康检查检查数据库表的分析情况等对于oracle以后的版本都推荐使用基于成本的优化器cbo基于规则的优化器逐渐被放弃了所以分析的了解很重要

如下

TABLE_NAME TABLESPACE_NAME PCT_FREE PCT_USED NUM_ROWS BUFFER_ SAMPLE_SIZE LAST_ANALYZED

LT_LHT_COUNT LHT_BBS_SPACE DEFAULT

LT_LHT_CYXX LHT_BBS_SPACE DEFAULT

LT_LHT_FLBK LHT_BBS_SPACE DEFAULT

LT_LHT_SORT LHT_BBS_SPACE DEFAULT

LT_LHT_STYLE LHT_BBS_SPACE DEFAULT

LT_LHT_XTYH LHT_BBS_SPACE DEFAULT

LT_LHT_ZCYH LHT_BBS_SPACE DEFAULT

LT_LHT_FT LHT_BBS_SPACE DEFAULT

LT_LHT_HT LHT_BBS_SPACE DEFAULT

TEST LHT_BBS_SPACE DEFAULT

TEST_LOG LHT_BBS_SPACE DEFAULT

可以清晰的了解到裱褙分析的情况如果LAST_ANALYZED没有值或者时间很早了那就必须重新的分析这张表得到更为准确统计信 息SAMPLE_SIZE代表分析的采样值如果不合理也可以在分析的时候作调整这些检查有利于却确定基于成本的优化器能够按照最优化的路经化最小的 成本来完成操作和响应

既然对于dba_tables有这样应用那么dba_indexes也就有同样的使用方式了索引和表达大同小异就不再说了

V$SGA_TARGET_ADVICE

采用动态sga内存管理但是你希望能知道如何设置这个最大大小才合适呢那可以采用这个视图

SQL> desc V$SGA_TARGET_ADVICE

名称 类型

SGA_SIZE NUMBER sga大小

SGA_SIZE_FACTOR NUMBER 此表中的sga_size和当前的parameter中的sga大小的比值

ESTD_DB_TIME NUMBER

ESTD_DB_TIME_FACTOR NUMBER

ESTD_PHYSICAL_READS NUMBER 估计的物理读的次数

比如

SQL> select sga_sizesga_size_factorestd_db_timeestd_db_time_factorestd_physical_reads from V$SGA_TARGET_ADVICE;

SGA_SIZE SGA_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR ESTD_PHYSICAL_READS

已选择

可以发现当sga设置为M或者更大的时候就没有性能上的提升了所以最大也就设置为左右是比较合适的

V$pga_TARGET_ADVICE

结合的sga设置pga的pga_target_max设置同样可以采用这样的方式

SQL> desc V$pga_TARGET_ADVICE

名称 类型

PGA_TARGET_FOR_ESTIMATE NUMBER pga设置大小bytes

PGA_TARGET_FACTOR NUMBER 与当前parameter中设置的值的比例

ADVICE_STATUS VARCHAR() 表名advice是否课可采用on/off取决于STATISTICS_LEVEL

BYTES_PROCESSED NUMBER 被所有的进程所占用的资源bytes

ESTD_EXTRA_BYTES_RW NUMBER 被估计的用于读和写的资源占用

ESTD_PGA_CACHE_HIT_PERCENTAGE NUMBER 估计的命中率当PGA_TARGET_FOR_ESTIMATE等于实际设置的pgaparameter时

ESTD_OVERALLOC_COUNT NUMBER 这里的值如果为零表示pga设置足够大非零说明pga的设置不是足够大的

QL> select * from V$pga_TARGET_ADVICE;

GA_TARGET_FOR_ESTIMATE PGA_TARGET_FACTOR ADV BYTES_PROCESSED ESTD_EXTRA_BYTES_RW ESTD_PGA_CACHE_HIT_PERCENTAGE ESTD_OVERALLOC_COU

T

ON

ON

ON

Oracle维护常用SQL语句(查询系统表和视图)

提要

查看表空间的名称及大小

查看表空间物理文件的名称及大小

查看回滚段名称及大小

查看控制文件

查看日志文件

查看表空间的使用情况

查看数据库库对象

查看数据库的版本

查看数据库的创建日期和归档方式

捕捉运行很久的SQL

查看数据表的参数信息

查看还没提交的事务

查找object为哪些进程所用

回滚段查看

耗资源的进程(top session)

查看锁(lock)情况

查看等待(wait)情况

查看sga情况

查看catched object

查看V$SQLAREA

查看object分类数量

按用户查看object种类

有关connection的相关信息

)查看有哪些用户连接

)根据vsid查看对应连接的资源占用等情况

)根据sid查看对应连接正在运行的sql

.查询表空间使用情况

查询表空间的碎片程度

查询正在运行的数据库实例

查看表空间的名称及大小

select ttablespace_name round(sum(bytes/(*))) ts_size

from dba_tablespaces t dba_data_files d

where ttablespace_name = dtablespace_name

group by ttablespace_name;

查看表空间物理文件的名称及大小

select tablespace_name file_id file_name

round(bytes/(*)) total_space

from dba_data_files

order by tablespace_name;

查看回滚段名称及大小

select segment_name tablespace_name rstatus

(initial_extent/) InitialExtent(next_extent/) NextExtent

max_extents vcurext CurExtent

From dba_rollback_segs r v$rollstat v

Where rsegment_id = vusn(+)

order by segment_name ;

查看控制文件

select name from v$controlfile;

查看日志文件

select member from v$logfile;

查看表空间的使用情况

select sum(bytes)/(*) as free_spacetablespace_name

from dba_free_space

group by tablespace_name;

SELECT ATABLESPACE_NAMEABYTES TOTALBBYTES USED CBYTES FREE

(BBYTES*)/ABYTES % USED(CBYTES*)/ABYTES % FREE

FROM SYSSM$TS_AVAIL ASYSSM$TS_USED BSYSSM$TS_FREE C

WHERE ATABLESPACE_NAME=BTABLESPACE_NAME AND ATABLESPACE_NAME=CTABLESPACE_NAME;

查看数据库库对象

select owner object_type status count(*) count# from all_objects group by owner object_type status;

查看数据库的版本

Select version FROM Product_component_version

Where SUBSTR(PRODUCT)=Oracle;

查看数据库的创建日期和归档方式

Select Created Log_Mode Log_Mode From V$Database;

捕捉运行很久的SQL

column username format a

column opname format a

column progress format a

select usernamesidopname

round(sofar* / totalwork) || % as progress

time_remainingsql_text

from v$session_longops v$sql

where time_remaining <>

and sql_address = address

and sql_hash_value = hash_value

/

查看数据表的参数信息

SELECT partition_name high_value high_value_length tablespace_name

pct_free pct_used ini_trans max_trans initial_extent

next_extent min_extent max_extent pct_increase FREELISTS

freelist_groups LOGGING BUFFER_POOL num_rows blocks

empty_blocks avg_space chain_cnt avg_row_len sample_size

last_analyzed

FROM dba_tab_partitions

WHERE table_name = :tname AND table_owner = :towner

ORDER BY partition_position

查看还没提交的事务

select * from v$locked_object;

select * from v$transaction;

查找object为哪些进程所用

select

pspid

ssid

sserial# serial_num

susername user_name

atype object_type

sosuser os_user_name

aowner

aobject object_name

decode(sign( command)

to_char(command) Action Code # || to_char(command) ) action

pprogram oracle_process

sterminal terminal

sprogram program

sstatus session_status

from v$session s v$access a v$process p

where spaddr = paddr and

stype = USER and

asid = ssid and

aobject=SUBSCRIBER_ATTR

order by susername sosuser

回滚段查看

select rownum sysdba_rollback_segssegment_name Name v$rollstatextents

Extents v$rollstatrssize Size_in_Bytes v$rollstatxacts XActs

v$rollstatgets Gets v$rollstatwaits Waits v$rollstatwrites Writes

sysdba_rollback_segsstatus status from v$rollstat sysdba_rollback_segs

v$rollname where v$rollnamename(+) = sysdba_rollback_segssegment_name and

v$rollstatusn (+) = v$rollnameusn order by rownum

耗资源的进程(top session)

select sschemaname schema_name decode(sign( command)

to_char(command) Action Code # || to_char(command) ) action status

session_status sosuser os_user_name ssid pspid sserial# serial_num

nvl(susername [Oracle process]) user_name sterminal terminal

sprogram program stvalue criteria_value from v$sesstat st v$session s v$process p

where stsid = ssid and ststatistic# = to_number() and (ALL = ALL

or sstatus = ALL) and paddr = spaddr order by stvalue desc pspid asc susername asc sosuser asc

查看锁(lock)情况

select /*+ RULE */ lsosuser os_user_name lsusername user_name

decode(lstype RW Row wait enqueue lock TM DML enqueue lock TX

Transaction enqueue lock UL User supplied lock) lock_type

oobject_name object decode(lslmode null Row Share

Row Exclusive Share Share Row Exclusive Exclusive null)

lock_mode oowner lssid lsserial# serial_num lsid lsid

from sysdba_objects o ( select sosuser susername ltype

llmode ssid sserial# lid lid from v$session s

v$lock l where ssid = lsid ) ls where oobject_id = lsid and oowner

<> SYS order by oowner oobject_name

查看等待(wait)情况

SELECT v$waitstatclass v$unt count SUM(v$sysstatvalue) sum_value

FROM v$waitstat v$sysstat WHERE v$sysstatname IN (db block gets

consistent gets) group by v$waitstatclass v$unt

查看sga情况

SELECT NAME BYTES FROM SYSV_$SGASTAT ORDER BY NAME ASC

查看catched object

SELECT owner name db_link namespace

type sharable_mem loads executions

locks pins kept FROM v$db_object_cache

查看V$SQLAREA

SELECT SQL_TEXT SHARABLE_MEM PERSISTENT_MEM RUNTIME_MEM SORTS

VERSION_COUNT LOADED_VERSIONS OPEN_VERSIONS USERS_OPENING EXECUTIONS

USERS_EXECUTING LOADS FIRST_LOAD_TIME INVALIDATIONS PARSE_CALLS DISK_READS

BUFFER_GETS ROWS_PROCESSED FROM V$SQLAREA

查看object分类数量

select decode (otype#INDEX TABLE CLUSTER VIEW

SYNONYM SEQUENCE OTHER ) object_type count(*) quantity from

sysobj$ o where otype# > group by decode (otype#INDEX TABLE

CLUSTER VIEW SYNONYM SEQUENCE OTHER ) union select

COLUMN count(*) from l$ union select DB LINK count(*) from

按用户查看object种类

select uname schema sum(decode(otype# NULL)) indexes

sum(decode(otype# NULL)) tables sum(decode(otype# NULL))

clusters sum(decode(otype# NULL)) views sum(decode(otype#

NULL)) synonyms sum(decode(otype# NULL)) sequences

sum(decode(otype# NULL NULL NULL NULL NULL NULL ))

others from sysobj$ o sysuser$ u where otype# >= and uuser# =

oowner# and uname <> PUBLIC group by uname order by

syslink$ union select CONSTRAINT count(*) from n$

有关connection的相关信息

)查看有哪些用户连接

select sosuser os_user_name decode(sign( command) to_char(command)

Action Code # || to_char(command) ) action pprogram oracle_process

status session_status sterminal terminal sprogram program

susername user_name sfixed_table_sequence activity_meter query

memory max_memory cpu_usage ssid sserial# serial_num

from v$session s v$process p where spaddr=paddr and stype = USER

order by susername sosuser

)根据vsid查看对应连接的资源占用等情况

select nname

vvalue

nclass

nstatistic#

from v$statname n

v$sesstat v

where vsid = and

vstatistic# = nstatistic#

order by nclass nstatistic#

)根据sid查看对应连接正在运行的sql

select /*+ PUSH_SUBQ */

command_type

sql_text

sharable_mem

persistent_mem

runtime_mem

sorts

version_count

loaded_versions

open_versions

users_opening

executions

users_executing

loads

first_load_time

invalidations

parse_calls

disk_reads

buffer_gets

rows_processed

sysdate start_time

sysdate finish_time

> || address sql_address

N status

from v$sqlarea

where address = (select sql_address from v$session where sid = )

.查询表空间使用情况

select atablespace_name 表空间名称

round((nvl(bbytes_free)/abytes_alloc)*) 占用率(%)

round(abytes_alloc//) 容量(M)

round(nvl(bbytes_free)//) 空闲(M)

round((abytes_allocnvl(bbytes_free))//) 使用(M)

Largest 最大扩展段(M)

to_char(sysdateyyyymmdd hh:mi:ss) 采样时间

from (select ftablespace_name

sum(fbytes) bytes_alloc

sum(decode(fautoextensibleYESfmaxbytesNOfbytes)) maxbytes

from dba_data_files f

group by tablespace_name) a

(select ftablespace_name

sum(fbytes) bytes_free

from dba_free_space f

group by tablespace_name) b

(select round(max(fflength)*/) Largest

tsname tablespace_name

from sysfet$ ff sysfile$ tfsysts$ ts

where tsts#=ffts# and fffile#=tfrelfile# and tsts#=tfts#

group by tsname tfblocks) c

where atablespace_name = btablespace_name and atablespace_name = ctablespace_name

查询表空间的碎片程度

select tablespace_namecount(tablespace_name) from dba_free_space group by tablespace_name

having count(tablespace_name)>;

alter tablespace name coalesce;

alter table name deallocate unused;

create or replace view ts_blocks_v as

select tablespace_nameblock_idbytesblocksfree space segment_name from dba_free_space

union all

select tablespace_nameblock_idbytesblockssegment_name from dba_extents;

select * from ts_blocks_v;

select tablespace_namesum(bytes)max(bytes)count(block_id) from dba_free_space

group by tablespace_name;

查询有哪些数据库实例在运行

select inst_name from v$active_instances;

               

上一篇:LinuxEnterpriseAS4.0上安装Oracle10G步骤

下一篇:Oracle 的一些基本知识,应该知道