成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle數據庫索引創建要做到三個適當

數據庫 Oracle
Oracle數據庫是甲骨文公司的一款關系數據庫管理系統,Oracle數據庫憑借著其自身的功能性贏得了廣大用戶的青睞,Oracle數據庫能處理大量的數據,本文將主要為大家介紹Oracle數據庫索引創建。

導讀:索引Oracle數據庫中發揮著很大的作用,正是由于索引的存在,數據庫管理員在進行數據庫中數據查找變的很方便。在Oracle數據庫中,創建索引雖然比較簡單。但是要合理的創建索引則比較困難了。筆者認為,在創建索引時要做到三個適當,即在適當的表上、適當的列上創建適當數量的索引。雖然這可以通過一句話來概括優化的索引的基本準則,但是要做到這一點的話,需要數據庫管理員做出很大的努力。具體的來說,要做到這個三個適當有如下幾個要求。  

一、 根據表的大小來創建索引。

雖然給表創建索引,可以提高查詢的效率。但是數據庫管理員需要注意的是,索引也需要一定的開銷的。為此并不是說給所有的表都創建索引,那么就可以提高數據庫的性能。這個認識是錯誤的。恰恰相反,如果不管三七二十一,給所有的表都創建了索引,那么其反而會給數據庫的性能造成負面的影響。因為此時濫用索引的開銷可能已經遠遠大于由此帶來的性能方面的收益。所以筆者認為,數據庫管理員首先需要做到,為合適的表來建立索引,而不是為所有的表建立索引。

一般來說,不需要為比較小的表創建索引。如在一個ERP系統的數據庫中,department表用來存儲企業部門的信息。一般企業的部分也就十幾個,最多不會超過一百個。這100條記錄對于人來說,可能算是比較多了。但是對于計算機來說,這給他塞塞牙縫都還不夠。所以,對類似的小表沒有必要建立索引。因為即使建立了索引,其性能也不會得到很大的改善。相反索引建立的開銷,如維護成本等等,要比這個要大。也就是說,付出的要比得到的多,顯然違反常理。

另外,就是對于超大的表,也不一定要建立索引。有些表雖然比較大,記錄數量非常的多。但是此時為這個表建立索引并一定的合適。如系統中有一張表,其主要用來保存數據庫中的一些變更信息。往往這些信息只給數據庫管理員使用。此時為這張表建立索引的話,反而不合適。因為這張表很少用到,只有在出問題的時候才需要查看。其次其即使查看,需要查詢的紀錄也不會很多,可能就是最近一周的更新記錄等等。對于對于一些超大的表,建立索引有時候往往不能夠達到預計的效果。而且在打表上建立索引,其索引的開銷要比普通的表大的多。那么到底是否給大表建立索引呢?筆者認為,主要是看兩個方面的內容。首先是需要關注一下,在這張大表中經常需要查詢的記錄數量。一般來說,如果經常需要查詢的數據不超過10%到15%的話,那就沒有必要為其建立索引的必要。因為此時建立索引的開銷可能要比性能的改善大的多。這個比例只是一個經驗的數據。如果數據庫管理員需要得出一個比較精確的結論,那么就需要進行測試分析。即數據庫管理員需要測試一下全表掃描的時間,看看其是否比建立索引后的查詢時間要長或者短。如果是長的話,則說明有建立索引的必要。但是如果沒有的話,則說明還是全表掃描速度來的快。此時也就沒有必要建立索引了。

總之,在考慮是否該為表建立索引時,一般來說小表沒有建立索引的必要。而對于打表的話,則需要進行實際情況實際分析。簡單一點的,可以根據大致的比率來確定。如果要精確一點的,則可以進行全表掃描性能分析,以判斷建立索引后是否真的如預期那樣改善了數據庫性能。

二、 根據列的特征來創建索引。

列的特點不同,索引創建的效果也不同。數據庫管理員需要了解為哪些列創建索引可以起到事倍功半的效果。同時也需要了解為哪些列創建索引反而起到的是事倍功半的效果。這有利于他們了解到底給為怎么樣的字段建立索引。

根據筆者的經驗,往往為如下特征的列創建索引能夠起到比較明顯的效果。如對于一些重復內容比較少的列,特別是對于那些定義了唯一約束的列。在這些列上建立索引,往往可以起到非常不錯的效果。如對于一些null值的列與非Null值的列混合情況下,如果用戶需要經常查詢所有的非Null值記錄的列,則最好為其設置索引。如果經常需要多表連接查詢,在用與連接的列上設置索引可以達到事半功倍的效果。

可見,索引設置的是否恰當,不僅跟數據庫設計架構有關,而且還跟企業的經濟業務相關。為此,對于一些套裝軟件,雖然一開始數據庫管理員已經做了索引的優化工作。但是隨著后來經濟數據的增加,這個索引的效果會越來越打折扣。這主要是因為記錄的表化影響到了索引優化的效果。所以筆者建議各位數據庫管理員,即使采用的是大牌軟件公司的套裝軟件,也需要隔一段時間,如一年,對數據庫的索引進行優化。該去掉的去掉,該調整的調整,以提高數據庫的性能。

