數(shù)據(jù)庫物理存儲_第1頁
數(shù)據(jù)庫物理存儲_第2頁
數(shù)據(jù)庫物理存儲_第3頁
數(shù)據(jù)庫物理存儲_第4頁
數(shù)據(jù)庫物理存儲_第5頁
已閱讀5頁,還剩75頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

數(shù)據(jù)庫物理存儲第1頁,課件共80頁,創(chuàng)作于2023年2月第五章內(nèi)容5.1存儲介質(zhì)介紹5.2存儲結構5.3索引技術第2頁,課件共80頁,創(chuàng)作于2023年2月5.1存儲介質(zhì)一個數(shù)據(jù)庫最終要存儲到計算機的存儲設備中。因此,我們首先介紹一下數(shù)據(jù)庫系統(tǒng)所涉及到的計算機存儲設備。第3頁,課件共80頁,創(chuàng)作于2023年2月5.1.1存儲介質(zhì)層次一個數(shù)據(jù)庫在運行過程中,涉及多種存儲設備。我們按存儲器中數(shù)據(jù)被DBMS使用的順序,把存儲器分為三級。⑴內(nèi)存作為一級存儲器,存放DBMS當前正在使用或正要使用的數(shù)據(jù)庫數(shù)據(jù)。⑵硬磁盤作為二級存儲器,存放整個數(shù)據(jù)庫,這些數(shù)據(jù)可能隨時被DBMS調(diào)入內(nèi)存。第4頁,課件共80頁,創(chuàng)作于2023年2月1、內(nèi)存⑶磁盤、磁帶、光盤等作為三級存儲器,存放數(shù)據(jù)庫的備份,當磁盤中的數(shù)據(jù)庫遭到破壞時,用數(shù)據(jù)庫的備份來恢復。如圖所示:

第5頁,課件共80頁,創(chuàng)作于2023年2月存儲器分三級結構圖磁盤中的數(shù)據(jù)庫備份介質(zhì)中的數(shù)據(jù)庫DBMS數(shù)據(jù)緩存區(qū)DBMS一級二級三級第6頁,課件共80頁,創(chuàng)作于2023年2月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ù)和日志。如圖所示:第7頁,課件共80頁,創(chuàng)作于2023年2月5.1.2內(nèi)存中的數(shù)據(jù)庫示意圖數(shù)據(jù)庫的數(shù)據(jù)緩沖區(qū)

…數(shù)據(jù)庫的日志緩沖區(qū)數(shù)據(jù)頁數(shù)據(jù)頁數(shù)據(jù)頁內(nèi)存第8頁,課件共80頁,創(chuàng)作于2023年2月5.1.3硬磁盤硬磁盤又稱溫切斯特盤(Winchester),它的工作原理是:在一個塑料盤片上涂上小磁粉顆粒,顆粒有磁時表示“1”、無磁時表示”0”結構如圖所示:第9頁,課件共80頁,創(chuàng)作于2023年2月1、磁盤結構讀寫控制器磁道磁頭扇區(qū)柱面第10頁,課件共80頁,創(chuàng)作于2023年2月2、技術指標盤片:一個硬盤由一組兩面涂有磁粉的盤片組成。磁道:為了在盤片上存儲信息,必須把盤片分成若干個同心圓,然后在其上存儲信息,我們把這些同心圓稱為磁道。扇區(qū)(扇段或盤塊):為了讀取信息方便,我們用扇形把磁道等分成若干段,我們稱它們?yōu)樯榷危ㄉ葏^(qū)或盤塊)。磁盤上的所有扇段(不論扇段的長短)都存儲相同容量的信息,盤塊大小與操作系統(tǒng)有關,一般是512KB。盤塊是OS尋址的最小單位,既OS向磁盤讀寫數(shù)據(jù)的最小單位。第11頁,課件共80頁,創(chuàng)作于2023年2月2、技術指標柱面:我們把由所有盤面上相同磁道所夠成的哪一部分存儲空間,稱為一個柱面。磁盤容量:盤片總數(shù)×2×每個盤面的磁道數(shù)×磁道的盤塊數(shù)×每個盤塊的字節(jié)數(shù)在磁盤上定位數(shù)據(jù):操作系統(tǒng)通過(柱面號,磁頭號,盤塊號)三個參數(shù)來定位磁盤上的數(shù)據(jù)。OS對整個盤的盤塊進行統(tǒng)一編址,編址的方法是:第12頁,課件共80頁,創(chuàng)作于2023年2月2、技術指標假如磁盤有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,依此類推。第13頁,課件共80頁,創(chuàng)作于2023年2月3、磁盤文件

