设为首页 收藏本站
查看: 880|回复: 0

[经验分享] Oracle个人笔记(系统查询语句)3

[复制链接]

尚未签到

发表于 2016-8-3 12:08:18 | 显示全部楼层 |阅读模式
  查询锁的表的方法:
(1)
       SELECT O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')',S.SID SESSION_ID, S.SERIAL#,
     DECODE(LMODE, 0, 'NONE', 1, 'NULL', 2, 'ROW-S (SS)', 3, 'ROW-X (SX)', 4, 'SHARE', 5, 'S/ROW-X (SSX)', 6, 'EXCLUSIVE',
      TO_CHAR(LMODE)) MODE_HELD,
     DECODE(REQUEST, 0, 'NONE', 1, 'NULL', 2, 'ROW-S (SS)', 3,'ROW-X (SX)', 4, 'SHARE', 5, 'S/ROW-X (SSX)', 6, 'EXCLUSIVE',
     TO_CHAR(REQUEST)) MODE_REQUESTED,
       S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L,SYS.DBA_OBJECTS O, V$SESSION S
WHERE L.SID = S.SID AND L.ID1 = O.OBJECT_ID ;
(2)
    SELECT OBJECT_NAME AS 对象名称,S.SID,S.SERIAL#,P.SPID AS 系统进程号
    FROM V$LOCKED_OBJECT L , DBA_OBJECTS O , V$SESSION S , V$PROCESS P
    WHERE L.OBJECT_ID=O.OBJECT_ID AND L.SESSION_ID=S.SID AND S.PADDR=P.ADDR;
  
耗时SQL追踪:
SELECT T.USERNAME,T.SID,T.OPNAME, 
       ROUND(T.SOFAR*100 / T.TOTALWORK,0) || '%' AS PROGRESS, 
       T.TIME_REMAINING,R.SQL_TEXT,T.TARGET,T.START_TIME,T.LAST_UPDATE_TIME 
FROM V$SESSION_LONGOPS T, V$SQL R
WHERE T.SQL_ADDRESS = R.ADDRESS 
AND T.SQL_HASH_VALUE = R.HASH_VALUE
  
  解锁:
ALTER SYSTEM KILL SESSION 'SID,SERIR#';
  获取链接情况:
SELECT * FROM DBA_DB_LINKS;
  查看数据库字符状况:
SELECT * FROM NLS_DATABASE_PARAMETERS;
SELECT * FROM V$NLS_PARAMETERS;
  查询oracle当前用户下表的字段情况:
select * from all_tables where table_name like ’%’ 
select * from all_tab_columns where table_name=’??’
  计算一个表占用的空间的大小? 
select owner,table_name, 
NUM_ROWS, 
BLOCKS*AAA/1024/1024 "Size M", 
EMPTY_BLOCKS, 
LAST_ANALYZED 
from dba_tables 
where table_name=’XXX’; 
***Here: AAA is the value of db_block_size ; 
     XXX is the table name you want to check
     
  如何查看最大会话数? 
SELECT * FROM V$PARAMETER WHERE NAME LIKE ’proc%’;
  怎幺获取有哪些用户在使用数据库 
select username from v$session;
  怎样解除PROCEDURE被意外锁定?
alter system kill session ,把那个session给杀掉,不过你要先查出她的session id 
  or  把该过程重新改个名字就可以了。
  
监控当前数据库的用户在运行什幺SQL语句:   
SELECT OSUSER, USERNAME, SQL_TEXT FROM V$SESSION A, V$SQLTEXT B 
  WHERE A.SQL_ADDRESS =B.ADDRESS ORDER BY ADDRESS, PIECE;  
  --耗资源的进程SQL
SELECT USERNAME,SID,OPNAME, 
       ROUND(SOFAR*100 / TOTALWORK,0) || '%' AS PROGRESS, 
       TIME_REMAINING,SQL_TEXT,TARGET,START_TIME,LAST_UPDATE_TIME 
