有關於資料庫中索引失效的問題,網上也有相關的討論。不過他們是針對oracle資料庫進行討論的。那麼在sql server資料庫中索引什麼時候
會失效呢。總結了一下,不過我沒有經過測試。沒測試就沒有發言權,這裡僅供自己參考。
首先,所謂失效。並不真的就是這個索引被刪除了。而是在這些情況下,dbms不會檢索索引列表了。執行速度和沒有這個索引時的速度一樣。
但是再執行另外的一條語句。同樣索引可以正常起作用。所以索引的失效是針對某條sql語句的,而不是針對索引本身的。那麼在哪些情況下,
確切的說是在哪類語句執行時索引不起作用呢。總結如下:
1.索引字段進行判空查詢時。也就是對索引字段判斷是否為null時。語句為is null 或is not null。
比如:select * from temp where time is null此時就不檢索time欄位上的索引表了。也就是索引在這條語句執行時失效了。接著再執
行select * from temp where time = '2010-06-01'此時就會檢索索引表了。索引又起作用了。
2.對索引字段進行like查詢時。比如:select * from temp where des like '%王某某'。網上有的例子說like 'xx%'索引起作用。我沒試過。
3.判斷索引列是否不等於某個值時。『!=』操作符。比如:select * from temp where amount != 0.
4.對索引列進行運算。這裡運算包括+-*/等運算。也包括使用函式。比如:
select * from temp where amount+count>10 此時索引不起作用。
select * from temp where round(amount)>10 此時索引也不起作用。
也就是說如果不是直接判斷索引欄位列,而是判斷運算或其它函式處理後的索引列。索引均不起作用。
SQL Server資料庫 索引
描述 漢語字典中的漢字按頁存放,一般都有漢語拼音目錄 索引 偏旁部首目錄等 我們可以根據拼音或偏旁部首,快速查詢某個字詞 是sql server編排資料的內部方法。它為sql server提供一種方法來編排查詢資料 資料庫中儲存索引的資料頁 索引頁類似於漢語字 詞 典中按拼音或筆畫排序的目錄頁 通過...
資料庫基礎 索引(SQL Server)
參考原文 首先我們要知道資料庫索引是用來幹什麼的 索引是為了加快資料查詢速度而引入的,資料庫中儲存的資料在物理層是隨機儲存的,對某個列建立索引就會對該列的關鍵值進行排序並用某種資料結構儲存他的值和對應的實體地址,在sql中用的資料結構是b樹。索引的分類 1.聚集索引 聚集索引會對資料按索引按索引關鍵...
SQL server 資料庫之「索引」詳解
什麼是索引?資料庫中的索引與書籍中的目錄類似,索引使sql server編排資料的內部方法,它為sql server提供一種方法來編排查詢資料的路由。索引頁是資料中儲存索引的資料頁。索引頁存放檢索資料行的關鍵字頁及該資料行的位址指標。通過使用索引,可以大大提高資料庫的檢索速度 改善資料庫效能。索引的...