exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;

jolly10發表於2008-01-25
exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;[@more@]

使用命令:
exec dbms_stats.FLUSH_DATABASE_MONITORING_INFO;

For performance reasons, the Oracle Database does not populate these views immediately when the actual modifications occur.
Run the FLUSH_DATABASE_MONITORING_INFO procedure in the DIMS_STATS PL/SQL package to populate these views
with the latest information.

每15分鐘,smon會重新整理統計結果到資料字典中,oracle使用這些表的資料去判斷表的統計資料是否過期,
如果當表的資料改變超過10%,oracle就認為該表的統計資料已經過期.


Oracle 10g預設表是 monitoring,即使表在建立的時候指定是nomonitoring也是會被忽忽略的
這是由引數:statistics_level決定的, 預設值=TYPICAL
如果設定為BASIC將disable monitoring

系統將自動收集表的統計資訊(由GATHER_STATS_JOB完成,
可以透過 EXEC DBMS_SCHEDULER.DISABLE('GATHER_SCHEDULER_JOB')來取消系統自動收集),
且每3個小時由SMON寫入到資料字典(USER_TABLES.NUM_ROWS)裡。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271283/viewspace-998397/,如需轉載,請註明出處,否則將追究法律責任。

相關文章