操作系統(tǒng)對存儲到磁盤中的數(shù)據(jù),采用文件形式進行管理。每個文件有一個文件名,數(shù)據(jù)存儲在文件中。操作系統(tǒng)為每個磁盤創(chuàng)建一個文件分配表結構如下:文件名起始盤塊號終止盤塊號第14頁,課件共80頁,創(chuàng)作于2023年2月3、磁盤文件第15頁,課件共80頁,創(chuàng)作于2023年2月3、磁盤文件一個文件包含多個盤塊,盤塊之間指針鏈接起來。一個盤塊只存儲一個文件的數(shù)據(jù),既一個盤塊不能存儲不同文件文件的數(shù)據(jù)。當用戶要訪問文件時,操作系統(tǒng)首先從磁盤的文件分配表中找到此文件,然后根據(jù)文件分配表的信息將該文件的盤塊調(diào)入內(nèi)存,操作系統(tǒng)從磁盤往內(nèi)存調(diào)數(shù)據(jù)的最小單位是一個盤塊(扇區(qū))。第16頁,課件共80頁,創(chuàng)作于2023年2月5.1.4磁盤陣列目前,數(shù)據(jù)庫中的數(shù)據(jù)量越來越大,數(shù)據(jù)的安全性要求越來越高。用單塊磁盤存儲數(shù)據(jù)庫數(shù)據(jù)已不滿足要求。1987年,Gibson和Katz在加洲大學伯克利分校發(fā)表文章,首先提出了“磁盤陣列”概念。第17頁,課件共80頁,創(chuàng)作于2023年2月5.1.4磁盤陣列獨立冗余磁盤陣列最初叫做廉價冗余磁盤陣列(RedundantArrayofInexpensiveDisks),它是由多個類型、容量、接口,甚至品牌一致的小容量、獨立的硬盤組成的陣列,而陣列綜合的性能可以超過單一昂貴大容量硬盤(SLED)的性能。由于是對多個磁盤并行操作,所以RAID磁盤子系統(tǒng)與單一磁盤相比它的輸入輸出性能得到了提高。服務器會把RAID陣列看成一個單一的存儲單元,并對幾個磁盤同時訪問,所以提高了輸入輸出的速率。第18頁,課件共80頁,創(chuàng)作于2023年2月5.1.4磁盤陣列RAID技術主要包含RAID0~RAID7等數(shù)個規(guī)范,它們的側重點各不相同,具體如下:第19頁,課件共80頁,創(chuàng)作于2023年2月1、RAID0RAID0連續(xù)以位或字節(jié)為單位分割數(shù)據(jù),并行讀/寫于多個磁盤上,因此具有很高的數(shù)據(jù)傳輸率,但它沒有數(shù)據(jù)冗余,因此并不能算是真正的RAID結構。RAID0只是單純地提高性能,并沒有為數(shù)據(jù)的可靠性提供保證,而且其中的一個磁盤失效將影響到所有數(shù)據(jù)。因此,RAID0不能應用于數(shù)據(jù)安全性要求高的場合。第20頁,課件共80頁,創(chuàng)作于2023年2月RAID0示意圖1010001101011010物理盤A10100011陣列控制器物理盤B01011010第21頁,課件共80頁,創(chuàng)作于2023年2月2、RAID1它是通過磁盤數(shù)據(jù)鏡像實現(xiàn)數(shù)據(jù)冗余,在成對的獨立磁盤上產(chǎn)生互為備份的數(shù)據(jù)。當原始數(shù)據(jù)繁忙時,可直接從鏡像拷貝中讀取數(shù)據(jù),因此RAID1可以提高讀取性能。RAID1是磁盤陣列中單位成本最高的,但提供了很高的數(shù)據(jù)安全性和可用性。當一個磁盤失效時,系統(tǒng)可以自動切換到鏡像磁盤上讀寫,而不需要重組失效的數(shù)據(jù)。第22頁,課件共80頁,創(chuàng)作于2023年2月RAID1示意圖1010001101011010物理盤A1010001101011010陣列控制器物理盤B1010001101011010第23頁,課件共80頁,創(chuàng)作于2023年2月3、RAID0+1這種模式其實是RAID0和RAID1的組合,它至少需要四塊盤。先由兩塊盤夠成RAID0陣列,再把兩個RAID0陣列構成RAID1陣列。優(yōu)點是:既可提高數(shù)據(jù)的可靠性,又可適當提高讀寫速度。第24頁,課件共80頁,創(chuàng)作于2023年2月RAID0+1示意圖1010001101011010物理盤A10100011陣列控制器物理盤B01011010物理盤C10100011物理盤D01011010第25頁,課件共80頁,創(chuàng)作于2023年2月5.2數(shù)據(jù)庫的存儲結構數(shù)據(jù)庫最終要存儲到計算機的磁盤中。而磁盤是由操作系統(tǒng)的文件管理子系統(tǒng)來管理的,大家知道操作系統(tǒng)對存儲在磁盤中的數(shù)據(jù)是以文件形式來管理的。因此DBMS對數(shù)據(jù)庫的存儲結構設計必須符合操作系統(tǒng)的文件技術規(guī)范。我們先來看看操作系統(tǒng)文件的相關概念。第26頁,課件共80頁,創(chuàng)作于2023年2月5.2.1操作系統(tǒng)文件簡介操作系統(tǒng)邏輯文件是指用戶、應用程序所感知道的文件組織形式。從結構上可分成兩大類:字符流式無結構文件和記錄式有結構文件,而記錄式有結構文件又可進一步分為:連續(xù)結構、多重結構、轉(zhuǎn)置結構、順序結構四種。從存取方法上可分為:順序存取、隨機存取、按鍵存取三種。第27頁,課件共80頁,創(chuàng)作于2023年2月5.2.1操作系統(tǒng)文件概述存儲數(shù)據(jù)庫數(shù)據(jù)的數(shù)據(jù)庫文件采用的是OS的記錄式有結構文件,如圖所示:第28頁,課件共80頁,創(chuàng)作于2023年2月記錄式有結構文件示意圖OS結構文件記錄的結構STRUCTStudent{SIDString;SNameString;BirthDayDateTime}第29頁,課件共80頁,創(chuàng)作于2023年2月5.2.2數(shù)據(jù)庫文件的記錄結構設計數(shù)據(jù)庫中各種數(shù)據(jù)的結構不相同,那么,我們應如何設計數(shù)據(jù)庫文件的記錄結構,才能使數(shù)據(jù)庫的各種數(shù)據(jù)都能存儲在文件中呢?這里面臨的問題是:數(shù)據(jù)庫文件的記錄是采用定長結構還是變長結構,這就是文件組織問題。第30頁,課件共80頁,創(chuàng)作于2023年2月1、定長記錄所謂定長記錄結構就是文件的記錄采用統(tǒng)一的長度。定長記錄結構的文件如圖所示:第31頁,課件共80頁,創(chuàng)作于2023年2月文件頭記錄號記錄內(nèi)容指針12233-文件尾學號姓名性別生日S1LIM1990S2LIUF1990課號課名簡介C1DB××數(shù)據(jù)庫中的“學生”表數(shù)據(jù)庫中的“課程”表數(shù)據(jù)庫文件第32頁,課件共80頁,創(chuàng)作于2023年2月2、變長記錄所謂變長記錄結構就是存儲數(shù)據(jù)的文件記錄不采用統(tǒng)一的長度。變長記錄結構如圖所示:第33頁,課件共80頁,創(chuàng)作于2023年2月分槽式頁結構記錄總數(shù)記錄1的大小記錄2的大小記錄3的大小自由空間記錄1的內(nèi)容記錄2的內(nèi)容記錄3的內(nèi)容指向自由空間尾部記錄1的位置記錄2的位置記錄3的位置記錄大小記錄位置第34頁,課件共80頁,創(chuàng)作于2023年2月5.2.3數(shù)據(jù)庫文件中記錄的邏輯聯(lián)系在數(shù)據(jù)庫中,基本表之間是有聯(lián)的,基本表的元組之間是有順序的。那么如何在數(shù)據(jù)庫文件中體現(xiàn)出這些聯(lián)系和順序,以便我們能實現(xiàn)對數(shù)據(jù)的快速查找呢?顯然,應該通過文件的“記錄”之間的邏輯順序和聯(lián)系來體現(xiàn)。記錄式文件的記錄組織結構有以下四種:第35頁,課件共80頁,創(chuàng)作于2023年2月1、堆文件在這種組織中,記錄可以放在文件的任何位置,一般以輸入順序為序。記錄的存儲順序與關鍵字無關,插入記錄總是在文件尾部。第36頁,課件共80頁,創(chuàng)作于2023年2月2、順序文件在這種組織中,記錄是按查找鍵值升序或降序順序存儲。第37頁,課件共80頁,創(chuàng)作于2023年2月3、散列文件按記錄的某個數(shù)據(jù)項的值,通過散列函數(shù)求出一個散列值,然后用此值作為該記錄的存儲位置值。第38頁,課件共80頁,創(chuàng)作于2023年2月4、聚集文件在這種組織中,一個文件可以存儲多個關系的元組。這樣一來,能提高對多個關系之間進行聯(lián)接查找的速度。第39頁,課件共80頁,創(chuàng)作于2023年2月5.2.4SQLServer數(shù)據(jù)庫的存儲結構從存儲角度看,一個SQLServer數(shù)據(jù)庫由若干個文件組構成(1≤n≤256),一個數(shù)據(jù)庫至少要有一個主文件組(PRIMARY)。一個文件組可以包含若干個文件。一個數(shù)據(jù)庫文件的總數(shù):1≤m≤32767。一個數(shù)據(jù)庫必須有一個主文件,主文件的擴展名為(.mdf),其它文件稱為次要文件,次要文件的擴展名為(.ndf)。第40頁,課件共80頁,創(chuàng)作于2023年2月5.2.4SQLServer數(shù)據(jù)庫的存儲結構系統(tǒng)為每個文件分配一個唯一標識號。例如01、02、…。第41頁,課件共80頁,創(chuàng)作于2023年2月1、基本表與文件組之間的關系用戶只能指示把表放在哪個文件組中,不能直接指示把表放到哪個文件中。如果一個文件組包含多個文件(例如:兩個表),那么系統(tǒng)將存放在該文件組的基本表的數(shù)據(jù)平均地分配到各文件中。

第42頁,課件共80頁,創(chuàng)作于2023年2月2、SQLServer數(shù)據(jù)庫文件一個SQLServer數(shù)據(jù)庫由數(shù)據(jù)文件和日志文件兩類文件組成。數(shù)據(jù)文件用來存儲數(shù)據(jù)庫各種對象的數(shù)據(jù)(例如:表、視圖、存儲過程等);日志文件用來記錄事務對數(shù)據(jù)的更新。數(shù)據(jù)文件的結構如下圖所示:第43頁,課件共80頁,創(chuàng)作于2023年2月數(shù)據(jù)文件結構圖文件頭

…文件尾頁頁頁頁頁一般我們把數(shù)據(jù)庫的數(shù)據(jù)文件稱為數(shù)據(jù)庫文件。數(shù)據(jù)庫文件有一系列“頁”構成。第44頁,課件共80頁,創(chuàng)作于2023年2月數(shù)據(jù)文件頁編號數(shù)據(jù)文件的頁按順序編號,文件首頁的頁碼是0。每個文件都有一個文件ID號。在數(shù)據(jù)庫中唯一標識一頁需要同時使用文件ID和頁碼。第45頁,課件共80頁,創(chuàng)作于2023年2月3、頁SQLServer數(shù)據(jù)存儲的基本單位是頁,一個頁對應8K連續(xù)的磁盤塊。頁是SQLServer進行內(nèi)/外存數(shù)據(jù)交換的最小單位。每頁的開始部分是96字節(jié)的頁首,用于存儲系統(tǒng)信息,如頁的類型、頁的可用空間量、擁有頁的對象的對象ID等SQLServer頁有以下類型:第46頁,課件共80頁,創(chuàng)作于2023年2月頁類型內(nèi)容數(shù)據(jù)包含數(shù)據(jù)行中除text、ntext