FROM V$SESSION_LONGOPS , V$SQL 
WHERE SQL_ADDRESS = ADDRESS 
AND SQL_HASH_VALUE = HASH_VALUE
------------------------------------------------------------
----正在运行的JOB相关信息
SELECT SID, R.JOB, LOG_USER, R.THIS_DATE, R.THIS_SEC FROM DBA_JOBS_RUNNING R, DBA_JOBS J WHERE R.JOB = J.JOB;
  ----查看还没提交的事务
SELECT * FROM V$LOCKED_OBJECT;
SELECT * FROM V$TRANSACTION;
  ---/*查看等待(WAIT)情况 */
SELECT V$WAITSTAT.CLASS, V$WAITSTAT.COUNT COUNT, SUM(V$SYSSTAT.VALUE) SUM_VALUE
FROM V$WAITSTAT, V$SYSSTAT WHERE V$SYSSTAT.NAME IN ('DB BLOCK GETS',
'CONSISTENT GETS') GROUP BY V$WAITSTAT.CLASS, V$WAITSTAT.COUNT
  --按数据库表文件来查看表数据文件使用情况
SELECT B.FILE_ID  文件ID,
  B.TABLESPACE_NAME  表空间,
  B.FILE_NAME     物理文件名,
  B.BYTES/(1024*1024)       总存储_M,
  (B.BYTES-SUM(NVL(A.BYTES,0)))/(1024*1024)   已使用_M,
  SUM(NVL(A.BYTES,0))/(1024*1024)       剩余_M,
  SUM(NVL(A.BYTES,0))/(B.BYTES)*100 剩余百分比
  FROM DBA_FREE_SPACE A,DBA_DATA_FILES B
  WHERE A.FILE_ID=B.FILE_ID
  GROUP BY B.TABLESPACE_NAME,B.FILE_NAME,B.FILE_ID,B.BYTES
  ORDER BY B.TABLESPACE_NAME,B.FILE_NAME
  --按数据库表空间名称查看表空间使用情况
SELECT
  B.TABLESPACE_NAME  表空间,
  sum(B.BYTES)/(1024*1024)       总存储_M,
  (sum(B.BYTES)-SUM(NVL(A.BYTES,0)))/(1024*1024)   已使用_M,
  SUM(NVL(A.BYTES,0))/(1024*1024)       剩余_M,
  SUM(NVL(A.BYTES,0))/(sum(B.BYTES))*100 剩余百分比
  FROM DBA_FREE_SPACE A,DBA_DATA_FILES B
  WHERE A.FILE_ID=B.FILE_ID
  GROUP BY B.TABLESPACE_NAME
  ORDER BY B.TABLESPACE_NAME
--查看表空间使用情况
SELECT ROWNUM 序列,A.TABLESPACE_NAME 表空间名称,
       ROUND(A.BYTES_ALLOC/1024/1024,2) 总分配容量_M,
       ROUND((A.BYTES_ALLOC-NVL(B.BYTES_FREE,0))/1024/1024,2) 使用_M,
       ROUND(NVL(B.BYTES_FREE,0) / 1024 / 1024, 2) 现空闲_M,
       100-ROUND((NVL(B.BYTES_FREE,0) / A.BYTES_ALLOC)*100,2) 使用率,
       TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS') 采样时间
FROM (SELECT F.TABLESPACE_NAME,SUM(F.BYTES) BYTES_ALLOC FROM DBA_DATA_FILES F GROUP BY TABLESPACE_NAME) A,
       (SELECT F.TABLESPACE_NAME,SUM(F.BYTES) BYTES_FREE FROM DBA_FREE_SPACE F GROUP BY TABLESPACE_NAME) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-252323-1-1.html 上篇帖子: Oracle SQL 内置函数大全(一) 下篇帖子: oracle之REF CURSOR关键词
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表