版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)庫物理存儲第一頁,共八十頁,2022年,8月28日第五章內(nèi)容5.1存儲介質(zhì)介紹5.2存儲結(jié)構(gòu)5.3索引技術(shù)第二頁,共八十頁,2022年,8月28日5.1存儲介質(zhì)一個數(shù)據(jù)庫最終要存儲到計算機的存儲設(shè)備中。因此,我們首先介紹一下數(shù)據(jù)庫系統(tǒng)所涉及到的計算機存儲設(shè)備。第三頁,共八十頁,2022年,8月28日5.1.1存儲介質(zhì)層次一個數(shù)據(jù)庫在運行過程中,涉及多種存儲設(shè)備。我們按存儲器中數(shù)據(jù)被DBMS使用的順序,把存儲器分為三級。⑴內(nèi)存作為一級存儲器,存放DBMS當前正在使用或正要使用的數(shù)據(jù)庫數(shù)據(jù)。⑵硬磁盤作為二級存儲器,存放整個數(shù)據(jù)庫,這些數(shù)據(jù)可能隨時被DBMS調(diào)入內(nèi)存。第四頁,共八十頁,2022年,8月28日1、內(nèi)存⑶磁盤、磁帶、光盤等作為三級存儲器,存放數(shù)據(jù)庫的備份,當磁盤中的數(shù)據(jù)庫遭到破壞時,用數(shù)據(jù)庫的備份來恢復(fù)。如圖所示:
第五頁,共八十頁,2022年,8月28日存儲器分三級結(jié)構(gòu)圖磁盤中的數(shù)據(jù)庫備份介質(zhì)中的數(shù)據(jù)庫DBMS數(shù)據(jù)緩存區(qū)DBMS一級二級三級第六頁,共八十頁,2022年,8月28日5.1.2內(nèi)存內(nèi)存中存放系統(tǒng)正在使用或正要使用的數(shù)據(jù)。內(nèi)存由操作系統(tǒng)來管理。操作系統(tǒng)為數(shù)據(jù)庫在內(nèi)存中開辟一塊區(qū)域,用來存放數(shù)據(jù)庫的數(shù)據(jù)和日志。如圖所示:第七頁,共八十頁,2022年,8月28日內(nèi)存中的數(shù)據(jù)庫示意圖數(shù)據(jù)庫的數(shù)據(jù)緩沖區(qū)
…數(shù)據(jù)庫的日志緩沖區(qū)數(shù)據(jù)頁數(shù)據(jù)頁數(shù)據(jù)頁內(nèi)存第八頁,共八十頁,2022年,8月28日5.1.3硬磁盤硬磁盤又稱溫切斯特盤(Winchester),它的工作原理是:在一個塑料盤片上涂上小磁粉顆粒,顆粒有磁時表示“1”、無磁時表示”0”結(jié)構(gòu)如圖所示:第九頁,共八十頁,2022年,8月28日1、磁盤結(jié)構(gòu)讀寫控制器磁道磁頭扇區(qū)柱面第十頁,共八十頁,2022年,8月28日2、技術(shù)指標盤片:一個硬盤由一組兩面涂有磁粉的盤片組成。磁道:為了在盤片上存儲信息,必須把盤片分成若干個同心圓,然后在其上存儲信息,我們把這些同心圓稱為磁道。扇區(qū)(扇段或盤塊):為了讀取信息方便,我們用扇形把磁道等分成若干段,我們稱它們?yōu)樯榷危ㄉ葏^(qū)或盤塊)。磁盤上的所有扇段(不論扇段的長短)都存儲相同容量的信息,盤塊大小與操作系統(tǒng)有關(guān),一般是512KB。盤塊是OS尋址的最小單位,既OS向磁盤讀寫數(shù)據(jù)的最小單位。第十一頁,共八十頁,2022年,8月28日2、技術(shù)指標柱面:我們把由所有盤面上相同磁道所夠成的哪一部分存儲空間,稱為一個柱面。磁盤容量:盤片總數(shù)×2×每個盤面的磁道數(shù)×磁道的盤塊數(shù)×每個盤塊的字節(jié)數(shù)在磁盤上定位數(shù)據(jù):操作系統(tǒng)通過(柱面號,磁頭號,盤塊號)三個參數(shù)來定位磁盤上的數(shù)據(jù)。OS對整個盤的盤塊進行統(tǒng)一編址,編址的方法是:第十二頁,共八十頁,2022年,8月28日2、技術(shù)指標假如磁盤有20個盤面,每面上有200個磁道。每個磁道上有17個扇段。⑴柱面編號:由內(nèi)向外依此編為0、1、2...199。⑵磁道編號:磁道編號按柱面號順序進行編號。0柱面的20個盤面上的磁道從上到下編為:0、1、2、...、19,1柱面的20個盤面上的磁道從上到下編為:
20、21、...、39,依此類推。
⑶盤塊編號:盤塊編號按磁道號順序編寫。0號磁道上的17個扇段依此編為0、1、2、...、16,1號磁道上的17個扇段編為17、18、...、33,依此類推。第十三頁,共八十頁,2022年,8月28日3、磁盤文件
操作系統(tǒng)對存儲到磁盤中的數(shù)據(jù),采用文件形式進行管理。每個文件有一個文件名,數(shù)據(jù)存儲在文件中。操作系統(tǒng)為每個磁盤創(chuàng)建一個文件分配表結(jié)構(gòu)如下:文件名起始盤塊號終止盤塊號第十四頁,共八十頁,2022年,8月28日3、磁盤文件第十五頁,共八十頁,2022年,8月28日3、磁盤文件一個文件包含多個盤塊,盤塊之間指針鏈接起來。一個盤塊只存儲一個文件的數(shù)據(jù),既一個盤塊不能存儲不同文件文件的數(shù)據(jù)。當用戶要訪問文件時,操作系統(tǒng)首先從磁盤的文件分配表中找到此文件,然后根據(jù)文件分配表的信息將該文件的盤塊調(diào)入內(nèi)存,操作系統(tǒng)從磁盤往內(nèi)存調(diào)數(shù)據(jù)的最小單位是一個盤塊(扇區(qū))。第十六頁,共八十頁,2022年,8月28日5.1.4磁盤陣列目前,數(shù)據(jù)庫中的數(shù)據(jù)量越來越大,數(shù)據(jù)的安全性要求越來越高。用單塊磁盤存儲數(shù)據(jù)庫數(shù)據(jù)已不滿足要求。1987年,Gibson和Katz在加洲大學(xué)伯克利分校發(fā)表文章,首先提出了“磁盤陣列”概念。第十七頁,共八十頁,2022年,8月28日5.1.4磁盤陣列獨立冗余磁盤陣列最初叫做廉價冗余磁盤陣列(RedundantArrayofInexpensiveDisks),它是由多個類型、容量、接口,甚至品牌一致的小容量、獨立的硬盤組成的陣列,而陣列綜合的性能可以超過單一昂貴大容量硬盤(SLED)的性能。由于是對多個磁盤并行操作,所以RAID磁盤子系統(tǒng)與單一磁盤相比它的輸入輸出性能得到了提高。服務(wù)器會把RAID陣列看成一個單一的存儲單元,并對幾個磁盤同時訪問,所以提高了輸入輸出的速率。第十八頁,共八十頁,2022年,8月28日5.1.4磁盤陣列RAID技術(shù)主要包含RAID0~RAID7等數(shù)個規(guī)范,它們的側(cè)重點各不相同,具體如下:第十九頁,共八十頁,2022年,8月28日1、RAID0RAID0連續(xù)以位或字節(jié)為單位分割數(shù)據(jù),并行讀/寫于多個磁盤上,因此具有很高的數(shù)據(jù)傳輸率,但它沒有數(shù)據(jù)冗余,因此并不能算是真正的RAID結(jié)構(gòu)。RAID0只是單純地提高性能,并沒有為數(shù)據(jù)的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數(shù)據(jù)。因此,RAID0不能應(yīng)用于數(shù)據(jù)安全性要求高的場合。第二十頁,共八十頁,2022年,8月28日RAID0示意圖1010001101011010物理盤A10100011陣列控制器物理盤B01011010第二十一頁,共八十頁,2022年,8月28日2、RAID1它是通過磁盤數(shù)據(jù)鏡像實現(xiàn)數(shù)據(jù)冗余,在成對的獨立磁盤上產(chǎn)生互為備份的數(shù)據(jù)。當原始數(shù)據(jù)繁忙時,可直接從鏡像拷貝中讀取數(shù)據(jù),因此RAID1可以提高讀取性能。RAID1是磁盤陣列中單位成本最高的,但提供了很高的數(shù)據(jù)安全性和可用性。當一個磁盤失效時,系統(tǒng)可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數(shù)據(jù)。第二十二頁,共八十頁,2022年,8月28日RAID1示意圖1010001101011010物理盤A1010001101011010陣列控制器物理盤B1010001101011010第二十三頁,共八十頁,2022年,8月28日3、RAID0+1這種模式其實是RAID0和RAID1的組合,它至少需要四塊盤。先由兩塊盤夠成RAID0陣列,再把兩個RAID0陣列構(gòu)成RAID1陣列。優(yōu)點是:既可提高數(shù)據(jù)的可靠性,又可適當提高讀寫速度。第二十四頁,共八十頁,2022年,8月28日RAID0+1示意圖1010001101011010物理盤A10100011陣列控制器物理盤B01011010物理盤C10100011物理盤D01011010第二十五頁,共八十頁,2022年,8月28日5.2數(shù)據(jù)庫的存儲結(jié)構(gòu)數(shù)據(jù)庫最終要存儲到計算機的磁盤中。而磁盤是由操作系統(tǒng)的文件管理子系統(tǒng)來管理的,大家知道操作系統(tǒng)對存儲在磁盤中的數(shù)據(jù)是以文件形式來管理的。因此DBMS對數(shù)據(jù)庫的存儲結(jié)構(gòu)設(shè)計必須符合操作系統(tǒng)的文件技術(shù)規(guī)范。我們先來看看操作系統(tǒng)文件的相關(guān)概念。第二十六頁,共八十頁,2022年,8月28日操作系統(tǒng)文件簡介操作系統(tǒng)邏輯文件是指用戶、應(yīng)用程序所感知道的文件組織形式。從結(jié)構(gòu)上可分成兩大類:字符流式無結(jié)構(gòu)文件和記錄式有結(jié)構(gòu)文件,而記錄式有結(jié)構(gòu)文件又可進一步分為:連續(xù)結(jié)構(gòu)、多重結(jié)構(gòu)、轉(zhuǎn)置結(jié)構(gòu)、順序結(jié)構(gòu)四種。從存取方法上可分為:順序存取、隨機存取、按鍵存取三種。第二十七頁,共八十頁,2022年,8月28日操作系統(tǒng)文件概述存儲數(shù)據(jù)庫數(shù)據(jù)的數(shù)據(jù)庫文件采用的是OS的記錄式有結(jié)構(gòu)文件,如圖所示:第二十八頁,共八十頁,2022年,8月28日記錄式有結(jié)構(gòu)文件示意圖OS結(jié)構(gòu)文件記錄的結(jié)構(gòu)STRUCTStudent{SIDString;SNameString;BirthDayDateTime}第二十九頁,共八十頁,2022年,8月28日5.2.2數(shù)據(jù)庫文件的記錄結(jié)構(gòu)設(shè)計數(shù)據(jù)庫中各種數(shù)據(jù)的結(jié)構(gòu)不相同,那么,我們應(yīng)如何設(shè)計數(shù)據(jù)庫文件的記錄結(jié)構(gòu),才能使數(shù)據(jù)庫的各種數(shù)據(jù)都能存儲在文件中呢?這里面臨的問題是:數(shù)據(jù)庫文件的記錄是采用定長結(jié)構(gòu)還是變長結(jié)構(gòu),這就是文件組織問題。第三十頁,共八十頁,2022年,8月28日1、定長記錄所謂定長記錄結(jié)構(gòu)就是文件的記錄采用統(tǒng)一的長度。定長記錄結(jié)構(gòu)的文件如圖所示:第三十一頁,共八十頁,2022年,8月28日文件頭記錄號記錄內(nèi)容指針12233-文件尾學(xué)號姓名性別生日S1LIM1990S2LIUF1990課號課名簡介C1DB××數(shù)據(jù)庫中的“學(xué)生”表數(shù)據(jù)庫中的“課程”表數(shù)據(jù)庫文件第三十二頁,共八十頁,2022年,8月28日2、變長記錄所謂變長記錄結(jié)構(gòu)就是存儲數(shù)據(jù)的文件記錄不采用統(tǒng)一的長度。變長記錄結(jié)構(gòu)如圖所示:第三十三頁,共八十頁,2022年,8月28日分槽式頁結(jié)構(gòu)記錄總數(shù)記錄1的大小記錄2的大小記錄3的大小自由空間記錄1的內(nèi)容記錄2的內(nèi)容記錄3的內(nèi)容指向自由空間尾部記錄1的位置記錄2的位置記錄3的位置記錄大小記錄位置第三十四頁,共八十頁,2022年,8月28日5.2.3數(shù)據(jù)庫文件中記錄的邏輯聯(lián)系在數(shù)據(jù)庫中,基本表之間是有聯(lián)的,基本表的元組之間是有順序的。那么如何在數(shù)據(jù)庫文件中體現(xiàn)出這些聯(lián)系和順序,以便我們能實現(xiàn)對數(shù)據(jù)的快速查找呢?顯然,應(yīng)該通過文件的“記錄”之間的邏輯順序和聯(lián)系來體現(xiàn)。記錄式文件的記錄組織結(jié)構(gòu)有以下四種:第三十五頁,共八十頁,2022年,8月28日1、堆文件在這種組織中,記錄可以放在文件的任何位置,一般以輸入順序為序。記錄的存儲順序與關(guān)鍵字無關(guān),插入記錄總是在文件尾部。第三十六頁,共八十頁,2022年,8月28日2、順序文件在這種組織中,記錄是按查找鍵值升序或降序順序存儲。第三十七頁,共八十頁,2022年,8月28日3、散列文件按記錄的某個數(shù)據(jù)項的值,通過散列函數(shù)求出一個散列值,然后用此值作為該記錄的存儲位置值。第三十八頁,共八十頁,2022年,8月28日4、聚集文件在這種組織中,一個文件可以存儲多個關(guān)系的元組。這樣一來,能提高對多個關(guān)系之間進行聯(lián)接查找的速度。第三十九頁,共八十頁,2022年,8月28日5.2.4SQLServer數(shù)據(jù)庫的存儲結(jié)構(gòu)從存儲角度看,一個SQLServer數(shù)據(jù)庫由若干個文件組構(gòu)成(1≤n≤256),一個數(shù)據(jù)庫至少要有一個主文件組(PRIMARY)。一個文件組可以包含若干個文件。一個數(shù)據(jù)庫文件的總數(shù):1≤m≤32767。一個數(shù)據(jù)庫必須有一個主文件,主文件的擴展名為(.mdf),其它文件稱為次要文件,次要文件的擴展名為(.ndf)。第四十頁,共八十頁,2022年,8月28日5.2.4SQLServer數(shù)據(jù)庫的存儲結(jié)構(gòu)系統(tǒng)為每個文件分配一個唯一標識號。例如01、02、…。第四十一頁,共八十頁,2022年,8月28日1、基本表與文件組之間的關(guān)系用戶只能指示把表放在哪個文件組中,不能直接指示把表放到哪個文件中。如果一個文件組包含多個文件(例如:兩個表),那么系統(tǒng)將存放在該文件組的基本表的數(shù)據(jù)平均地分配到各文件中。
第四十二頁,共八十頁,2022年,8月28日2、SQLServer數(shù)據(jù)庫文件一個SQLServer數(shù)據(jù)庫由數(shù)據(jù)文件和日志文件兩類文件組成。數(shù)據(jù)文件用來存儲數(shù)據(jù)庫各種對象的數(shù)據(jù)(例如:表、視圖、存儲過程等);日志文件用來記錄事務(wù)對數(shù)據(jù)的更新。數(shù)據(jù)文件的結(jié)構(gòu)如下圖所示:第四十三頁,共八十頁,2022年,8月28日數(shù)據(jù)文件結(jié)構(gòu)圖文件頭
…文件尾頁頁頁頁頁一般我們把數(shù)據(jù)庫的數(shù)據(jù)文件稱為數(shù)據(jù)庫文件。數(shù)據(jù)庫文件有一系列“頁”構(gòu)成。第四十四頁,共八十頁,2022年,8月28日數(shù)據(jù)文件頁編號數(shù)據(jù)文件的頁按順序編號,文件首頁的頁碼是0。每個文件都有一個文件ID號。在數(shù)據(jù)庫中唯一標識一頁需要同時使用文件ID和頁碼。第四十五頁,共八十頁,2022年,8月28日3、頁SQLServer數(shù)據(jù)存儲的基本單位是頁,一個頁對應(yīng)8K連續(xù)的磁盤塊。頁是SQLServer進行內(nèi)/外存數(shù)據(jù)交換的最小單位。每頁的開始部分是96字節(jié)的頁首,用于存儲系統(tǒng)信息,如頁的類型、頁的可用空間量、擁有頁的對象的對象ID等SQLServer頁有以下類型:第四十六頁,共八十頁,2022年,8月28日頁類型內(nèi)容數(shù)據(jù)包含數(shù)據(jù)行中除text、ntext
和image
數(shù)據(jù)外的所有數(shù)據(jù)。索引索引項文本/圖像text、ntext
和image數(shù)據(jù)。全局分配映射表、輔助全局分配映射表有關(guān)已分配的擴展盤區(qū)的信息。頁的可用空間有關(guān)頁上可用空間的信息。索引分配映射表有關(guān)表或索引所使用的擴展盤區(qū)的信息。大容量更改映射表參看《聯(lián)機叢書》數(shù)據(jù)庫構(gòu)架內(nèi)容。差異更改映射表同上第四十七頁,共八十頁,2022年,8月28日頁結(jié)構(gòu)圖頁首:文件ID、頁碼、頁的類型、頁的可用空間量、擁有者的ID
、上一頁、下一頁數(shù)據(jù)行1數(shù)據(jù)行2可用空間21行偏移量第四十八頁,共八十頁,2022年,8月28日4、頁與表中元組之間關(guān)系在SQLServer中,行不能跨頁。在SQLServer2000中,一行內(nèi)最多包含的數(shù)據(jù)量是
8060字節(jié),不包括text、ntext
和image
數(shù)據(jù)。第四十九頁,共八十頁,2022年,8月28日4、頁與表中元組之間關(guān)系由上述規(guī)定可知:⑴基本表的每行字節(jié)數(shù):≤8,060,既創(chuàng)建表時,各字段的最大占用空間總數(shù)不能超過8060B。⑵一個表每行字節(jié)數(shù)越小,一個頁中存放該表元組的數(shù)量就越多,因此查詢速度就越快第五十頁,共八十頁,2022年,8月28日5、頁組為了減少內(nèi)部操作和增加I/O效率,SQLServer在向表和索引分配存儲空間時是按頁組分配的。一個頁組(擴展盤區(qū))等于8個連續(xù)頁,即64KB。第五十一頁,共八十頁,2022年,8月28日5.3索引表中的元組在磁盤中只能有一個物理存儲位置,而用戶每次查找元組時,所要的元組順序(邏輯順序)經(jīng)常與元組的存儲順序(物理順序)不一致,如果每次DBMS都按元組的存儲順序去掃描元組,查找速度可能會很慢。這很像去圖書館借書。書在書庫有個存放順序(物理順序),如果你按這個順序去找書,最好情況是一次就找到了你所要的書,最壞情況是把書庫中的書整個查找一遍,最后才找到你所要的書,總之,平均速度很慢。第五十二頁,共八十頁,2022年,8月28日5.3索引那么,圖書館是怎么解決這個問題的呢?圖書館是為每本書建立一些卡片,在卡片中記錄書的基本信息及其所在位置,然后按某種邏輯順序(例如:出版業(yè),作者,書所屬的學(xué)科)將卡片放在一起,這便構(gòu)成了書的各種邏輯順序。他們稱此為“圖書目錄”或“圖書索引”。我們在數(shù)據(jù)庫中也可以使用此方法。第五十三頁,共八十頁,2022年,8月28日5.3索引對“基本表”的元組,按某個或某幾個字段值的某種順序(邏輯順序)建立一個目錄文件,此目錄文件按邏輯順序排列元組,并記錄元組的存儲位置。我們把這種目錄文件稱為該表的索引。索引文件結(jié)構(gòu)如圖所示:第五十四頁,共八十頁,2022年,8月28日查找鍵值指向元組存儲位置的指針ALTBCXBDKCLJEJB學(xué)號姓名…S1BCX…S2ALTS3BDKS4EJBS5ALTS6CLJS7BCX索引元組在文件中的順序索引圖1第五十五頁,共八十頁,2022年,8月28日查找鍵值指向元組存儲位置的指針S1S2S3S4S5學(xué)號姓名…S1BCX…S2ALTS3BDKS4EJBS5ALT索引元組在文件中的順序索引圖2第五十六頁,共八十頁,2022年,8月28日5.3.1索引概念1、查找鍵用于查找元組(記錄)的屬性集。它不一定是關(guān)系的主鍵。2、主文件存放關(guān)系的磁盤文件。3、元組(記錄)的物理位置、順序元組在存儲文件(主文件)的存儲位置、順序。第五十七頁,共八十頁,2022年,8月28日5.3.1索引概念4、索引文件對一個關(guān)系的記錄按某個查找鍵值的某種順序建立的文件。索引文件簡稱索引。5、記錄的索引順序(邏輯順序)記錄在索引文件的排列順序。6、索引文件的開銷索引可以提高查詢速度,但索引是需要系統(tǒng)付出代價的,這體現(xiàn)在以下兩個方面:第五十八頁,共八十頁,2022年,8月28日5.3.1索引概念⑴空間代價索引需要占用存儲空間。⑵維護代價用戶一但對索引所在的基本表進行插入、刪除操作或?qū)颈碓M的查找鍵值進行修改操作,DBMS就要重新整理(維護)索引。因此我們可以得出以下結(jié)論:第五十九頁,共八十頁,2022年,8月28日5.3.1索引概念①對一個基本表來說,不是索引建的越多越好。②盡量不要用更新頻繁的屬性集作為查找鍵來建立索引。第六十頁,共八十頁,2022年,8月28日5.3.2索引分類對于一個基本表來說,索引可以分為聚集索引和非聚集索引兩大類。1、聚集索引查找鍵值在索引中順序與在主文件中的物理存儲順序保持一致。2、非聚集索引查找鍵值在索引中順序與在主文件中的物理存儲順序不保持一致。第六十一頁,共八十頁,2022年,8月28日
5.3.3SQLServer的索引概念1、聚集索引在聚集索引中,表中各行的物理順序與索引順序保持一致。一個表只能有一個聚集索引。(如圖2)
SQLServer默認地用每個表的主鍵做為查找鍵來為表創(chuàng)建聚集索引。第六十二頁,共八十頁,2022年,8月28日5.3.3SQLServer的索引概念2、非聚集索引在非聚集索引中,表中各行的物理順序與索引順序不保持一致。一個表最多只能有249個非聚集索引。(如圖1)第六十三頁,共八十頁,2022年,8月28日5.3.3SQLServer的索引概念3、唯一索引唯一索引可以確保索引列不包含重復(fù)的值。在多列唯一索引的情況下,該索引可以確保索引列中每個值組合都是唯一的。聚集索引和非聚集索引都可以是唯一的。因此,只要列中的數(shù)據(jù)是唯一的,就可以在同一個表上創(chuàng)建一個唯一的聚集索引和多個唯一的非聚集索引。第六十四頁,共八十頁,2022年,8月28日3、唯一索引只有當唯一性是數(shù)據(jù)本身的特征時,指定唯一索引才有意義。如果必須實施唯一性以確保數(shù)據(jù)的完整性,則應(yīng)在列上創(chuàng)建UNIQUE或PRIMARYKEY約束,而不要創(chuàng)建唯一索引。例如,如果打算經(jīng)常查詢雇員表(主鍵為emp_id)中的社會安全號碼(ssn)列,并希望確保社會安全號碼的唯一性,則在ssn列上創(chuàng)建UNIQUE約束。第六十五頁,共八十頁,2022年,8月28日3、唯一索引創(chuàng)建PRIMARYKEY或UNIQUE約束會在表中指定的列上自動創(chuàng)建唯一索引。在同一個列組合上創(chuàng)建唯一索引而不是非唯一索引可為查詢優(yōu)化器提供附加信息;所以最好創(chuàng)建唯一索引。第六十六頁,共八十頁,2022年,8月28日5.3.4使用索引的原則1、索引使用的一般原則⑴衡量是否為一個表建立索引的原則①對數(shù)據(jù)量很大,并且查詢頻度高的表要建立索引。②覆蓋的查詢可以提高性能。覆蓋的查詢是指查詢中所有指定的列都包含在同一個索引中。第六十七頁,共八十頁,2022年,8月28日⑴衡量是否為一個表建立索引的原則③對小型表進行索引可能不會產(chǎn)生優(yōu)化效果,因為SQLServer在遍歷索引以搜索數(shù)據(jù)時,花費的時間可能會比簡單的表掃描還長。④一個表如果建有大量索引會影響INSERT、UPDATE和DELETE語句的性能,因為在表中的數(shù)據(jù)更改時,所有索引都須進行適當?shù)恼{(diào)整。第六十八頁,共八十頁,2022年,8月28日⑴衡量是否為一個表建立索引的原則⑤應(yīng)使用SQL事件探查器和索引優(yōu)化向?qū)椭治霾樵?,確定要創(chuàng)建的索引。第六十九頁,共八十頁,2022年,8月28日1、索引使用的一般原則⑵衡量是否為一個列創(chuàng)建索引的原則應(yīng)考慮被索引的列是否以及如何用于查詢中。索引對下列查詢很有幫助:①搜索符合特定搜索關(guān)鍵字值的行(精確匹配查詢)。精確匹配比較是指查詢使用WHERE語句指定具有給定值的列條目。例如:WHEREemp_id='VPA30890F'第七十頁,共八十頁,2022年,8月28日⑵衡量是否為一個列創(chuàng)建索引的原則②搜索其搜索關(guān)鍵字值為范圍值的行(范圍查詢)。范圍查詢是指查詢指定其值介于兩個值之間的任何條目。例如:
WHEREjob_lvlBETWEEN9and12或
WHEREjob_lvl>=9andjob_lvl<=12第七十一頁,共八十頁,2022年,8月28日⑵衡量是否為一個列創(chuàng)建索引的原則③在表T1
中搜索根據(jù)聯(lián)接謂詞與表T2
中的某個行匹配的行(索引嵌套循環(huán)聯(lián)接)。④在不進行顯式排序操作的情況下產(chǎn)生經(jīng)排序的查詢輸出,尤其是經(jīng)排序的動態(tài)游標。⑤在不進行顯式排序操作的情況下,按一種有序的順序?qū)π羞M行掃描,以允許基于順序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20134-2025道路交通信息采集事件信息集
- 互聯(lián)網(wǎng)廣告管理規(guī)范與審核(標準版)
- 2025年醫(yī)療保險理賠服務(wù)規(guī)范
- 職業(yè)健康管理規(guī)范與操作流程
- 會議考勤與出勤考核制度
- 合同管理流程操作指南(標準版)
- 保密及知識產(chǎn)權(quán)保護制度
- 辦公室員工離職手續(xù)辦理制度
- 2026年鄭州新鄭天佑中醫(yī)院(原新鄭市中醫(yī)院)招聘備考題庫及答案詳解一套
- 2026年陵水黎族自治縣數(shù)字投資有限公司招聘備考題庫及一套答案詳解
- 2025年《新課程標準解讀》標準課件
- 2024年1月國家開放大學(xué)漢語言本科《古代小說戲曲專題》期末紙質(zhì)考試試題及答案
- 蘇州市姑蘇區(qū)教育體育和文化旅游委員會下屬學(xué)校招聘事業(yè)編制教師筆試真題2023
- 后切式背栓連接干掛石材幕墻施工方案
- 人教版數(shù)學(xué)四年級上冊期末測試卷及答案 (共八套)-2
- 大轉(zhuǎn)爐氧槍橡膠軟管和金屬軟管性能比較
- 四川省內(nèi)江市2023-2024學(xué)年高二上學(xué)期期末檢測生物試題
- 02-廢氣收集系統(tǒng)-風(fēng)管設(shè)計課件
- 天津東疆我工作圖0718
- 北京春季化學(xué)會考試卷及答案
- 數(shù)學(xué)建模插值與擬合
評論
0/150
提交評論