如果想了解oracle运行的一些数据信息,oracle有一些视图可以供我们查询,通过这些内置的视图我们可以了解数据库
运行的一些信息,比如数据库文件存在什么地方、有哪些表空间、表空间的利用率、oracle的一些参数比如block的大小
以及oracle执行事务的一些信息以及索引等。
oralcle 内置视图字典
oracle 提供的plsql开发包 oracle自带
===============================================================
user视图 记录用户对象的信息
all视图 记录用户对象的信息及被授权访问的对象信息
dba视图 记录数据库实例的所有对象的信息
v$视图 记录与数据库活动相关的性能统计动态信息
gv$视图 记录分布式环境下所有实例的动态信息
基础知识了解:
dba_tables 所有用户的所有表信息
dba_tab_columns 所有用户的表的字段信息
dba_views 所有用户的所有视图信息
dba_synonyms 所有用户的所有同义词信息
dba_sequences 所有用户的所有序列信息
dba_constraints 所有用户的表的约束信息
dba_ind_columns 所有用户的表的索引的字段信息
dba_triggers 所有用户的触发器信息
dba_sources 所有用户的存储过程信息
dba_segments 所有用户的段的使用空间信息
dba_extents 所有用户的段的扩展信息
dba_objects 所有用户对象的基本信息
cat 当前用户可以访问的所有基表
tab 但前用户创建的所有基表、视图、同义词等
dict 构成数据字典的所有表的信息
数据库 v$datafile 记录系统的运行情况
表空间 dba_tablespaces 记录系统表空间的基本信息
dba_free_space 记录系统表空间的空闲空间信息
控制文件 v$controlfile 记录系统控制文件的基本信息
v$control_record_section 记录系统控制文件中记录文档段的信息
v$parameter 记录系统个参数的基本信息
数据文件 dba_data_files 记录系统数据文件及表空间的基本信息
v$filestat 记录来自控制文件的数据文件信息
v$datafile_header 记录数据文件头部的基本信息
段 dba_segments 记录段的基本信息
区 dba_extents 记录数据区的基本信息
日志 v$thread 记录日志线程的基本信息
v$log 记录日志文件的基本信息
v$logfile 记录日志文件的概要信息
归档 v$archived_log 记录归档日志文件的基本信息
v$archived_dest 记录归档日志文件的路径信息
数据库实例 v$instance 记录实例的基本信息
v$system_parameter 记录实例当前有效的参数信息
内存结构 v$sga 记录sga区的信息
v$sgastat 记录sga的详细信息
v$db_object_cache 记录对象缓存的大小信息
v$sql 记录sql语句的详细信息
v$sqltext 记录sql语句的语句信息
v$sqlarea 记录sql区的sql基本信息
后台进程 v$bgprocess 显示后台进程信息
v$session 显示当前会话信息
v$fixed_table 显示当前发行的固定对象的说明
v$instance 显示当前实例的信息
v$latch 显示锁存器的统计数据
v$librarycache 显示有关库缓存性能的统计数据
v$rollstat 显示联机的回滚段的名字
v$rowcache 显示活动数据字典的统计
v$sag 记录sga区的信息
v$sgastat 记录sga的详细信息
v$sort_usage 显示临时段的大小及会话
v$sqltext 记录sql语句的语句信息
v$sqlarea 记录sql区的sql基本信息
v$stsstat 显示基本的实例统计信息
v$system_event 显示一个事件的总计等待时间
v$waitstat 显示块竞争统计数据
===============================================================
基础部分
===============================================================
SELECT * FROM user_tables --查询表 --all_tables dba_tables
SELECT * FROM user_tab_columns --查询表的字段 --all_tab_columns dba_tab_columns
SELECT * FROM user_col_comments --查询表字段的注释 --dba_tab_comments all_tab_comments
SELECT * FROM user_tab_comments --查询表的注释 --dba_tab_comments,all_tab_comments
SELECT * FROM user_constraints --查找表的主键
SELECT * FROM user_cons_columns --查找表的主键所在的列
SELECT * FROM user_indexes --查找表的索引
SELECT * FROM user_ind_columns --查找表索引所在的列名称
查看表空间的名称及大小
SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE t.tablespace_name = d.tablespace_name
GROUP BY t.tablespace_name;
查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 * 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
查看回滚段名称及大小
SELECT segment_name,
tablespace_name,
r.status,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
v.curext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE r.segment_id = v.usn(+)
ORDER BY segment_name;
查看控制文件
SELECT NAME FROM v$controlfile;
查看日志文件
SELECT MEMBER FROM v$logfile;
查看表空间的使用情况
SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT a.tablespace_name,
a.bytes total,
b.bytes used,
c.bytes free,
(b.bytes * 100) / a.bytes "% USED ",
(c.bytes * 100) / a.bytes "% FREE "
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
WHERE a.tablespace_name = b.tablespace_name
AND a.tablespace_name = c.tablespace_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, 1, 6) = 'Oracle';
查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;
查询最慢的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
查询对应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,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;
SELECT sql_address FROM V$SESSION SS,V$SQLTEXT TT
WHERE SS.SQL_HASH_VALUE=TT.HASH_VALUE AND SID=439;
select a.CPU_TIME,--CPU时间 百万分之一(微秒)
a.OPTIMIZER_MODE,--优化方式
a.EXECUTIONS,--执行次数
a.DISK_READS,--读盘次数
a.SHARABLE_MEM,--占用shared pool的内存多少
a.BUFFER_GETS,--读取缓冲区的次数
a.COMMAND_TYPE,--命令类型(3:select,2:insert;6:update;7delete;47:pl/sql程序单元)
a.SQL_TEXT,--Sql语句
a.SHARABLE_MEM,
a.PERSISTENT_MEM,
a.RUNTIME_MEM,
a.PARSE_CALLS,
a.DISK_READS,
a.DIRECT_WRITES,
a.CONCURRENCY_WAIT_TIME,
a.USER_IO_WAIT_TIME
from SYS.V_$SQLAREA a
WHERE PARSING_SCHEMA_NAME = 'CHEA_FILL'--表空间
order by a.CPU_TIME desc
=========================================================