偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server聚集索引的重要性與選擇聚集索引的條件

數(shù)據(jù)庫 SQL Server
以下的文章主要是介紹SQL Server聚集索引的重要性與在選擇聚集索引的條件,以下就是對其實際操作步驟的具體描述。

文章主要描述的是SQL Server聚集索引的重要性與在選擇聚集索引的條件,前一篇文章我們主要是討論了關(guān)于實現(xiàn)小數(shù)據(jù)量與其海量數(shù)據(jù)的通用分頁顯示存儲過程。這是因為在將本存儲過程應(yīng)用于“辦公自動化”系統(tǒng)的實踐中時。

筆者發(fā)現(xiàn)這第三種存儲過程在小數(shù)據(jù)量的情況下,有如下現(xiàn)象:

1、分頁速度一般維持在1秒和3秒之間。

2、在查詢***一頁時,速度一般為5秒至8秒,哪怕分頁總數(shù)只有3頁或30萬頁。

雖然在超大容量情況下,這個分頁的實現(xiàn)過程是很快的,但在分前幾頁時,這個1-3秒的速度比起***種甚至沒有經(jīng)過優(yōu)化的分頁方法速度還要慢,借用戶的話說就是“還沒有ACCESS數(shù)據(jù)庫速度快”,這個認(rèn)識足以導(dǎo)致用戶放棄使用您開發(fā)的系統(tǒng)。

筆者就此分析了一下,原來產(chǎn)生這種現(xiàn)象的癥結(jié)是如此的簡單,但又如此的重要:排序的字段不是SQL Server聚集索引!

本篇文章的題目是:“查詢優(yōu)化及分頁算法方案”。筆者只所以把“查詢優(yōu)化”和“分頁算法”這兩個聯(lián)系不是很大的論題放在一起,就是因為二者都需要一個非常重要的東西SQL Server聚集索引。

在前面的討論中我們已經(jīng)提到了,SQL Server聚集索引有兩個***的優(yōu)勢:

1、以最快的速度縮小查詢范圍。

2、以最快的速度進行字段排序。

第1條多用在查詢優(yōu)化時,而第2條多用在進行分頁時的數(shù)據(jù)排序。

而聚集索引在每個表內(nèi)又只能建立一個,這使得聚集索引顯得更加的重要。SQL Server聚集索引的挑選可以說是實現(xiàn)“查詢優(yōu)化”和“高效分頁”的最關(guān)鍵因素。

但要既使聚集索引列既符合查詢列的需要,又符合排序列的需要,這通常是一個矛盾。筆者前面“索引”的討論中,將fariqi,即用戶發(fā)文日期作為了聚集索引的起始列,日期的精確度為“日”。這種作法的優(yōu)點,前面已經(jīng)提到了,在進行劃時間段的快速查詢中,比用ID主鍵列有很大的優(yōu)勢。

但在分頁時,由于這個聚集索引列存在著重復(fù)記錄,所以無法使用max或min來最為分頁的參照物,進而無法實現(xiàn)更為高效的排序。而如果將ID主鍵列作為聚集索引,那么聚集索引除了用以排序之外,沒有任何用處,實際上是浪費了聚集索引這個寶貴的資源。

為解決這個矛盾,筆者后來又添加了一個日期列,其默認(rèn)值為getdate()。用戶在寫入記錄時,這個列自動寫入當(dāng)時的時間,時間精確到毫秒。即使這樣,為了避免可能性很小的重合,還要在此列上創(chuàng)建UNIQUE約束。將此日期列作為SQL Server聚集索引列。

有了這個時間型聚集索引列之后,用戶就既可以用這個列查找用戶在插入數(shù)據(jù)時的某個時間段的查詢,又可以作為唯一列來實現(xiàn)max或min,成為分頁算法的參照物。

【編輯推薦】

  1. SQL Server 索引的底層實現(xiàn)概述
  2. SQL Server索引選擇的引用與建議
  3. SQL Server評價索引之有效性
  4. SQL Server索引直方圖的內(nèi)容描述
  5. 關(guān)于SQL Server索引密度的知識
責(zé)任編輯:佚名 來源: 網(wǎng)絡(luò)轉(zhuǎn)載
相關(guān)推薦

2010-07-07 11:20:02

SQL Server聚

2010-07-19 16:26:05

SQL Server非

2010-07-19 16:17:41

SQL Server聚

2011-04-22 14:45:45

SQL索引

2022-11-28 07:25:52

MySQL聚集索引

2011-03-30 11:28:31

SQL Server聚集索引

2015-10-30 15:55:43

MySQL

2010-07-20 12:46:23

SQL Server聚

2014-08-28 10:06:57

SQL Server

2022-03-25 10:38:40

索引MySQL數(shù)據(jù)庫

2010-07-19 14:55:12

SQL Server索

2023-06-05 08:07:34

聚集索引存儲數(shù)據(jù)

2013-07-12 09:26:12

SQL ServerSQL PASS微軟MVP

2016-08-29 20:31:17

2010-07-19 16:36:13

SQL Server視

2010-07-15 15:42:38

2010-07-30 16:28:06

2023-10-24 11:07:57

2010-07-19 16:43:07

SQL Server選

2023-08-01 10:49:09

eSIMGSMA
點贊
收藏

51CTO技術(shù)棧公眾號