再問關於oracle表索引是不是越多越好的問題

時間 2022-09-09 19:50:05

1樓:

關於索引的使用要注意幾個事項 :

1 首先資料量小的表不需要建立索引,因為小的表即使建立索引也不會有大的用處,還會增加額外的索引開銷

2 不經常引用的列不要建立索引,因為不常用,即使建立了索引也沒有多大意義

3 經常頻繁更新的列不要建立索引,因為肯定會影響插入或更新的效率4 索引並不是一勞永逸的,用的時間長了需要進行整理或者重建初學者在oracle中使用索引,可以使用em的建議(em的advisor central中找sql access advisor)

2樓:匿名使用者

索引當然不是越多越好,夠用就是最好,如果建立過多的索引,那你儲存的速度就會下降,如果你的資料庫寫特別頻繁,那就需要注意了。

3樓:星夜迷朦

索引在資料庫中是以表的形式儲存的,太多的索引一定是增加開銷的,還有,前面說的,索引在資料庫中是以表的形式儲存的,頻繁更新(插入)的的欄位不要建立索引,因為在欄位中做更新(插入)操作後,索引也會更新的,這樣的話效率會大大降低。

可不可以在oracle表中有大量資料時建立索引,這樣做有沒有不好的影響?

4樓:匿名使用者

有影響,當表中有大量資料的時候再去建立索引,會比空表建立索引要慢許多

但同時,如果有索引去插入大量資料,也會使插入資料的過程變慢

5樓:南海劍神

可以建立索引,如果你的表主要用作查詢用,那麼索引會發揮作用,如果頻繁的更新,就可以不要索引,因為更新表時,會同時更新索引資料,致使更新的效率降低,當然,這些都要根據你的實際情況來斟酌

6樓:匿名使用者

只要這張表當前沒有更新或插入操作,建立索引時,通過配置nologging與並行,建立索引的時間不會長,1億條資料也會是秒級的,一般感覺不到影響。

7樓:二樓最厲害

建立索引就是為了在大量資料時查詢的更快,除了查詢速度快以外,沒有啥不好的影響。而且索引要建在有意義的欄位上,這個表最好不是經常update的。

什麼情況下需要建立表索引,不建立索引有什麼好?有什麼不好?索引是不是建立的越多越好?

8樓:匿名使用者

索引和外來鍵沒有關係

建立索引的原則是,只要你經常做where\group by\join on的欄位,為提高查詢速度應該加索引

加了索引後會影響你插入\更新\刪除記錄的速度,且會佔用一些磁碟空間,但是會提高查詢速度,你需要在綜合上述情況後考慮決定是否建立索引

從你的需求來看,可以考慮

關於oracle的索引問題,請問一下這段話的意思是什麼,為什麼不能使用索引?

9樓:

sql什麼條件不會使用索引?

1、不等於操作不能使用索引

2、經過普通運算或函式運算後的索引欄位不能使用索引,但是經過函式運算欄位的欄位要使用可以使用函式索引

3、使用多個欄位的組合索引,如果查詢條件中第一個欄位不能使用索引,那整個查詢也不能使用索引

4、含前導模糊查詢的like語法不能使用索引

5、b-tree索引裡不儲存欄位為null值記錄,因此is null不能使用索引。

6、oracle在做數值比較時需要將兩邊的資料轉換成同一種資料型別,如果兩邊資料型別不同時會對欄位值隱式轉換,相當於加了一層函式處理,所以不能使用索引。

7、給索引查詢的值應是已知資料,不能是未知欄位值。

10樓:匿名使用者

這個很好理解啊.索引的建立在多個欄位的組合上,那麼你查詢的時候也要按照這些個欄位進行查詢才能使用索引.就比如書籍的目錄,你只看標題的一半,那你只能全文瀏覽才能找到所需的內容.

11樓:

把建立組合索引的順序顛倒一下就可以使用了··· name+id

12樓:匿名使用者

索引的使用遵循最左欄位原則。。

13樓:匿名使用者

單獨使用 name 是不能用索引的,得 id 和 name 聯合用,再看看你的id 和name 是什麼型別,型別貌似得匹配。

oracle 一個表裡最大 索引數 50

14樓:餘易綠

暫時沒聽說資料表建立索引有限制,但建議不好建立太多索引,

如對於一些重複內容比較少的列,特別是對於那些定義了唯一約束的列。在這些列上建立索引,往往可以起到非常不錯的效果。如對於一些null值的列與非null值的列混合情況下,如果使用者需要經常查詢所有的非null值記錄的列,則最好為其設定索引。

如果經常需要多表連線查詢,在用與連線的列上設定索引可以達到事半功倍的效果

15樓:匿名使用者

參考這個

我也沒聽說過這個限制。

oracle中加索引會不會加快更新的速度?有人說會減慢更新速度?誰知道為什麼嗎?

16樓:匿名使用者

基本沒影響,加索引利於查詢,就是你幾百萬資料加個索引,對更新也沒啥影響。

17樓:涵涵

5w資料量不算大,應該不會,但有索引可以加快查詢速度。

18樓:

五萬資料量,有影響但不會很明顯。如果對錶新增合適的索引,能夠提高使用者查詢該表的速度。索引類似一本書的目錄,你通過目錄來檢視書中的內容肯定是要方便且便捷的。

但是新增索引後,oracle要自動維護索引,當有大量的update、insert等操作時,oracle同樣要對索引進行更新維護,這樣就增加了oracle額外的開銷,從而影響速度。

所以,並不是所有的表都適合新增索引,具體情況要看你自身的業務需要。

sql2005索引碎片問題,某表有四個索引,碎片較多。 是不是索引過多才造成索引過多的。

19樓:

不對!是對這個表的增加,更改,刪除等操作次數過多!才造成碎片問題!

和索引個數沒有關係

oracle中最優化處理程式是自帶的嗎? 就像一張表有不同的索引,會自動選擇最優的嗎?

20樓:匿名使用者

oracle會對執行的sql語句進行內部優化 ,自帶優化器 rbo和cbo,預設會對錶進行一個內部索引,

但是更多的是需要使用者自己建立索引,優化sql,提升效能。

關於VF表中建立索引高手速來幫忙

新建一個資料庫檔案,點右鍵 新增表,將上面幾個表都新增進來。建立索引,例如 學生基本情況表 在學生基本情況表上點右鍵 修改,開啟表設計器,游標定位到 學號 欄位,然後在欄位型別後面有個索引,隨便選一個升序或降序 向上箭頭或向下箭頭 然後點旁邊的索引標籤,再索引型別裡選擇 主索引 其它的索引方法相同,...

oracle的表空間是個什么東西

oracle物理上是由磁碟上的以下幾種檔案 資料檔案和控制檔案和logfile構成的 表空間就只談相關的資料檔案 首先明確概念 表空間是oracle內部定義的一個概念,是為了統一oracle物理和邏輯 上的結構而專門建立的,從物理上來說,一個表空間是由具體的一個或多個磁碟上數 據檔案構成的 至少1對...

oracle 鎖表時,怎麼查出是哪些sql語句導致了鎖表

select rule lpad decode l.xidusn 0,3,0 l.oracle username user name,o.owner,o.object name,o.object type,s.sid,s.serial from v locked object l,dba objec...