程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle認證實用技巧

Oracle認證實用技巧

編輯:Oracle數據庫基礎

數據庫人員手邊系列:Oracle認證實用技巧,DML 性能低下,其中最嚴重的原因之一是無用索引的存在。所有SQL的插入,更新和刪除操作在它們需要在每一行數據被改變時修改大量索引的時候會變得更慢。許多Oracle 人員只要看見在一個SQL 查詢的WHERE語句出現了一列的話就會為它分配索引。

Oracle的幾個使用技巧

1.找出無用索引:

DML 性能低下,其中最嚴重的原因之一是無用索引的存在。所有SQL的插入,

更新和刪除操作在它們需要在每一行數據被改變時修改大量索引的時候會變得更慢。

許多Oracle 人員只要看見在一個SQL 查詢的WHERE語句出現了一列的話就會為它分配索引。

雖然這個方法能夠讓SQL運行得更快速,但是基於功能的Oracle 索引使得數據庫管理人

員有可能在數據表的行上過度分配索引。過度分配索引會嚴重影響關鍵Oracle 數據表的性能。

在Oracle9i出現以前,沒有辦法確定SQL查詢沒有使用的索引。

Oracle9i有一個工具能夠讓你使用ALTER INDEX命令監視索引的使用。

然後你可以查找這些沒有使用的索引並從數據庫裡刪除它們。

下面是一段腳本,它能夠打開一個系統中所有索引的監視功能:

spool run_monitor.sql

select ’alter index ’||owner||’.’||index_name||’ monitoring usage;’

from dba_indexes

where owner not in (’SYS’,’SYSTEM’);

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使用了這個索引多少次,但是這個工具對於找出沒有使用的索引還是很有用的。

SQL> select * from v$object_usage where rownum < 10;

INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING

ASD DIM_ACCT_ITEM_TYPE_TEMP YES NO 01/15/2004 13:50:59

IDX_ACCOUNT_ACCESSORY_TARIFF1 ACCOUNT_AccessORY_TARIFF YES NO 01/15/2004 13:50:59

IDX_ACCOUNT_QUOTA_LOG1 ACCOUNT_QUOTA_LOG YES NO 01/15/2004 13:50:59
Oracle認證技巧就為大家介紹這麼多,如果大家有更多更好的方法,要拿出來與大家一起分享,不要一個人獨吞哦。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved