欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SQL Server 索引結(jié)構(gòu)及其使用(一)--深入淺出理解索引結(jié)構(gòu)第2/4頁(yè)

 更新時(shí)間:2009年04月09日 00:35:22   作者:  
深入淺出理解索引結(jié)構(gòu)

三、結(jié)合實(shí)際,談索引使用的誤區(qū)
  理論的目的是應(yīng)用。雖然我們剛才列出了何時(shí)應(yīng)使用聚集索引或非聚集索引,但在實(shí)踐中以上規(guī)則卻很容易被忽視或不能根據(jù)實(shí)際情況進(jìn)行綜合分析。下面我們將根據(jù)在實(shí)踐中遇到的實(shí)際問(wèn)題來(lái)談一下索引使用的誤區(qū),以便于大家掌握索引建立的方法。

1、主鍵就是聚集索引
  這種想法筆者認(rèn)為是極端錯(cuò)誤的,是對(duì)聚集索引的一種浪費(fèi)。雖然SQL SERVER默認(rèn)是在主鍵上建立聚集索引的。

  通常,我們會(huì)在每個(gè)表中都建立一個(gè)ID列,以區(qū)分每條數(shù)據(jù),并且這個(gè)ID列是自動(dòng)增大的,步長(zhǎng)一般為1。我們的這個(gè)辦公自動(dòng)化的實(shí)例中的列Gid就是如此。此時(shí),如果我們將這個(gè)列設(shè)為主鍵,SQL SERVER會(huì)將此列默認(rèn)為聚集索引。這樣做有好處,就是可以讓您的數(shù)據(jù)在數(shù)據(jù)庫(kù)中按照ID進(jìn)行物理排序,但筆者認(rèn)為這樣做意義不大。

  顯而易見,聚集索引的優(yōu)勢(shì)是很明顯的,而每個(gè)表中只能有一個(gè)聚集索引的規(guī)則,這使得聚集索引變得更加珍貴。

  從我們前面談到的聚集索引的定義我們可以看出,使用聚集索引的最大好處就是能夠根據(jù)查詢要求,迅速縮小查詢范圍,避免全表掃描。在實(shí)際應(yīng)用中,因?yàn)镮D號(hào)是自動(dòng)生成的,我們并不知道每條記錄的ID號(hào),所以我們很難在實(shí)踐中用ID號(hào)來(lái)進(jìn)行查詢。這就使讓ID號(hào)這個(gè)主鍵作為聚集索引成為一種資源浪費(fèi)。其次,讓每個(gè)ID號(hào)都不同的字段作為聚集索引也不符合“大數(shù)目的不同值情況下不應(yīng)建立聚合索引”規(guī)則;當(dāng)然,這種情況只是針對(duì)用戶經(jīng)常修改記錄內(nèi)容,特別是索引項(xiàng)的時(shí)候會(huì)負(fù)作用,但對(duì)于查詢速度并沒有影響。

  在辦公自動(dòng)化系統(tǒng)中,無(wú)論是系統(tǒng)首頁(yè)顯示的需要用戶簽收的文件、會(huì)議還是用戶進(jìn)行文件查詢等任何情況下進(jìn)行數(shù)據(jù)查詢都離不開字段的是“日期”還有用戶本身的“用戶名”。

  通常,辦公自動(dòng)化的首頁(yè)會(huì)顯示每個(gè)用戶尚未簽收的文件或會(huì)議。雖然我們的where語(yǔ)句可以僅僅限制當(dāng)前用戶尚未簽收的情況,但如果您的系統(tǒng)已建立了很長(zhǎng)時(shí)間,并且數(shù)據(jù)量很大,那么,每次每個(gè)用戶打開首頁(yè)的時(shí)候都進(jìn)行一次全表掃描,這樣做意義是不大的,絕大多數(shù)的用戶1個(gè)月前的文件都已經(jīng)瀏覽過(guò)了,這樣做只能徒增數(shù)據(jù)庫(kù)的開銷而已。事實(shí)上,我們完全可以讓用戶打開系統(tǒng)首頁(yè)時(shí),數(shù)據(jù)庫(kù)僅僅查詢這個(gè)用戶近3個(gè)月來(lái)未閱覽的文件,通過(guò)“日期”這個(gè)字段來(lái)限制表掃描,提高查詢速度。如果您的辦公自動(dòng)化系統(tǒng)已經(jīng)建立的2年,那么您的首頁(yè)顯示速度理論上將是原來(lái)速度8倍,甚至更快。