如在數據庫中有一張表是用來保存用戶信息的。其中有個字段身份證號碼,這是一個唯一的字段。在數據庫設計時,給這個字段創建了索引。但是當這個數據庫投入使用之后, 用戶不怎么輸入用戶的身份證號碼。而且平時也基本不按這個號碼來進行查詢。當記錄月來月多時,這個身份證號碼上的索引字段不但不能夠改善數據庫的查詢性能,反而成了雞肋。對于這些有很多NULL值的列,而且不會經常查詢所有的非NULL值記錄的列,數據庫管理員要下決心,即使清除這些列上的索引。

所以說索引的優化與調整是一個動態的過程,并不是說數據庫設計好之后就不需要經過調整。數據庫管理員往往需要根據記錄的變化情況,來進行適當的變更。以提高索引的效果。

三、 在一個表上創建多少索引合適?

雖然說,在表上創建索引的數量沒有限制,但是決不是越多越好。也就是說,在創建索引這項事情上,1+1〉2往往不成立。有時候,創建索引越多,其可能會得到適得其反的效果。那么在一個表上,到底給創建多少索引合適呢?這個沒有一個明確的標準。而是需要數據庫管理員根據實際的用途以及數據庫中記錄的情況,來進行判斷。

通常來說,表的索引越多,其查詢的速度也就越快。但是,表的更新速度則會降低。這主要是因為表的更新(如往表中插入一條記錄)速度,反而隨著索引的增加而增加。這主要是因為,在更新記錄的同時需要更新相關的索引信息。為此,到底在表中創建多少索引合適,就需要在這個更新速度與查詢速度之間取得一個均衡點。如對于一些數據倉庫或者決策型數據庫系統,其主要用來進行查詢。相關的記錄往往是在數據庫初始化的時候倒入。此時,設置的索引多一點,可以提高數據庫的查詢性能。同時因為記錄不怎么更新,所以索引比較多的情況下,也不會影響到更新的速度。即使在起初的時候需要導入大量的數據,此時也可以先將索引禁用掉。等到數據導入完畢后,再啟用索引。可以通過這種方式來減少索引對數據更新的影響。相反,如果那些表中經常需要更新記錄,如一些事務型的應用系統,數據更新操作是家常便飯的事情。此時如果在一張表中建立過多的索引,則會影響到更新的速度。由于更新操作比較頻繁,所以對其的負面影響,要比查詢效率提升要大的多。此時就需要限制索引的數量,只在一些必要的字段上建立索引。

筆者在平時數據庫優化時,往往會根據這些表的用途來為列設置索引。可以查詢相關的動態視圖,看看對于這張表的操作,是更新操作(包括更新、刪除、插入等等)占的比例大,還是查詢操作占的比例大。當過多的索引已經影響到更新操作的速度時,則數據庫管理員就需要先禁用某些索引,以提高數據庫的性能。

如果大家建立索引忘記注意這些問題,那么創建出來的索引或許不能很好的服務于我們的工作,所以,大家還是需要在適當的表、適當的列上建立適當的索引。這里介紹的只是一部分,希望大家能在以后的工作中總結出來更多、更好的經驗。

【編輯推薦】

  1. Oracle數據庫索引
  2. Oracle數據庫體系架構概要
  3. 輕松解決Oracle數據庫的服務啟動問題
責任編輯:迎迎 來源: 計世網
相關推薦

2011-03-01 17:13:35

Oracle數據庫

2011-04-13 15:54:32

Oracle數據庫維護

2009-06-11 13:12:59

Oracle索引創建索引

2010-10-26 13:45:01

Oracle數據庫備份

2019-03-01 10:12:54

2010-04-23 12:24:06

Oracle數據庫

2011-03-16 08:54:45

Oracle數據庫索引

2013-12-18 13:06:33

數據庫安全安全審計啟明星辰

2011-08-05 09:33:56

OracleUser ProcesServer Proc

2017-06-27 15:40:25

云轉型網絡架構

2020-10-15 14:23:27

全棧工程師技術

2020-06-28 16:51:22

無人機農業技術

2010-05-19 18:11:05

2011-05-19 13:49:09

2011-03-30 13:03:14

數據庫營銷

2011-02-24 11:07:20

webOS

2020-10-15 08:41:53

工程師開發技術

2023-12-20 12:49:05

索引數據檢索數據庫

2023-03-06 11:44:37

Postgres數據庫

2022-09-01 23:29:22

MySQLPython數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久艹 | 国产精品视频综合 | 久久专区 | 国产欧美精品一区二区色综合朱莉 | 91精品午夜窝窝看片 | 日韩中文在线 | 你懂的av | 91社区在线观看播放 | 欧美日韩一区在线 | cao在线| 日本高清中文字幕 | 久夜精品 | 国产综合精品一区二区三区 | 成年人视频在线免费观看 | 久久爱黑人激情av摘花 | 欧美成人a| av电影手机在线看 | 91精品国产乱码久久蜜臀 | 亚洲人成人一区二区在线观看 | 成人在线播放网站 | www.亚洲一区二区 | 狠狠狠色丁香婷婷综合久久五月 | 亚洲免费在线视频 | 黄色一级电影免费观看 | 精品日韩 | 日日天天| 一区二区三区高清 | 久久精品| 一区二区免费看 | 农夫在线精品视频免费观看 | 在线视频成人 | 欧美色欧美亚洲另类七区 | 国产精品日韩欧美一区二区三区 | 亚洲欧美v | 亚洲免费在线视频 | 国产一级在线观看 | 午夜合集| 欧美一级欧美三级在线观看 | 毛片在线看看 | 一区免费 | 天天插天天操 |