和image

數(shù)據(jù)外的所有數(shù)據(jù)。索引索引項文本/圖像text、ntext

和image數(shù)據(jù)。全局分配映射表、輔助全局分配映射表有關已分配的擴展盤區(qū)的信息。頁的可用空間有關頁上可用空間的信息。索引分配映射表有關表或索引所使用的擴展盤區(qū)的信息。大容量更改映射表參看《聯(lián)機叢書》數(shù)據(jù)庫構架內(nèi)容。差異更改映射表同上第47頁,課件共80頁,創(chuàng)作于2023年2月頁結構圖頁首:文件ID、頁碼、頁的類型、頁的可用空間量、擁有者的ID

、上一頁、下一頁數(shù)據(jù)行1數(shù)據(jù)行2可用空間21行偏移量第48頁,課件共80頁,創(chuàng)作于2023年2月4、頁與表中元組之間關系在SQLServer中,行不能跨頁。在SQLServer2000中,一行內(nèi)最多包含的數(shù)據(jù)量是

8060字節(jié),不包括text、ntext

和image

數(shù)據(jù)。第49頁,課件共80頁,創(chuàng)作于2023年2月4、頁與表中元組之間關系由上述規(guī)定可知:⑴基本表的每行字節(jié)數(shù):≤8,060,既創(chuàng)建表時,各字段的最大占用空間總數(shù)不能超過8060B。⑵一個表每行字節(jié)數(shù)越小,一個頁中存放該表元組的數(shù)量就越多,因此查詢速度就越快第50頁,課件共80頁,創(chuàng)作于2023年2月5、頁組為了減少內(nèi)部操作和增加I/O效率,SQLServer在向表和索引分配存儲空間時是按頁組分配的。一個頁組(擴展盤區(qū))等于8個連續(xù)頁,即64KB。第51頁,課件共80頁,創(chuàng)作于2023年2月5.3索引表中的元組在磁盤中只能有一個物理存儲位置,而用戶每次查找元組時,所要的元組順序(邏輯順序)經(jīng)常與元組的存儲順序(物理順序)不一致,如果每次DBMS都按元組的存儲順序去掃描元組,查找速度可能會很慢。這很像去圖書館借書。書在書庫有個存放順序(物理順序),如果你按這個順序去找書,最好情況是一次就找到了你所要的書,最壞情況是把書庫中的書整個查找一遍,最后才找到你所要的書,總之,平均速度很慢。第52頁,課件共80頁,創(chuàng)作于2023年2月5.3索引那么,圖書館是怎么解決這個問題的呢?圖書館是為每本書建立一些卡片,在卡片中記錄書的基本信息及其所在位置,然后按某種邏輯順序(例如:出版業(yè),作者,書所屬的學科)將卡片放在一起,這便構成了書的各種邏輯順序。他們稱此為“圖書目錄”或“圖書索引”。我們在數(shù)據(jù)庫中也可以使用此方法。第53頁,課件共80頁,創(chuàng)作于2023年2月5.3索引對“基本表”的元組,按某個或某幾個字段值的某種順序(邏輯順序)建立一個目錄文件,此目錄文件按邏輯順序排列元組,并記錄元組的存儲位置。我們把這種目錄文件稱為該表的索引。索引文件結構如圖所示:第54頁,課件共80頁,創(chuàng)作于2023年2月查找鍵值指向元組存儲位置的指針ALTBCXBDKCLJEJB學號姓名…S1BCX…S2ALTS3BDKS4EJBS5ALTS6CLJS7BCX索引元組在文件中的順序索引圖1第55頁,課件共80頁,創(chuàng)作于2023年2月查找鍵值指向元組存儲位置的指針S1S2S3S4S5學號姓名…S1BCX…S2ALTS3BDKS4EJBS5ALT索引元組在文件中的順序索引圖2第56頁,課件共80頁,創(chuàng)作于2023年2月5.3.1索引概念1、查找鍵用于查找元組(記錄)的屬性集。它不一定是關系的主鍵。2、主文件存放關系的磁盤文件。3、元組(記錄)的物理位置、順序元組在存儲文件(主文件)的存儲位置、順序。第57頁,課件共80頁,創(chuàng)作于2023年2月5.3.1索引概念4、索引文件對一個關系的記錄按某個查找鍵值的某種順序建立的文件。索引文件簡稱索引。5、記錄的索引順序(邏輯順序)記錄在索引文件的排列順序。6、索引文件的開銷索引可以提高查詢速度,但索引是需要系統(tǒng)付出代價的,這體現(xiàn)在以下兩個方面:第58頁,課件共80頁,創(chuàng)作于2023年2月5.3.1索引概念⑴空間代價索引需要占用存儲空間。⑵維護代價用戶一但對索引所在的基本表進行插入、刪除操作或?qū)颈碓M的查找鍵值進行修改操作,DBMS就要重新整理(維護)索引。因此我們可以得出以下結論:第59頁,課件共80頁,創(chuàng)作于2023年2月5.3.1索引概念①對一個基本表來說,不是索引建的越多越好。②盡量不要用更新頻繁的屬性集作為查找鍵來建立索引。第60頁,課件共80頁,創(chuàng)作于2023年2月5.3.2索引分類對于一個基本表來說,索引可以分為聚集索引和非聚集索引兩大類。1、聚集索引查找鍵值在索引中順序與在主文件中的物理存儲順序保持一致。2、非聚集索引查找鍵值在索引中順序與在主文件中的物理存儲順序不保持一致。第61頁,課件共80頁,創(chuàng)作于2023年2月

