国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

找到無用的索引

2024-07-21 02:37:55
字體:
來源:轉載
供稿:網友

  DML 性能低下,其中最嚴重的原因之一是無用索引的存在。所有SQL的插入,更新和刪除操作在它們需要在每一行數據被改變時修改大量索引的時候會變得更慢。
  
  許多Oracle 治理人員只要看見在一個SQL 查詢的WHERE語句出現了一列的話就會為它分配索引。雖然這個方法能夠讓SQL運行得更快速,但是基于功能的Oracle 索引使得數據庫治理人員有可能在數據表的行上過度分配索引。過度分配索引會嚴重影響要害Oracle 數據表的性能。
  
  在Oracle9i出現以前,沒有辦法確定SQL查詢沒有使用的索引。讓我們看看Oracle9i提供了什么樣的方法讓你找到這些索引并刪除它們。
  
  過程是相當簡單的。Oracle9i有一個工具能夠讓你使用ALTER INDEX命令監視索引的使用。然后你可以查找這些沒有使用的索引并從數據庫里刪除它們。
  
  下面是一段腳本,它能夠打開一個系統中所有索引的監視功能:
  
  set pages 999;
  
  set heading off;
  
  spoolrun_monitor.sql
  
  select
  
    'alter index 'owner'.'index_name' monitoring usage;'
  
  from
  
    dba_indexes
  
  where
  
    owner not in ('SYS','SYSTEM','PERFSTAT')
  
  ;
  
  spool off;
  
  @run_monitor
  
  你需要等待一段時間直到在數據庫上運行了足夠多的SQL語句以后,然后你就可以查詢新的V$OBJECT_USAGE視圖。
  
  select
  
    index_name,
  
    table_name,
  
    mon,
  
    used
  
  from
  
    v$object_usage;
  
  在下面,我們可以看見V$OBJECT_USAGE有一列被稱作USED,它的值是YES或者NO。不幸的是,它不會告訴你Oracle使用了這個索引多少次,但是這個工具對于找出沒有使用的索引還是很有用的。
  
  INDEX_NAME        TABLE_NAME     MON  USED
  
  ---------------         ---------------       ---    ----
  
  CUSTOMER_LAST_NAME_IDX  CUSTOMER  YES  NO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 祥云县| 红桥区| 漳州市| 简阳市| 自治县| 永德县| 临邑县| 康乐县| 宜州市| 东丰县| 渝中区| 双辽市| 通榆县| 石台县| 齐河县| 屏边| 靖边县| 崇州市| 页游| 邵武市| 喜德县| 绩溪县| 尉氏县| 眉山市| 原平市| 砀山县| 衡阳县| 富顺县| 界首市| 兴业县| 台东县| 治多县| 许昌县| 昌黎县| 连山| 崇信县| 七台河市| 陕西省| 社会| 洞头县| 丰宁|