Oracle DBA常用sql分享
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle DBA常用sql分享,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含14352字,纯文字阅读大概需要21分钟。
内容图文
连接~ | |
/*查看Oracle错误号信息*/ | [oracle@lottery ~]$ oerr ora 600 |
/*清屏~*/ | SQL> clear screen |
/*注册oracle监听*/ | SQL> alter system register; |
/*查看OS连DB数*/ | [oracle@lottery ~]$ ps -ef | grep oracle$ORACLE_SID| grep LOCAL=NO| wc -l |
/*查询数据库当前进程的连接数*/ | select count(*) from v$process; |
/*查看数据库当前会话的连接数*/ | select count(*) from v$session; |
/*查看数据库用户连接会话的总数*/ | select username,count (username) from gv$session where username is not null /*and status=‘ACTIVE‘*/ group by username; |
/*查询数据库最大连接/进程数*/ | select name , value from v$parameter where name in ( ‘processes‘ ,‘sessions‘ ); ==> show parameter processes/sessions; |
优化~ | |
/*通过SQL_ID查找执行计划*/ | select * from table(dbms_xplan.display_cursor(‘br8d2xs44sga8‘)); |
/*通过SQL_ID查找SQL文本*/ | select * from gv$sqlarea s where s.sql_id= ‘br8d2xs44sga8‘; |
/*查看数据库的等待事件*/ | SELECT * FROM gv$session_wait where sid in (SELECT sid FROM gV$SESSION WHERE STATUS=‘ACTIVE‘ and username is not null and sid!=userenv(‘sid‘ ) ); |
/*查看表的统计信息是否正确*/ | SELECT TABLE_NAME,NUM_ROWS,LAST_ANALYZED FROM USER_TABLES T WHERE TABLE_NAME=‘表‘; --#用于检查表最后一次统计和真实的数据是否差距很大; |
/*查看表所有字段信息*/ | select * from user_tab_columns where table_name= ‘表‘ ; |
/*统计整个用户*/ | begin DBMS_STATS.gather_schema_stats(‘用户‘ , cascade=> TRUE ,no_invalidate=>false ); end; |
/*统计表*/ | begin DBMS_STATS.GATHER_TABLE_STATS(‘用户‘ , ‘表‘, cascade =>TRUE ); end ; |
/*查看表最后一次DML时间*/ | select max(ora_rowscn), scn_to_timestamp(max(ora_rowscn)) from 表; |
基本信息~ | |
/*查看表空间剩余情况*/ | select a.TABLESPACE_NAME,sum (round (a.bytes/ 1024/ 1024 /1024 , 2)) from dba_free_space a group by a.tablespace_name; |
/*查询内存分配情况*/ | select component,current_size /1024 /1024 MB, user_specified_size /1024 MB from v$memory_dynamic_components where current_size != 0; |
/*查看用户大小*/ | SELECT S.OWNER,SUM (BYTES/1024/ 1024/1024 ) FROM DBA_SEGMENTS S /*WHERE S.OWNER=‘‘*/ GROUP BY S.OWNER; |
/*查看数据库默认表空间*/ | select * from database_properties s where s.description like ‘%default%tablespace‘ |
/*查看库中的临时表*/ | select * from user_tables u where u.temporary=‘Y‘; |
/*查看11g alert文件位置*/ | select value from v$diag_info; --> show parameter diagnostic_dest |
/*当前回话的进程号*/ | select spid from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat where rownum=1)); |
权限~ | |
/*查看resource角色的权限*/ | select * from role_sys_privs where role=‘RESOURCE‘ ; |
/*查看数据库中授dba权限的用户*/ | SELECT * FROM DBA_ROLE_PRIVS S WHERE S.GRANTED_ROLE= ‘DBA‘; |
dblink~ | |
/*创建DBLINK语句*/ |
create public database link dblink名 connect to 用户 identified by 密码 using ‘(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP) (HOST = IP地址 )(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = 实例名)))‘; |
其他~ | |
/*查找快照SNAP_ID对应的时间*/ | select * from sys.wrh$_active_session_history; |
/*查看索引拥有者!=表的拥有者*/ | SELECT owner,index_name,index_type,table_owner,table_name,table_type FROM dba_indexes where owner!=table_owner; |
/*查看库中(只读)属性的表*/ | select table_name,status,read_only from dba_tables where read_only=‘YES‘; |
#更改表属性 alter table 表 read only(read write); (11g新特性) | |
#注意:索引创建/修改对只读表【表空间】没有影响!因为索引修改的是数据字典,和表不相关 | |
/*查看分区表基本信息查询*/ | SELECT TABLE_NAME, column_name , PARTITION_NAME , HIGH_VALUE LESS_THAN值, TABLESPACE_NAME FROM USER_TAB_PARTITIONS tp join USER_PART_KEY_COLUMNS tpc on tp.table_name=tpc.name; |
/*查看某用户登录的所有会话*/ | SELECT ‘ALTER SYSTEM KILL SESSION ‘‘‘ || SID||‘,‘ ||SERIAL# ||‘‘‘;‘, S.* FROM V$SESSION S WHERE USERNAME= ‘用户‘ AND STATUS!= ‘KILLED‘ ; --#用于解决 ORA -01940 : 无法删除当前连接的用户 |
/*查看command_type值对应类型*/ | SELECT * FROM v$sqlcommand; --【v$sqlarea.command_type、v$session.command 】 |
原文:http://blog.itpub.net/28602568/viewspace-1396081/
内容总结
以上是互联网集市为您收集整理的Oracle DBA常用sql分享全部内容,希望文章能够帮你解决Oracle DBA常用sql分享所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。