经过分析user_indexes 视图,last_analyzed 字段是取自 sys.ind$ 的 analyzetime 字段。
是否代表该索引最后一次重建的时间? 只所以有这个问题是因为目前想对一批业务表进行索引重建工作(alter …… rebuild) 
查看user_indexes 视图,发现last_analyzed 都是最近的时间,
1、是否就说明是最近rebuild?
2、是否需要对相应的索引进行rebuild?

解决方案 »

  1.   

    能具体讲讲这个最后一次分析和最后一次rebuild之间的区别么?主要是不明白这个分析,oralce是做了什么。我oralce版本是10g
      

  2.   

    搜集表统计信息,为cbo的执行计划提供依据,如果表的统计信息不存在或者过时(stale),则oracle有可能得到效率低下的执行计划
      

  3.   

    搜集表统计信息,为cbo的执行计划提供依据,如果表的统计信息不存在或者过时(stale),则oracle有可能得到效率低下的执行计划
      

  4.   


    谢谢,我大概明白是做什么的了。 
    另一个问题,我现在想获取到上一次index rebuild的具体的时间,
    在网上搜到的办法是 
    select XX.OBJECT_NAME, xx.Object_Type , LAST_DDL_TIME from USER_OBJECTS xx where xx.Object_Type = 'INDEX'即user_objects 的 last_dll_time 代表着索引的最后一次执行rebuild的时间。
    请问这个说法对不对? 
      

  5.   

    这个靠谱.这个意思是最后一次执行ddl的时间.
      

  6.   

    LAST_ANALYZED DATE   Date on which this index was most recently analyzed 
      

  7.   

    最后一次分析的时间
    analyze table tablename compute statistics
    在cbo查询时,会提高效率
    select /*+rule*/ from tablename时,如果长时间不分析表,会变得很慢
      

  8.   

    學習了。
    其實我有一個疑問:就是 Oracle中怎樣查詢 表中某個列的創建時間呢?表中某個列的創建時間可以追溯到嗎?
      

  9.   

    USER_INDEXEX  LAST_ANALYZED  最后分析时间user_objects   last_dll_time  最后rebuild时间学习了