Oracle常用系统数据字典表、系统包功能分类
查看表:user_tables、all_tables、dba_tables 查看表字段:user_tab_columns、all_ tab_columns、dba_tab_columns 查看表注释:user_ tab_comments 、all_tab_comments、dba_tab_comments 查看字段注释:user_col_comments、all_col_comments、dba_col_comments 查看索引信息:user_indexes、all_indexes、dba_indexes 查看索引所在字段:user_ind_columns、all_ind_columns、dba_ind_columns 查看约束信息:user_constraints、all_constraints、dba_constraints 查看约束所在字段:user_cons_columns、all_cons_columns、dba_cons_columns 查看触发器信息:user_triggers、all_triggers、all_triggers 查看序列信息:user_sequences、all_sequences、dba_sequences 查看视图信息:user_views、all_views、dba_views 查看同义词信息:user_synonyms、all_synonyms、dba_synonyms 查看DBLINK信息:user_db_links、all_db_links、dba_db_links 查看JOB信息:user_jobs、all_jobs、dba_jobs 查看所有对象信息(过程PROCEDURE、函数FUNCTION、包和包体、JOB和LOB大字段、表、视图、索引、序列、触发器):user_objects、all_objects、dba_objects 查看过程、函数、触发器、包和包体内容:user_source、all_source、dba_source 【举例】 --查看用户下所有的表 SELECT * FROM user_tables; --查看某表的创建时间 SELECT object_name,created FROM user_objects WHERE object_name = upper('&table_name'); --看索引所在字段 SELECT * FROM user_ind_columns WHERE index_name = upper('&index_name'); --查看序列号,last_number是当前值 SELECT * FROM user_sequences; --查看视图及其SELECT语句 SELECT * FROM user_views; --查看某表的约束条件 SELECT * FROM user_constraints WHERE table_name = upper('&table_name'); --查看过程状态 SELECT * FROM user_objects WHERE object_type = 'PROCEDURE'; --查看过程源代码 SELECT * FROM user_source WHERE NAME = upper('&procedure_name'); --查看名称包含log字符的表 WHERE instr(object_name,'LOG') > 0; --查看建表语句 SELECT DBMS_METADATA.GET_DDL('PROCEDURE','PROCEDURE_NAME','USER_NAME') FROM dual; --查看远程数据库对象的定义 SELECT DBMS_LOB.SUBSTR@dblinkname(DBMS_METADATA.GET_DDL@dblinkname('TABLE','TABLENAME','USERNAME')) FROM DUAL@dblinkname; 【表空间与数据文件信息】查看用户默认表空间和临时表空间:user_users、all_users、dba_users 查看表空间信息:user_tablespaces、all_tablespaces、dba_tablespaces 查看表空间空余空间:dba_free_space 查看表空间数据文件及使用情况:dba_data_files 查看数据文件详细信息:v$datafile 查看数据段基本信息:user_segments、all_segments、dba_segments 查看数据区基本信息:user_extents、all_extents、dba_extents 查看临时表空间信息:dba_temp_files 回滚段信息:dba_rollback_segs --查看用户默认表空间和临时表空间 SELECT * FROM user_users; --查看用户有权操作的表空间基本情况 SELECT * FROM user_tablespaces; --查看表空间剩余空间 SELECT tablespace_name,SUM(bytes),SUM(blocks) FROM dba_free_space GROUP BY tablespace_name; --查看表空间数据文件及其位置 select * from dba_data_files; --查看数据文件详细信息 SELECT * FROM v$datafile 【用户、角色与权限信息】查看所有角色:dba_roles 查看用户角色:user_role_privs、dba_role_privs 查看用户权限:user_sys_privs、dba_sys_privs 查看角色权限:role_sys_privs 查看用户操作表权限:user_tab_privs、all_tab_privs、dba_tab_privs 【数据库信息】查看控制文件信息:v$controlfile 查看系统参数信息:v$parameter 数据库系统运行信息:v$datafile 查看当前实例基本信息:v$instance 实例当前有效的参数信息:v$system_parameter 查看日志文件位置:v$logfile 查看日志文件信息:v$log 查看日志线程信息:v$thread 查看归档日志位置:v$archived_dest 查看归档日志信息:v$archived_log 日志历史切换信息:v$loghist 查看数据允许的连接数:show parameter processes 【内存与进程信息】SGA区的基本信息:v$sga SGA区的详细信息:v$sgastat 共享SQL区SQL详细信息(SQL文本是CLOB,每条SQL仅记录一次):v$sql 共享SQL区SQL详细信息(SQL文本是CLOB,不同用户执行相同SQL多次记录):v$sqlarea 共享SQL区SQL的文本信息(仅记录文本且拆分成多行):v$sqltext 库缓存性能的统计数据:v$librarycache 联机的回滚段的名字:v$rollstat 后台进程信息:v$bgprocess 会话信息:v$session 【性能信息】文件IO信息:v$filestat 锁存器的统计数据:v$latch 块竞争统计数据:v$waitstat 事件的总计等待时间:v$system_event 事件等待信息:v$session_wait 排序操作信息:v$sort_usage 被锁定对象信息:v$locked_object 会话的IO信息:v$sess_io 会话的等待信息:v$session_wait --查看当前会话的SID select userenv('sid') from dual; --查看当前被锁的对象信息 SELECT o.object_name, s.sid,sans-serif; line-height:24.05px"> s.serial#,sans-serif; line-height:24.05px"> s.username,sans-serif; line-height:24.05px"> s.osuser,sans-serif; line-height:24.05px"> s.machine,sans-serif; line-height:24.05px"> s.terminal FROM v$locked_object l,dba_objects o,v$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid; --杀掉系统对象锁定的进程 ALTER system KILL session 'SID,serial#'; --如何监控事例的等待? SELECT event,sans-serif; line-height:24.05px"> SUM(decode(wait_Time,1)) "Prev",1,0)) "Curr",sans-serif; line-height:24.05px"> COUNT(*) "Tot" FROM v$session_wait GROUP BY event ORDER BY 4; --如何查询做比较大的排序的进程? SELECT b.tablespace,sans-serif; line-height:24.05px"> b.segfile#,sans-serif; line-height:24.05px"> b.segblk#,sans-serif; line-height:24.05px"> b.blocks,sans-serif; line-height:24.05px"> a.sid,sans-serif; line-height:24.05px"> a.serial#,sans-serif; line-height:24.05px"> a.username,sans-serif; line-height:24.05px"> a.osuser,sans-serif; line-height:24.05px"> a.status FROM v$session a,v$sort_usage b WHERE a.saddr = b.session_addr ORDER BY b.tablespace,b.segfile#,b.segblk#,b.blocks; --如何查看回滚段的争用情况? SELECT NAME,waits,gets,waits / gets "Ratio" FROM v$rollstat C,v$rollname D WHERE C.usn = D.usn; --如何监控表空间的 I/O 比例? SELECT B.tablespace_name NAME,sans-serif; line-height:24.05px"> B.file_name "file",sans-serif; line-height:24.05px"> A.phyrds pyr,sans-serif; line-height:24.05px"> A.phyblkrd pbr,sans-serif; line-height:24.05px"> A.phywrts pyw,sans-serif; line-height:24.05px"> A.phyblkwrt pbw FROM v$filestat A,dba_data_files B WHERE A.file# = B.file_id ORDER BY B.tablespace_name; --如何监控文件系统的 I/O 比例? SELECT substr(C.file#,2) "#",sans-serif; line-height:24.05px"> substr(C.name,30) "Name",sans-serif; line-height:24.05px"> C.status,sans-serif; line-height:24.05px"> C.bytes,sans-serif; line-height:24.05px"> D.phyrds,sans-serif; line-height:24.05px"> D.phywrts FROM v$datafile C,v$filestat D WHERE C.file# = D.file#; --如何监控 SGA 的命中率? SELECT a.value + b.value "logical_reads",sans-serif; line-height:24.05px"> c.value "phys_reads",sans-serif; line-height:24.05px"> round(100 * ((a.value + b.value) - c.value) / (a.value + b.value)) "BUFFER HIT RATIO" FROM v$sysstat a,v$sysstat b,v$sysstat c WHERE a.statistic# = 38 AND b.statistic# = 39 AND c.statistic# = 40; --如何监控 SGA 中字典缓冲区的命中率? SELECT parameter,sans-serif; line-height:24.05px"> gets,sans-serif; line-height:24.05px"> Getmisses,sans-serif; line-height:24.05px"> getmisses / (gets + getmisses) * 100 "miss ratio",sans-serif; line-height:24.05px"> (1 - (SUM(getmisses) / (SUM(gets) + SUM(getmisses)))) * 100 "Hit ratio" FROM v$rowcache WHERE gets + getmisses <> 0 GROUP BY parameter,getmisses; --如何监控 SGA 中共享缓存区的命中率,应该小于1% SELECT SUM(pins) "Total Pins",sans-serif; line-height:24.05px"> SUM(reloads) "Total Reloads",sans-serif; line-height:24.05px"> SUM(reloads) / SUM(pins) * 100 libcache FROM v$librarycache; SELECT SUM(pinhits - reloads) / SUM(pins) "hit radio",sans-serif; line-height:24.05px"> SUM(reloads) / SUM(pins) "reload percent" --如何知道使用CPU多的用户session? SELECT a.sid,sans-serif; line-height:24.05px"> spid,sans-serif; line-height:24.05px"> status,sans-serif; line-height:24.05px"> substr(a.program,40) prog,sans-serif; line-height:24.05px"> a.terminal,sans-serif; line-height:24.05px"> osuser,sans-serif; line-height:24.05px"> VALUE / 60 / 100 VALUE WHERE c.statistic# = 11 AND c.sid = a.sid AND a.paddr = b.addr ORDER BY VALUE DESC; 【常用系统包】dbms_output用于输入和输出信息 put():在当前行输出 put_line():在当前行结尾处换行并在新行输出 newline:换行 getline:取得缓冲区的单行信息 getlines:取得缓冲区的多行信息 dbms_job用于安排和管理作业队列 submit():新建作业 remove():移除作业 change():修改作业 what()、next_date()、interval():更改作业任务、下次执行时间、时间间隔 broken()、run():暂停作业、运行作业 dbms_lob使用和维护LOB字段 write:向LOB中写入数据 read:从LOB中读取数据 instr:从LOB中查字符位置 substr:从LOB中取字符 getlength:返回LOB长度 dbms_metadata.get_ddl:生成数据库对象的ddl信息 dbms_random:快速生成随机数 initialize:初始化dbms_random包,必须提供随机数种子 seed:复位随机数种子 random:生产随机数 dbms_flashback:激活或禁止会话的flashback特征,普通用户使用需授权 enable_at_time:以时间方式激活会话的flashback enable_at_system_change_number:以系统改变号(scn)方式激活会话的flashback get_system_change_number:取得系统的当前scn值 disable:禁止会话的flashback模式 dbms_ddl:DDL信息管理 alter_compile:重新编译过程、函数和包 analyze_object:分析表、索引、簇并生成统计数据 dbms_stat:用于搜集,查看,修改数据库对象的优化统计信息 get_column_stats:取得列的统计信息 get_index_stats:取得索引的统计信息 get_system_stats:从统计表或数据字典中取得系统统计信息 get_table_stats:取得表的统计信息 dbms_session dbms_rowid:取得行标识符(rowid)的信息并建立ROWID dbms_shared_pool:操作共享池 sizes:显示在共享池中大于指定尺寸的对象 keep:用于将特定对象绑定到共享池中 unkeep:清除被绑定到共享池中的对象 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |