本文通过实际业务系统中调整的一个案例,试图给出一个常见CPU消耗问题的一个诊断方法.大多数情况下,系统的性能问题都是由不良SQL代码引起的,那么作为DBA,怎样发现和解决这些SQL问题就显得尤为重要.
阅读全文>
发表于 @ 2008年01月16日 20:58:00|评论(loading...)|编辑|收藏
作为一名Oracle DBA,在所难免要接触Unix,但是Unix本身又是极其复杂的,想要深刻掌握同样很不容易。那么到底我们该怎么入手呢?Donald K Burleson 的《Unix for Oracle DBAs Pocket Reference》这本书就比较详细的说明了作为一名Oracle DBA所应该掌握的知识,而且基本上都有例子供实验,因此有选择的翻译出主要的章节:阅读全文>
发表于 @ 2007年09月03日 14:50:00|评论(loading...)|编辑|收藏
1. 监控事例的等待SQL> SELECT EVENT,SUM(DECODE(WAIT_TIME,0,0,1)) "PREV",SUM(DECODE(WAIT_TIME,0,1,0)) "CURR",COUNT(*) "TOT" FROM V$SESSION_WAIT GROUP BY EVENT ORDER BY 4;2. 回滚段的争用情况 SQL> SELECT NAME, WAITS, GETS, WAITS/GETS "RATIO" FROM V$ROLLSTAT A, V$ROLLNAME B WHERE A.USN = B.USN; 阅读全文>
发表于 @ 2007年08月30日 13:49:00|评论(loading...)|编辑|收藏
根据SID找ORACLE的某个进程:
SQL> SELECT PRO.SPID FROM V$SESSION SES,V$PROCESS PRO WHERE SES.SID=21 AND SES.PADDR=PRO.ADDR;
监控当前数据库谁在运行什么SQL语句:
SQL>SELECT OSUSER, USERNAME, SQL_TEXT FROM V$SESSION A, V$SQLTEXT B
WHERE A.SQL_ADDRESS =B.ADDRESS ORDER BY ADDRESS, PIECE;
阅读全文>
发表于 @ 2007年08月30日 13:45:00|评论(loading...)|编辑|收藏
数据库各个表空间增长情况的检查:
SQL>SELECT A.TABLESPACE_NAME,(1-(A.TOTAL)/B.TOTAL)*100 USED_PERCENT
FROM (SELECT TABLESPACE_NAME,SUM(BYTES) TOTAL FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME) A,(SELECT TABLESPACE_NAME,SUM(BYTES) TOTAL FROM DBA_DATA_FILES GROUP BY TABLESPACE_NAME) B WHERE A.TABLESPACE_NAME=B.TABLESPACE_NAME;
阅读全文>
发表于 @ 2007年08月30日 13:44:00|评论(loading...)|编辑|收藏