Oracle日常维护(二)

来源:这里教程网 时间:2026-03-03 20:00:36 作者:
四、indx cluster_factor(CF)
如果集群因子接近于表中的块数量,则表示索引适当排序;但是,如果集群因子接近于表中的行数量,则表示索引没有适当排序。集群因子的计算简要介绍如下:
(1) 按顺序扫描索引。
(2) 将当前索引值指向的ROWID的块部分与以前的索引值进行比较(比较索引中的邻近行)。
(3) 如果ROWID指向不同的TABLE块,则增加集群因子(对整个索引执行该操作)。
Clustering_Factor列位于USER_INDEXES视图中,该列反映了数据相对于已索引的列是否显得有序。如果Clustering_Factor列的值接近于索引中的树叶块(leaf  block)的数目,表中的数据就是有序的。索引的树叶块存储索引值以及它们指向的ROWID。
例如,CUSTOMERS表上Customer_Id列的值可以由序列生成器产生,而且是表CUSTOMERS上的主键。Customer_Id的索引的集群因子就有可能非常接近于树叶块数(表示 有序)。当往数据库中添加客户数据时,它们就按照序列产生器所产生的序列值有序地存储在表中。然而,因为整个表的客户名字排列是随机的,所以 customer_name上的索引会有一个很高的集群因子。
集群因子对执行范围扫描的SQL语句有一定的影响。如果集群因子很低(相对于树叶块的数量),需要读取的表中块的数量就可以减少很多。这样也增加了相同的数据 块已经存在于内存中的可能性。一个较高的集群因子(相对于树叶块的数量)会增加满足基于索引列的范围查询所需的数据块数目。
五、sql最坏查询
select a.sql_id,a.ADDRESS,substr(a.SQL_TEXT,1,20),a.BUFFER_GETS,a.EXECUTIONS,a.BUFFER_GETS/a.EXECUTIONS avg from v$sqlarea a
where a.EXECUTIONS>0
and a.BUFFER_GETS<100000 order by 5
sql最频繁查询
select * from v$sqlarea a where a.EXECUTIONS=(select max(executions) from v$sqlarea )
六、检查点
(一)
1。什么时候发生checkpoint?
我们知道了checkpoint会刷新脏数据,但什么时候会发生checkpoint呢?以下几种情况会触发checkpoint。
1.当发生日志组切换的时候
2.当符合LOG_CHECKPOINT_TIMEOUT,LOG_CHECKPOINT_INTERVAL,fast_start_io_target,fast_start_mttr_target参数设置的时候
3.当运行ALTER SYSTEM SWITCH LOGFILE的时候
4.当运行ALTER SYSTEM CHECKPOINT的时候
5.当运行alter tablespace XXX begin backup,end backup的时候
6.当运行alter tablespace ,datafile offline的时候;
(二):增量检查点(incremental checkpoint)
oracle8以后推出了incremental checkpoint的机制,在以前的版本里每次checkpoint时都会做一个full thread checkpoint,这样的话所有脏数据会被写到磁盘, 巨大的i/o对系统性能带来很大影响。为了解决这个问题,oracle引入了checkpoint queue机制,每一个脏块会被移到检查点队列里面去,按照low rdb(第一次对 此块修改对应的redo block address)来排列,靠近检查点队列尾端的数据块的low rba值是最小的,而且如果这些赃块被再次修改后它在检查点队列里的顺序也不 会改变,这样就保证了越早修改的块越早写入磁盘。每隔3秒钟ckpt会去更新控制文件和数据文件,记录checkpoint执行的情况
增量检查点并不去更新数据文件头,只是在控制文件中记录了checkpoint progress record这个区域,记下low rba,on-disk rba等信息。这些信息就可以用来快速 恢复。
完全检查点
完全检查点
select * from X$KCCRT where indx=0;
SQL> select * from X$KCCRT where indx=0;
 
ADDR           INDX    INST_ID      RTNUM      RTSTA RTCKP_SCN        RTCKP_TIM             RTCKP_THR RTCKP_RBA_SEQ RTCKP_RBA_BNO RTCKP_RBA_BOF  RTCKP_ETB                                                                             RTOTF      RTOTB      RTNLF      RTLFH      RTLFT       RTCLN      RTSEQ RTENB            RTETS                RTDIS            RTDIT                     RTLHP RTSID            RTOTS
-------- ---------- ---------- ---------- ---------- ---------------- -------------------- ---------- ------------- ------------- -------------  -------------------------------------------------------------------------------- ---------- ---------- ---------- ---------- ---------- ------ ---- ---------- ---------------- -------------------- ---------------- -------------------- ---------- ---------------- --------------------
B72E8EA0          0          1          1         15 670360           07/12/2009 23:00:01           1            55             2            16  02000000000000000000000000000000000000000000000000000000000000000000000000000000          0          0          5          1          5           3         55 1                06/30/2009 22:12:56  0                                             54 fsxybak          07/12/2009 23:00:01
 
增量检查点
SQL> select * from X$KCCCP where indx=0;
select * from X$KCCCP where indx=0;
 
