ANALYZE介紹

何謂ANALYZE
  • 它可以分析表格(table),索引(index),叢集(cluster)架構,並收集統計訊息
格式
ANALYZE object_clause validation_clause;
object_clause : 分析目標物件
validation_clause : 分析內容
object_clause格式
{TABLE | INDEX | CLUSTER} [schema.]object_name
 schema : 結構名稱
 object_name : 物件名稱
 validation_clause格式
  • VALIDATE REF UPDATE子句
能對目標表格REF值的妥當性進行檢查,指定SET DANGLING TO NULL的情況中,若指定表格內REF值為無效物件,或者指定不存在物件情況中,REF值設為NULL
格式
 VALIDATE REF UPDATE [SET DANGLING TO NULL]
  • VALIDATE STRUCTURE子句
驗證目標物件架構
 格式
 VALIDATE STRUCTURE [CASCADE]
          [INTO [schema.]table_name]
          [OFFLINE | ONLINE]
schema : 結構名稱
table_name : 物件名稱
CASCADE : 確認表格各列都擁有索引記錄,確認各項索引指向表格列
INTO : 只有在分割表格有效子句,擁有無法正確對應到分割表格列的情況中,則ROWID會在table_name指定存放的清單表格
OFFLINE | ONLINE : Oracle在DML執行驗證則指定ONLINE,但分析叢集(cluster)與 索引(index)無法指定ONLINE,預設為OFFLINE
  • LIST CHAINED ROWS子句
可以辨識分析過的表格與叢集的遷徒列與鏈結列,INTO子句指定列出遷徒列與鏈結列清單表格
格式
 LIST CHAINED ROWS [INTO [schema.]table_name]
 schema:結構名稱
 table_name:物件名稱
  • DELETE子句
刪除統計訊息,刪除後Oracle將無法使用統計訊息,如果指定SYSTEM則只會刪除系統統計訊息
格式
DELETE [SYSTEM] STATISTICS
使用方式
  •  SQL語法示範
說明:分析emp表格有關的索引
analyze table emp validate structure cascade;
說明:刪除emp表格統計資訊 
analyze table emp delete statistics;