相關(guān)文章

  • SQL server中字符串逗號(hào)分隔函數(shù)分享

    SQL server中字符串逗號(hào)分隔函數(shù)分享

    繼SQl -Function創(chuàng)建函數(shù)數(shù)據(jù)庫(kù)輸出的結(jié)果用逗號(hào)隔開,在開發(fā)中也有許多以參數(shù)的形式傳入帶逗號(hào)字條串參數(shù),需要的朋友可以參考下
    2016-10-10
  • SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法

    SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法

    這篇文章主要介紹了SQL Server 公用表表達(dá)式(CTE)實(shí)現(xiàn)遞歸的方法,需要的朋友可以參考下
    2017-05-05
  • NetBeans連接SQL server數(shù)據(jù)庫(kù)教程

    NetBeans連接SQL server數(shù)據(jù)庫(kù)教程

    這篇文章主要介紹了NetBeans連接SQL server數(shù)據(jù)庫(kù)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù)

    SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù)

    這篇文章主要是SQl語(yǔ)句的練習(xí),本文教大家如何用SQL查詢語(yǔ)句求出用戶的連續(xù)登陸天數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • SQL數(shù)據(jù)查詢之DQL語(yǔ)言介紹

    SQL數(shù)據(jù)查詢之DQL語(yǔ)言介紹

    首先對(duì)于數(shù)據(jù)庫(kù)有一定的了解,會(huì)對(duì)于數(shù)據(jù)庫(kù)的學(xué)習(xí)有一定的幫助;?數(shù)據(jù)庫(kù)主要分為 DB(數(shù)據(jù)庫(kù)),DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)),SQL(結(jié)構(gòu)化查詢語(yǔ)言,用于和DBMS通信的語(yǔ)言);這篇要講的DQL(數(shù)據(jù)查詢語(yǔ)句)是屬于SQL語(yǔ)言中的一種語(yǔ)言,因此是必學(xué)的語(yǔ)言,希望可以有一定的幫助
    2022-08-08
  • SQL Server 2000的安全配置

    SQL Server 2000的安全配置

    SQL Server 2000的安全配置...
    2006-10-10
  • sqlserver主鍵自增的實(shí)現(xiàn)示例

    sqlserver主鍵自增的實(shí)現(xiàn)示例

    這篇文章主要介紹了sqlserver主鍵自增的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Sql語(yǔ)句與存儲(chǔ)過(guò)程查詢數(shù)據(jù)的性能測(cè)試實(shí)現(xiàn)代碼

    Sql語(yǔ)句與存儲(chǔ)過(guò)程查詢數(shù)據(jù)的性能測(cè)試實(shí)現(xiàn)代碼

    Sql語(yǔ)句 存儲(chǔ)過(guò)程查 性能測(cè)試對(duì)比代碼。
    2009-04-04
  • SQL Server之JSON 函數(shù)詳解

    SQL Server之JSON 函數(shù)詳解

    本篇文件將結(jié)合MSND簡(jiǎn)要分析Sqlserver中JSON函數(shù),主要包括ISJSON,JSON_VALUE,JSON_MODIFY,JSON_QUERY,需要的朋友可以參考下
    2019-11-11
  • SQL Server 數(shù)據(jù)庫(kù)索引其索引的小技巧

    SQL Server 數(shù)據(jù)庫(kù)索引其索引的小技巧

    關(guān)于索引的常識(shí):影響到數(shù)據(jù)庫(kù)性能的最大因素就是索引。由于該問(wèn)題的復(fù)雜性,我只可能簡(jiǎn)單的談?wù)勥@個(gè)問(wèn)題,不過(guò)關(guān)于這方面的問(wèn)題,目前有好幾本不錯(cuò)的書籍可供你參閱。我在這里只討論兩種SQL Server索引,即clustered索引和nonclustered索引
    2012-06-06

最新評(píng)論