以下题目基于oracle或sql server
1、如果DB服务器CPU负荷过高,作为DBA首先要关注哪些对象?
2、说出五个常用数据库字典
3、有个员工月薪资表salary,查出薪资sal排位在6—10的记录

解决方案 »

  1.   

    1、并发高、热块?
    2、dict,v$session,v$process,v$session_wait,v$sql,v$datafile,v$log
    3、rownum
      

  2.   

    1)这个问题不能单纯看DB、
       ① OS层面、长时间运行,可能是某些进程出现异常,占用大量CPU资源:top
       ② 很多愚蠢的SQL都会令CPU跑满、2)v$segment_statistics、v$session_ops、v$session_wait、3)
    WITH 
      t AS (SELECT rownum num,salary.*  
              FROM salary 
            )
    SELECT num,t.sal 
      FROM t
     WHERE num>=6 AND num<=10; 
      

  3.   

    呵呵,学习了,由于不知道有rownum这个字段,我当时是用rowid这个字段,后面上网查了一下才知道rowid是代表记录的存储位置的