ADDR           INDX    INST_ID      CPTNO      CPSTA      CPFLG      CPDRT      CPRDB CPLRBA_SEQ CPLRBA_BNO CPLRBA_BOF  CPODR_SEQ  CPODR_BNO   CPODR_BOF CPODS            CPODT                   CPODT_I      CPHBT CPRLS                 CPRLC      CPMID  CPSDR_SEQ  CPSDR_BNO  CPSDR_ADB
-------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- - --------- ---------------- -------------------- ---------- ---------- ---------------- ---------- ---------- ---------- ---------- ----------
B72E8E68          0          1          1          2          0       1445      22234         55          3          0         55      22238           0 673975           07/12/2009 23:03:32   692060612  692109879 1                 690934373 1515281323         55          1          0
 
 
 
七、全表扫描
 
select * from v$sql_plan p where p.operation='TABLE ACCESS' and p.options='FULL';
ADDRESS  HASH_VALUE SQL_ID        PLAN_HASH_VALUE CHILD_ADDRESS CHILD_NUMBER TIMESTAMP   OPERATION                                                     OPTIONS                                                      OBJECT_NODE                                                                          OBJECT# OBJECT_OWNER                   OBJECT_NAME                    OBJECT_ALIAS                                                       OBJECT_TYPE                              OPTIMIZER                                        ID  PARENT_ID      DEPTH   POSITION SEARCH_COLUMNS        COST CARDINALITY      BYTES OTHER_TAG                                                              PARTITION_START PARTITION_STOP  PARTITION_ID OTHER                                                                            DISTRIBUTION                                CPU_COST    IO_COST TEMP_SPACE ACCESS_PREDICATES                                                                FILTER_PREDICATES                                                                 PROJECTION                                                                             TIME  QBLOCK_NAME                    REMARKS                                                                          OTHER_XML
-------- ---------- ------------- --------------- ------------- ------------ ----------- ----------------------------------------------------- ------- ------------------------------------------------------------ ------------------------------------------------------------------------- ------- ---------- ------------------------------ ------------------------------ ------------------------------------------------------------- ---- ---------------------------------------- ---------------------------------------- ---------- ---------- ---------- ---------- ----------- --- ---------- ----------- ---------- ---------------------------------------------------------------------- --------------- -------------- -- ---------- -------------------------------------------------------------------------------- ---------------------------------------- ----------  ---------- ---------- -------------------------------------------------------------------------------- --------------------------------------- ----------------------------------------- -------------------------------------------------------------------------------- ---------- -------- ---------------------- -------------------------------------------------------------------------------- -------------------------------------- ------------------------------------------
31138A58 1396966618 6k825qt9n816u      3641933560 310FDA94                 0 2009-7-20 1 TABLE ACCESS                                                  FULL                                                                                                                                                41241 SYSMAN                         MGMT_PERFORMANCE_NAMES         MGMT_PERFORMANCE_NAMES@SEL$1                                       TABLE                                                                                      2          1          2          1              0           3           1         30                                                                                                                                                                                                                                                    51087           3                                                                                             ("IS_DBMSJOB"='Y' AND :B1 LIKE  "DBMS_JOBNAME"||'%')                              "DISPLAY_NAME"[VARCHAR2,128]                                                              1  SEL$1                                                                                                           
311E8988 2261912911 7mvdhsu3d43ag      1161810204 311E8628                 0 2009-7-20 1 TABLE ACCESS                                                  FULL                                                                                                                                                 5055 SYS                            SCHEDULER$_CLASS               B@SEL$2                                                            TABLE                                                                                      4          3          4          1              0           2           1         41                                                                                                                                                                                                                                                     7727           2                                                                                             ("B"."AFFINITY"=:5 AND BITAND("B"."FLAGS",:4)<>0)                                 "B"."OBJ#"[NUMBER,22]                                                                     1 SEL$5DA710D3                                                                                                     
31136820 3616542262 89qyn4bbt03jq      3321895608 310D39F8                 0 2009-7-20 1 TABLE ACCESS                                                  FULL                                                                                                                                                   14 SYS                            SEG$                           S@SEL$3                                                            CLUSTER                                                                                   31         30          7          1              0          20        2883      31713                                                                                                                                                                                                                                                  1145971          20                                                                                                                                                                               "S"."TS#"[NUMBER,22], "S"."FILE#"[NUMBER,22], "S"."BLOCK#"[NUMBER,22]                     1 SEL$335DD26A                                                                                                     
31136820 3616542262 89qyn4bbt03jq      3321895608 310D39F8                 0 2009-7-20 1 TABLE ACCESS                                                  FULL                                                                                                                                                   16 SYS                            TS$                            TS@SEL$3                                                           CLUSTER                                                                                   33         32          8          1              0           4           9         81                                                                                                                                                                                                                                                    86987           4                                                                                                                                                                               "TS"."TS#"[NUMBER,22], "TS"."NAME"[VARCHAR2,30]                                           1 SEL$335DD26A                                                                                                     
31136820 3616542262 89qyn4bbt03jq      3321895608 310D39F8                 0 2009-7-20 1 TABLE ACCESS                                                  FULL               
九.查询无效的对象(invalid)
select object_name,object_id from dba_objects where owner='scott' and status='INVALID';
查询invalid的procedure,invalud表示在named类型下创建时编译出错导致在p_code生成时候给的缀INVALID
SQL> select object_id,object_name,status from dba_objects where owner='TOM' and object_type='PROCEDURE';
 
 OBJECT_ID OBJECT_NAME                                                                      STATUS
---------- -------------------------------------------------------------------------------- -------
     42120 P_BIND                                                                           INVALID
     42824 PROC_XX                                                                          INVALID
     43015 P_TEST                                                                           VALID

相关推荐