5.3.3SQLServer的索引概念1、聚集索引在聚集索引中,表中各行的物理順序與索引順序保持一致。一個表只能有一個聚集索引。(如圖2)

SQLServer默認地用每個表的主鍵做為查找鍵來為表創(chuàng)建聚集索引。第62頁,課件共80頁,創(chuàng)作于2023年2月5.3.3SQLServer的索引概念2、非聚集索引在非聚集索引中,表中各行的物理順序與索引順序不保持一致。一個表最多只能有249個非聚集索引。(如圖1)第63頁,課件共80頁,創(chuàng)作于2023年2月5.3.3SQLServer的索引概念3、唯一索引唯一索引可以確保索引列不包含重復的值。在多列唯一索引的情況下,該索引可以確保索引列中每個值組合都是唯一的。聚集索引和非聚集索引都可以是唯一的。因此,只要列中的數(shù)據(jù)是唯一的,就可以在同一個表上創(chuàng)建一個唯一的聚集索引和多個唯一的非聚集索引。第64頁,課件共80頁,創(chuàng)作于2023年2月3、唯一索引只有當唯一性是數(shù)據(jù)本身的特征時,指定唯一索引才有意義。如果必須實施唯一性以確保數(shù)據(jù)的完整性,則應在列上創(chuàng)建UNIQUE或PRIMARYKEY約束,而不要創(chuàng)建唯一索引。例如,如果打算經(jīng)常查詢雇員表(主鍵為emp_id)中的社會安全號碼(ssn)列,并希望確保社會安全號碼的唯一性,則在ssn列上創(chuàng)建UNIQUE約束。第65頁,課件共80頁,創(chuàng)作于2023年2月3、唯一索引創(chuàng)建PRIMARYKEY或UNIQUE約束會在表中指定的列上自動創(chuàng)建唯一索引。在同一個列組合上創(chuàng)建唯一索引而不是非唯一索引可為查詢優(yōu)化器提供附加信息;所以最好創(chuàng)建唯一索引。第66頁,課件共80頁,創(chuàng)作于2023年2月5.3.4使用索引的原則1、索引使用的一般原則⑴衡量是否為一個表建立索引的原則①對數(shù)據(jù)量很大,并且查詢頻度高的表要建立索引。②覆蓋的查詢可以提高性能。覆蓋的查詢是指查詢中所有指定的列都包含在同一個索引中。第67頁,課件共80頁,創(chuàng)作于2023年2月⑴衡量是否為一個表建立索引的原則③對小型表進行索引可能不會產(chǎn)生優(yōu)化效果,因為SQLServer在遍歷索引以搜索數(shù)據(jù)時,花費的時間可能會比簡單的表掃描還長。④一個表如果建有大量索引會影響INSERT、UPDATE和DELETE語句的性能,因為在表中的數(shù)據(jù)更改時,所有索引都須進行適當?shù)恼{(diào)整。第68頁,課件共80頁,創(chuàng)作于2023年2月⑴衡量是否為一個表建立索引的原則⑤應使用SQL事件探查器和索引優(yōu)化向?qū)椭治霾樵?,確定要創(chuàng)建的索引。第69頁,課件共80頁,創(chuàng)作于2023年2月1、索引使用的一般原則⑵衡量是否為一個列創(chuàng)建索引的原則應考慮被索引的列是否以及如何用于查詢中。索引對下列查詢很有幫助:①搜索符合特定搜索關鍵字值的行(精確匹配查詢)。精確匹配比較是指查詢使用WHERE語句指定具有給定值的列條目。例如:WHEREemp_id='VPA30890F'第70頁,課件共80頁,創(chuàng)作于2023年2月⑵衡量是否為一個列創(chuàng)建索引的原則②搜索其搜索關鍵字值為范圍值的行(范圍查詢)。范圍查詢是指查詢指定其值介于兩個值之間的任何條目。例如:

WHEREjob_lvlBETWEEN9and12或

WHEREjob_lvl>=9andjob_lvl<=12第71頁,課件共80頁,創(chuàng)作于2023年2月⑵衡量是否為一個列創(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)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論