常用SQL语句整理
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,-----表空间使用率----- SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS "SUM_BLOCKS", SPACE -
千家信息网最后更新 2026年11月02日常用SQL语句整理-----表空间使用率----- SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS "SUM_BLOCKS", SPACE - NVL (FREE_SPACE, 0) || 'M' "USED_SPACE(M)", ROUND ( (1 - NVL (FREE_SPACE, 0) / SPACE) * 100, 2) || '%' "USED_RATE(%)", FREE_SPACE || 'M' "FREE_SPACE(M)" FROM ( SELECT TABLESPACE_NAME, ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE, SUM (BLOCKS) BLOCKS FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) D, ( SELECT TABLESPACE_NAME, ROUND (SUM (BYTES) / (1024 * 1024), 2) FREE_SPACE FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) F WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) UNION ALL --如果有临时表空间 SELECT D.TABLESPACE_NAME, SPACE || 'M' "SUM_SPACE(M)", BLOCKS SUM_BLOCKS, USED_SPACE || 'M' "USED_SPACE(M)", ROUND (NVL (USED_SPACE, 0) / SPACE * 100, 2) || '%' "USED_RATE(%)", NVL (FREE_SPACE, 0) || 'M' "FREE_SPACE(M)" FROM ( SELECT TABLESPACE_NAME, ROUND (SUM (BYTES) / (1024 * 1024), 2) SPACE, SUM (BLOCKS) BLOCKS FROM DBA_TEMP_FILES GROUP BY TABLESPACE_NAME) D, ( SELECT TABLESPACE_NAME, ROUND (SUM (BYTES_USED) / (1024 * 1024), 2) USED_SPACE, ROUND (SUM (BYTES_FREE) / (1024 * 1024), 2) FREE_SPACE FROM V$TEMP_SPACE_HEADER GROUP BY TABLESPACE_NAME) F WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME(+) ORDER BY 1;
-----查询所有依赖对象(存储过程,触发器等基于那张表)的信息----- select * from dba_dependencies where referenced_owner='USERNAME';
-----查询表上的外键关系----- select A.* from user_constraints A, user_constraints B WHERE b.table_name = 'TABLENAME' and a.constraint_type = 'R' and a.r_constraint_name = b.constraint_name;
-----查询所有主外键关系----- select a.table_name 主表, b.table_name 子表, column_name 键, substr(position,1,1) P from user_constraints a, user_constraints b, user_cons_columns c where a.constraint_name = b.r_constraint_name and a.constraint_name = c.constraint_name order by 1, 2, 4;
-----查看没有主键的表----- SELECT * FROM dba_tables A WHERE owner='CCPS' AND NOT EXISTS ( SELECT * FROM dba_constraints b WHERE A .table_name = b.table_name AND b.constraint_type = 'P' );
-----session_cached_cursor和open_cursor使用率----- SELECT 'session_cached_cursors' PARAMETER, LPAD(VALUE, 5) VALUE, DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE) || '%') USAGE FROM ( SELECT MAX(S.VALUE) USED FROM V$STATNAME N, V$SESSTAT S WHERE N.NAME = 'session cursor cache count' AND S.STATISTIC# = N.STATISTIC# ), ( SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors' ) UNION ALL SELECT 'open_cursors', LPAD(VALUE, 5), TO_CHAR(100 * USED / VALUE) || '%' FROM ( SELECT MAX(SUM(S.VALUE)) USED FROM V$STATNAME N, V$SESSTAT S WHERE N.NAME IN ( 'opened cursors current' ,'session cursor cache count' ) AND S.STATISTIC# = N.STATISTIC# GROUP BY S.SID ), ( SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors' );
-----查询所有表和索引的大小----- select segment_name,sum(bytes)/1024/1024/1024 size_GB from dba_extents where owner='USERNAME' group by segment_name order by 2 desc;
-----查看oracle自动任务结果----- select f.task_name,o.type,o.attr1,attr3,message,more_info,execution_type,e.execution_start,e.execution_end from dba_advisor_findings f,dba_advisor_objects o,dba_advisor_executions e where o.task_id=f.task_id and o.object_id=f.object_id and f.task_id=e.task_id and e.execution_start >sysdate -1;
select dbms_sqltune.report_auto_tuning_task from dual;
-----查看oracle是否启用块跟踪----- select status from v$block_change_tracking; 如果没有启用用,1级备份的时候会比较所有的数据块文件,所以备份时间并不会比0级备份少,甚至可能会更长。可通过如下语句启用: alter system set DB_CREATE_FILE_DEST='/home/oracle/backup' scope=both; --配置追踪文件存放位置 alter database enable block change tracking; ---开启块跟踪
-----查看正在执行的sql语句----- select a.program 请求程序, a.username 登录oracle用户名, a.sid oracleSID, a.SERIAL#, a.machine 计算机名, b.spid 操作系统ID, c.sql_text 正在执行的SQL, c.SQL_ID SQLID from v$session a, v$process b, v$sqlarea c where a.paddr = b.addr and a.sql_hash_value = c.hash_value and a.username is not null;
-----查看锁定的表及SQL----- SELECT l.session_id sid, s.serial#, l.locked_mode 锁模式, l.oracle_username 登录用户, l.os_user_name 登录机器用户名, p.spid 操作系统ID, s.machine 机器名, s.terminal 终端用户名, o.object_name 被锁对象名, s.logon_time 登录数据库时间, q.sql_id SQLID, q.sql_text SQL语句 FROM v$locked_object l, all_objects o, v$session s,v$process p,v$sql q WHERE l.object_id = o.object_id and s.paddr = p.addr AND l.session_id = s.sid and s.sql_hash_value = q.hash_value ORDER BY sid, s.serial#;
-----查看oracle隐含参数----- SELECT ksppinm, ksppstvl, ksppdesc FROM x$ksppi x, x$ksppcv y WHERE x.indx = y.indx AND ksppinm = '_optim_peek_user_binds';
修改:SQL> alter system set "_optimizer_max_permutations"=200 scope=both sid='*';
-----查看被锁的表----- select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
-----查看那个用户那个进程造成死锁----- select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
-----查出锁表的sid, serial#,os_user_name, machine_name, os processes,terminal,锁的type,mode----- SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.process,s.terminal, s.logon_time, l.type FROM v$session s, v$lock l WHERE s.sid = l.sid AND s.username IS NOT NULL ORDER BY sid;
-----查看锁定的表----- SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid ORDER BY sid, s.serial#;
-----根据操作系统进程号查询正在执行的SQL语句----- SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ( SELECT DECODE (sql_hash_value, 0, prev_hash_value, sql_hash_value ), DECODE (sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = 10769)) ORDER BY piece ASC;
-----观察等待事件总数及大致分类----- select a.wait_class#,wait_class_id,wait_class,count(*) from v$event_name a group by wait_class#,wait_class_id,wait_class order by wait_class#;
-----查询latch地址----- select addr,LATCH#,CHILD#,gets,misses,sleeps from v$latch_children where name = 'cache buffers chains' and rownum < 21;
-----根据latch地址确定数据块----- select dbarfil,dbablk from x$bh where hladdr in (select addr from (select addr from v$latch_children order by sleeps desc) where rownum < 1000);
-----根据数据块确认具体对象----- select distinct a.owner,a.segment_name from dba_extents a, (select dbarfil,dbablk from x$bh where hladdr in (select addr from (select addr from v$latch_children order by sleeps desc) where rownum < 20) ) b where a.RELATIVE_FNO = b.dbarfil and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk and a.owner='USERNAME';
-----查询数据库中的热点块----- select /*+ rule */a.owner,a.object_name,b.tch from dba_objects a,x$bh b where a.data_object_id=b.obj order by tch desc;
-----查看sql历史执行时间----- select ss.snap_id, ss.instance_number node, begin_interval_time, sql_id, plan_hash_value, nvl(executions_delta,0) execs, (elapsed_time_delta/decode(nvl(executions_delta,0),0,1,executions_delta))/1000000 avg_etime, (buffer_gets_delta/decode(nvl(buffer_gets_delta,0),0,1,executions_delta)) avg_lio from DBA_HIST_SQLSTAT S, DBA_HIST_SNAPSHOT SS where sql_id = '14nrwtwftffq5' and ss.snap_id = S.snap_id and ss.instance_number = S.instance_number and executions_delta > 0 order by 1, 2, 3
-----BLOCKING TREE----- with lk as (select blocking_instance||'.'||blocking_session blocker, inst_id||'.'||sid waiter from gv$session where blocking_instance is not null and blocking_session is not null) select lpad(' ',2*(level-1))||waiter lock_tree from (select * from lk union all select distinct 'root', blocker from lk where blocker not in (select waiter from lk)) connect by prior waiter=blocker start with blocker='root';
-----查询所有依赖对象(存储过程,触发器等基于那张表)的信息----- select * from dba_dependencies where referenced_owner='USERNAME';
-----查询表上的外键关系----- select A.* from user_constraints A, user_constraints B WHERE b.table_name = 'TABLENAME' and a.constraint_type = 'R' and a.r_constraint_name = b.constraint_name;
-----查询所有主外键关系----- select a.table_name 主表, b.table_name 子表, column_name 键, substr(position,1,1) P from user_constraints a, user_constraints b, user_cons_columns c where a.constraint_name = b.r_constraint_name and a.constraint_name = c.constraint_name order by 1, 2, 4;
-----查看没有主键的表----- SELECT * FROM dba_tables A WHERE owner='CCPS' AND NOT EXISTS ( SELECT * FROM dba_constraints b WHERE A .table_name = b.table_name AND b.constraint_type = 'P' );
-----session_cached_cursor和open_cursor使用率----- SELECT 'session_cached_cursors' PARAMETER, LPAD(VALUE, 5) VALUE, DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE) || '%') USAGE FROM ( SELECT MAX(S.VALUE) USED FROM V$STATNAME N, V$SESSTAT S WHERE N.NAME = 'session cursor cache count' AND S.STATISTIC# = N.STATISTIC# ), ( SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors' ) UNION ALL SELECT 'open_cursors', LPAD(VALUE, 5), TO_CHAR(100 * USED / VALUE) || '%' FROM ( SELECT MAX(SUM(S.VALUE)) USED FROM V$STATNAME N, V$SESSTAT S WHERE N.NAME IN ( 'opened cursors current' ,'session cursor cache count' ) AND S.STATISTIC# = N.STATISTIC# GROUP BY S.SID ), ( SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors' );
-----查询所有表和索引的大小----- select segment_name,sum(bytes)/1024/1024/1024 size_GB from dba_extents where owner='USERNAME' group by segment_name order by 2 desc;
-----查看oracle自动任务结果----- select f.task_name,o.type,o.attr1,attr3,message,more_info,execution_type,e.execution_start,e.execution_end from dba_advisor_findings f,dba_advisor_objects o,dba_advisor_executions e where o.task_id=f.task_id and o.object_id=f.object_id and f.task_id=e.task_id and e.execution_start >sysdate -1;
select dbms_sqltune.report_auto_tuning_task from dual;
-----查看oracle是否启用块跟踪----- select status from v$block_change_tracking; 如果没有启用用,1级备份的时候会比较所有的数据块文件,所以备份时间并不会比0级备份少,甚至可能会更长。可通过如下语句启用: alter system set DB_CREATE_FILE_DEST='/home/oracle/backup' scope=both; --配置追踪文件存放位置 alter database enable block change tracking; ---开启块跟踪
-----查看正在执行的sql语句----- select a.program 请求程序, a.username 登录oracle用户名, a.sid oracleSID, a.SERIAL#, a.machine 计算机名, b.spid 操作系统ID, c.sql_text 正在执行的SQL, c.SQL_ID SQLID from v$session a, v$process b, v$sqlarea c where a.paddr = b.addr and a.sql_hash_value = c.hash_value and a.username is not null;
-----查看锁定的表及SQL----- SELECT l.session_id sid, s.serial#, l.locked_mode 锁模式, l.oracle_username 登录用户, l.os_user_name 登录机器用户名, p.spid 操作系统ID, s.machine 机器名, s.terminal 终端用户名, o.object_name 被锁对象名, s.logon_time 登录数据库时间, q.sql_id SQLID, q.sql_text SQL语句 FROM v$locked_object l, all_objects o, v$session s,v$process p,v$sql q WHERE l.object_id = o.object_id and s.paddr = p.addr AND l.session_id = s.sid and s.sql_hash_value = q.hash_value ORDER BY sid, s.serial#;
-----查看oracle隐含参数----- SELECT ksppinm, ksppstvl, ksppdesc FROM x$ksppi x, x$ksppcv y WHERE x.indx = y.indx AND ksppinm = '_optim_peek_user_binds';
修改:SQL> alter system set "_optimizer_max_permutations"=200 scope=both sid='*';
-----查看被锁的表----- select b.owner,b.object_name,a.session_id,a.locked_mode from v$locked_object a,dba_objects b where b.object_id = a.object_id;
-----查看那个用户那个进程造成死锁----- select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = b.sid order by b.logon_time;
-----查出锁表的sid, serial#,os_user_name, machine_name, os processes,terminal,锁的type,mode----- SELECT s.sid, s.serial#, s.username, s.schemaname, s.osuser, s.process, s.machine,s.process,s.terminal, s.logon_time, l.type FROM v$session s, v$lock l WHERE s.sid = l.sid AND s.username IS NOT NULL ORDER BY sid;
-----查看锁定的表----- SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time FROM v$locked_object l, all_objects o, v$session s WHERE l.object_id = o.object_id AND l.session_id = s.sid ORDER BY sid, s.serial#;
-----根据操作系统进程号查询正在执行的SQL语句----- SELECT /*+ ORDERED */ sql_text FROM v$sqltext a WHERE (a.hash_value, a.address) IN ( SELECT DECODE (sql_hash_value, 0, prev_hash_value, sql_hash_value ), DECODE (sql_hash_value, 0, prev_sql_addr, sql_address) FROM v$session b WHERE b.paddr = (SELECT addr FROM v$process c WHERE c.spid = 10769)) ORDER BY piece ASC;
-----观察等待事件总数及大致分类----- select a.wait_class#,wait_class_id,wait_class,count(*) from v$event_name a group by wait_class#,wait_class_id,wait_class order by wait_class#;
-----查询latch地址----- select addr,LATCH#,CHILD#,gets,misses,sleeps from v$latch_children where name = 'cache buffers chains' and rownum < 21;
-----根据latch地址确定数据块----- select dbarfil,dbablk from x$bh where hladdr in (select addr from (select addr from v$latch_children order by sleeps desc) where rownum < 1000);
-----根据数据块确认具体对象----- select distinct a.owner,a.segment_name from dba_extents a, (select dbarfil,dbablk from x$bh where hladdr in (select addr from (select addr from v$latch_children order by sleeps desc) where rownum < 20) ) b where a.RELATIVE_FNO = b.dbarfil and a.BLOCK_ID <= b.dbablk and a.block_id + a.blocks > b.dbablk and a.owner='USERNAME';
-----查询数据库中的热点块----- select /*+ rule */a.owner,a.object_name,b.tch from dba_objects a,x$bh b where a.data_object_id=b.obj order by tch desc;
-----查看sql历史执行时间----- select ss.snap_id, ss.instance_number node, begin_interval_time, sql_id, plan_hash_value, nvl(executions_delta,0) execs, (elapsed_time_delta/decode(nvl(executions_delta,0),0,1,executions_delta))/1000000 avg_etime, (buffer_gets_delta/decode(nvl(buffer_gets_delta,0),0,1,executions_delta)) avg_lio from DBA_HIST_SQLSTAT S, DBA_HIST_SNAPSHOT SS where sql_id = '14nrwtwftffq5' and ss.snap_id = S.snap_id and ss.instance_number = S.instance_number and executions_delta > 0 order by 1, 2, 3
-----BLOCKING TREE----- with lk as (select blocking_instance||'.'||blocking_session blocker, inst_id||'.'||sid waiter from gv$session where blocking_instance is not null and blocking_session is not null) select lpad(' ',2*(level-1))||waiter lock_tree from (select * from lk union all select distinct 'root', blocker from lk where blocker not in (select waiter from lk)) connect by prior waiter=blocker start with blocker='root';
查询
数据
用户
语句
登录
操作系统
备份
对象
时间
正在
用户名
系统
使用率
地址
数据库
文件
机器
空间
进程
跟踪
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡
喔噻互联网科技有限公司
美国互联网保险保险科技
互联网与科技发展
北京互联网科技
科技服务与互联网
互联网与新科技
互联网科技缩写
友谊互联网络科技
互联网 新科技
互联网科技研发水平
华夏恒生互联网科技013171
洛阳共同富裕互联网科技有限公司
群盈汇互联网科技有限公司
工业互联网科技创业
普陀区互联网教育科技管理办法
互联网界的黑科技
互联网科技收购价值
数字互联网科技有限公司
山东蛋芒互联网科技有限公司
互联网科技名片
今日互联网科技
金融科技还是互联网
没上市的科技互联网公司
汇久创客互联网科技
昊天互联网科技有限公司
中国航天科技大学国际工业互联网
中国互联网十大科技股排名
河南住房之家互联网科技
互联网科技收购价值