版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、為什么要在運(yùn)輸途中編制索引?這是因?yàn)閯?chuàng)建索引會(huì)顯著提高系統(tǒng)性能。首先,可以創(chuàng)建唯一的索引,以確保數(shù)據(jù)庫(kù)表中每個(gè)數(shù)據(jù)行的唯一性。其次,可以大大加快數(shù)據(jù)檢索速度。這是建立索引的最大原因。第三,可以加快表和表之間的連接。尤其對(duì)實(shí)現(xiàn)數(shù)據(jù)的引用完整性有意義。第四,使用分組和排序子句檢索數(shù)據(jù)時(shí),也可以大大減少查詢(xún)的分組和排序時(shí)間。第五,索引允許您在查詢(xún)期間使用最優(yōu)化隱藏來(lái)提高系統(tǒng)性能。增加索引有這么多優(yōu)點(diǎn),為什么不為表中的每一列編制索引?這種想法固然有合理性,但也有其片面性。索引有很多優(yōu)點(diǎn),但是在表的每一列中添加索引是不明智的。因?yàn)樵黾铀饕灿泻芏嗖焕姆矫妗J紫?,?chuàng)建索引和維護(hù)索引需要很長(zhǎng)時(shí)間,隨著數(shù)據(jù)
2、楊怡的增加,時(shí)間也會(huì)增加。第二,索引必須占用物理空間,除了數(shù)據(jù)表占用數(shù)據(jù)空間外,每個(gè)索引還必須占用特定的物理空間。創(chuàng)建群集索引需要更多的空間。第三,添加、刪除和修改表中的數(shù)據(jù)時(shí),索引也必須保持動(dòng)態(tài),從而降低數(shù)據(jù)維護(hù)速度。索引在數(shù)據(jù)庫(kù)表中某些列的上方設(shè)置。因此,在建立索引時(shí),請(qǐng)仔細(xì)考慮可以建立索引的欄和不能建立索引的欄。通常,您應(yīng)該在以下列中創(chuàng)建索引:在需要經(jīng)常搜索的列中,可以加快搜索速度。在主鍵列中,強(qiáng)制該列的唯一性和配置表中的數(shù)據(jù)排序結(jié)構(gòu)。在連接常用的列中,這些列主要是用于加速連接的外鍵。在應(yīng)根據(jù)范圍搜索的列中創(chuàng)建索引,因?yàn)樗饕雅判?,指定的范圍是連續(xù)的。在需要經(jīng)常排序的列上創(chuàng)建索引。因?yàn)樗?/p>
3、引已經(jīng)排序,所以查詢(xún)可以利用索引的排序縮短查詢(xún)的排序時(shí)間。在常用WHERE子句的列上創(chuàng)建索引,以加快條件判斷速度。同樣,對(duì)于某些列,創(chuàng)建索引后將渡邊杏。通常,不應(yīng)建立索引的這些欄的性質(zhì)包括:首先,對(duì)于查詢(xún)中很少使用或未引用的列,不應(yīng)編制索引。因?yàn)檫@些列很少使用,所以沒(méi)有索引或索引,所以祖懷速度不會(huì)提高。相反,索引增加,系統(tǒng)維護(hù)速度減慢,空間需求增加。第二,即使是很少數(shù)據(jù)值的列,也通過(guò)增加索引渡邊杏。這是因?yàn)檫@些列的值很小,例如人事表中的性別列。這是因?yàn)椴樵?xún)結(jié)果中結(jié)果集中的數(shù)據(jù)行占表中數(shù)據(jù)行的很大一部分。也就是說(shuō),需要從表中檢索的數(shù)據(jù)行的百分比非常大小。增加索引不會(huì)大大加快搜索速度。第三,對(duì)于定
4、義為text的列,將渡邊杏為Image和bit數(shù)據(jù)類(lèi)型建立索引。這是因?yàn)檫@些列的數(shù)據(jù)楊怡相當(dāng)大或值較小。第四,如果修改性能比搜索性能大得多,那么編制索引就會(huì)渡邊杏。因?yàn)樾阅苄薷暮退阉餍阅苄扈疵?。添加索引可以提高搜索性能,但?huì)降低修改性能。減少索引可以提高修復(fù)性能,降低搜索性能。因此,如果修改性能遠(yuǎn)遠(yuǎn)大于搜索性能,則創(chuàng)建索引將渡邊杏。索引的創(chuàng)建方法和索引的特征索引創(chuàng)建方法可以通過(guò)多種茄子方法創(chuàng)建索引,包括直接創(chuàng)建索引和間接創(chuàng)建索引。創(chuàng)建自己的索引。例如,使用CREATE INDEX語(yǔ)句或使用索引創(chuàng)建向?qū)чg接創(chuàng)建索引。例如,當(dāng)您在表格上定義主索引鍵限制條件或唯一索引鍵限制條件時(shí),就會(huì)建立索引。這
5、兩種方法都可以創(chuàng)建索引,但創(chuàng)建索引的具體內(nèi)容不同。使用CREATE INDEX語(yǔ)句或使用索引創(chuàng)建向?qū)?chuàng)建索引。牙齒方法是最基本的索引創(chuàng)建方法,最靈活,可以根據(jù)需要自定義索引。以這種方式創(chuàng)建索引時(shí),可以使用指定數(shù)據(jù)頁(yè)的成熟程度、排序、清理統(tǒng)計(jì)信息等多種選項(xiàng)優(yōu)化索引。使用牙齒方法可以指定索引的類(lèi)型、唯一性和復(fù)合性。也就是說(shuō),您可以在群集索引或非群集索引、一列或兩列以上創(chuàng)建索引。也可以通過(guò)定義主鍵約束或唯一鍵約束間接創(chuàng)建索引。主鍵約束條件是保持?jǐn)?shù)據(jù)完整性的邏輯,用于限制表中的記錄具有相同的主鍵記錄。建立主鍵限制時(shí),會(huì)自動(dòng)建立唯一的叢集索引。邏輯上,主鍵約束是重要的結(jié)構(gòu),但物理結(jié)構(gòu)中與主鍵約束相對(duì)應(yīng)的
6、結(jié)構(gòu)是唯一的群集索引。也就是說(shuō),在物理實(shí)現(xiàn)中,沒(méi)有主鍵約束,只有唯一的群集索引。同樣,在創(chuàng)建唯一關(guān)鍵字約束條件時(shí),也會(huì)創(chuàng)建唯一非群集索引(即索引)。因此,使用約束創(chuàng)建索引時(shí),默認(rèn)情況下將確定索引的類(lèi)型和屬性,從而減少了用戶(hù)可以自定義的空間。定義主鍵或唯一關(guān)鍵字約束條件時(shí),如果表中已存在使用CREATE INDEX語(yǔ)句創(chuàng)建的標(biāo)準(zhǔn)索引,則由主鍵約束條件或唯一關(guān)鍵字約束條件創(chuàng)建的索引將復(fù)蓋以前創(chuàng)建的標(biāo)準(zhǔn)索引。換句話(huà)說(shuō),使用主鍵約束條件或唯一鍵約束條件創(chuàng)建的索引優(yōu)先于使用CREATE INDEX語(yǔ)句創(chuàng)建的索引。索引的特征索引有兩個(gè)茄子特征:唯一索引和復(fù)合索引。唯一索引確保索引列中的所有數(shù)據(jù)都是唯一的,
7、不包含重復(fù)數(shù)據(jù)。如果表已經(jīng)具有主鍵約束條件或唯一關(guān)鍵字約束條件,SQL Server會(huì)在創(chuàng)建或修改表時(shí)自動(dòng)創(chuàng)建唯一索引。但是,如果需要確保唯一性,則應(yīng)創(chuàng)建主鍵約束或唯一鍵約束,而不是創(chuàng)建唯一索引。創(chuàng)建唯一索引時(shí),請(qǐng)仔細(xì)考慮在表上創(chuàng)建主鍵約束條件或唯一鍵約束條件時(shí)SQL Server自動(dòng)創(chuàng)建唯一索引的規(guī)則。如果表格已包含資料,則建立索引時(shí),SQL服務(wù)器檢查清單中已存在資料的重復(fù)度。每次使用插入語(yǔ)句插入數(shù)據(jù)或使用修改語(yǔ)句修改數(shù)據(jù)時(shí),SQL server都會(huì)檢查數(shù)據(jù)是否重復(fù)。如果存在重復(fù)值,SQL server將取消語(yǔ)句執(zhí)行并返回錯(cuò)誤消息。確保表中的每個(gè)數(shù)據(jù)行都有唯一的值,以便唯一標(biāo)識(shí)每個(gè)實(shí)體。只能
8、在確保對(duì)象完整性的列中創(chuàng)建唯一索引。例如,不能在個(gè)人表的“名稱(chēng)”列中創(chuàng)建唯一索引。這是因?yàn)槿藗兛梢杂邢嗤拿?。?fù)合索引是在兩列或更多列中生成的索引。搜索時(shí),如果有兩列或更多列用作鍵值,最好在這些列上創(chuàng)建復(fù)合索引。生成復(fù)合索引時(shí),最多可以將16列合并到單個(gè)復(fù)合索引中,構(gòu)成復(fù)合索引的列的總長(zhǎng)度不能超過(guò)900字節(jié)。也就是說(shuō),復(fù)合列的長(zhǎng)度太長(zhǎng),渡邊杏。在組合索引中,所有列必須來(lái)自同一表,不能在表之間創(chuàng)建組合列。在復(fù)雜索引中,列排序順序非常重要,因此,要仔細(xì)排序列順序,原則上必須首先定義最唯一的列。例如,(COL1,COL2)的索引與(COL2,COL1)的索引不同。這是因?yàn)閮蓚€(gè)索引的列順序不同,要使
9、查詢(xún)優(yōu)化程序使用復(fù)合索引,查詢(xún)語(yǔ)句中的WHERE子句必須引用復(fù)合索引的第一列。當(dāng)表包含多個(gè)鍵列時(shí),復(fù)合索引很有用。使用復(fù)合索引可以提高查詢(xún)性能,并減少在一個(gè)表中生成的索引數(shù)。-索引的類(lèi)型根據(jù)索引的順序是否與數(shù)據(jù)表中的物理順序相同,可以將索引分為兩種茄子類(lèi)型。一個(gè)是聚簇索引,數(shù)據(jù)表的物理順序與索引順序相同;另一個(gè)是非聚簇索引,數(shù)據(jù)表的物理順序與索引順序不同。群集索引的體系結(jié)構(gòu)索引的結(jié)構(gòu)類(lèi)似于樹(shù)結(jié)構(gòu),樹(shù)的頂部稱(chēng)為葉級(jí)別,樹(shù)的其他部分稱(chēng)為非葉級(jí)別,樹(shù)的根位于非葉級(jí)別。同樣,在聚集索引中,聚集索引的葉級(jí)別和非葉級(jí)別構(gòu)成樹(shù)結(jié)構(gòu),索引的最低級(jí)別是葉級(jí)別。在叢集索引中,具有表格資料的資料頁(yè)面為分葉層次,分葉
10、層次上方的索引頁(yè)面為非分葉層次,具有索引資料的索引頁(yè)面為非分葉層次。在群集索引中,數(shù)據(jù)值的順序始終按升序排序。必須在表中經(jīng)常檢索的列或按順序訪(fǎng)問(wèn)的列上創(chuàng)建集群索引。建立叢集索引時(shí),請(qǐng)考慮這些因素。每個(gè)表只能有一個(gè)聚集索引,因?yàn)楸碇械臄?shù)據(jù)只能有一個(gè)物理順序。表行的物理順序與索引行的物理順序相同。建立非叢集索引之前,請(qǐng)先建立叢集索引。這是因?yàn)榫奂饕牧吮硇械奈锢眄樞颍瑪?shù)據(jù)行按特定順序排序,并且自動(dòng)保留了牙齒順序。鍵值的唯一性可以使用UNIQUE關(guān)鍵字明確維護(hù),也可以由系統(tǒng)本身使用且用戶(hù)無(wú)法訪(fǎng)問(wèn)的內(nèi)部唯一標(biāo)識(shí)符明確維護(hù)。聚集索引的平均大小約為數(shù)據(jù)表的5%,但是實(shí)際聚集索引的大小通常取決于索引列的
11、大小。在索引創(chuàng)建過(guò)程中,SQL Server臨時(shí)使用當(dāng)前數(shù)據(jù)庫(kù)的磁盤(pán)空間,創(chuàng)建群集索引時(shí)需要表空間大小的1.2倍,因此,必須確保有足夠的空間創(chuàng)建群集索引。系統(tǒng)訪(fǎng)問(wèn)表中的數(shù)據(jù)時(shí),首先確定該列是否具有索引,以及該索引對(duì)要檢索的數(shù)據(jù)是否有意義。如果索引存在并且索引非常有意義,系統(tǒng)將使用該索引訪(fǎng)問(wèn)表中的記錄。系統(tǒng)從索引開(kāi)始瀏覽數(shù)據(jù),索引導(dǎo)航從樹(shù)索引的根開(kāi)始。在根中,搜索值與每個(gè)關(guān)鍵字值進(jìn)行比較,以確定搜索值是否大于或等于關(guān)鍵字值。牙齒步驟重復(fù),直到出現(xiàn)大于搜索值的鍵值,或者搜索值大于或等于索引頁(yè)上的所有鍵值。非群集索引的體系結(jié)構(gòu)非簇索引的結(jié)構(gòu)與簇索引的結(jié)構(gòu)非常相似,但存在明顯的差異。在非群集索引中,葉
12、級(jí)別僅包含關(guān)鍵字值,不包含數(shù)據(jù)行。非群集索引表示行的邏輯順序。非集群索引有兩種茄子體系結(jié)構(gòu):一種在沒(méi)有集群索引的表上創(chuàng)建非集群索引,另一種在具有集群索引的表上創(chuàng)建非集群索引。如果數(shù)據(jù)表沒(méi)有聚集索引,則牙齒數(shù)據(jù)表也稱(chēng)為數(shù)據(jù)堆。如果在數(shù)據(jù)堆頂部創(chuàng)建了非群集索引,請(qǐng)使用索引頁(yè)上的行標(biāo)識(shí)符指向數(shù)據(jù)頁(yè)上的記錄。行標(biāo)識(shí)符存儲(chǔ)有關(guān)數(shù)據(jù)所在位置的信息。使用索引分配圖表(IAM)頁(yè)維護(hù)數(shù)據(jù)堆。IAM頁(yè)包含有關(guān)數(shù)據(jù)堆所在集群的存儲(chǔ)信息。在系統(tǒng)表sysindexes中,存在指向與數(shù)據(jù)堆相關(guān)的第一個(gè)IAM頁(yè)的指針。系統(tǒng)使用IAM頁(yè)瀏覽和查找數(shù)據(jù)堆中插入新唱片行的空間。牙齒數(shù)據(jù)頁(yè)面和牙齒數(shù)據(jù)頁(yè)面上的記錄沒(méi)有順序,也沒(méi)有
13、鏈接在一起。這些數(shù)據(jù)頁(yè)面之間的唯一連接是寫(xiě)入IAM的順序。如果在數(shù)據(jù)堆中創(chuàng)建了非集群索引,則葉級(jí)別包含指向數(shù)據(jù)頁(yè)的行標(biāo)識(shí)符。行標(biāo)識(shí)符指定唱片行的邏輯順序,由檔案ID、頁(yè)碼和行ID組成。這些行的標(biāo)識(shí)符保持唯一性。非叢集索引的分葉層次頁(yè)面順序與表格中資料的實(shí)體順序不同。這些關(guān)鍵點(diǎn)值在葉級(jí)別保持為升序。在具有聚集索引的表中創(chuàng)建非聚集索引時(shí),系統(tǒng)使用指向索引頁(yè)上的聚集索引的聚集索引鍵。群集密鑰存儲(chǔ)數(shù)據(jù)的位置信息。如果表格具有叢集索引,則非叢集索引的分葉層次包含對(duì)應(yīng)至叢集索引鍵(而非實(shí)體資料列id)的叢集索引鍵值。系統(tǒng)訪(fǎng)問(wèn)具有非集群索引的表中的數(shù)據(jù)時(shí),如果這些非集群索引是在集群索引中創(chuàng)建的,則首先在非集
14、群索引中查找指向集群索引的指針,然后使用集群索引查找數(shù)據(jù)。需要以多種茄子方法檢索數(shù)據(jù)時(shí),非群集索引很有用。創(chuàng)建非集群索引時(shí),請(qǐng)考慮以下情況:默認(rèn)情況下創(chuàng)建的索引是非群集索引。您可以在每個(gè)表格上建立249個(gè)或更少的非叢集索引。最多只能創(chuàng)建一個(gè)聚集索引。系統(tǒng)訪(fǎng)問(wèn)表中數(shù)據(jù)的方式通常,系統(tǒng)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù),可以使用兩種茄子方法:表掃描和索引查找。第一種方法是表掃描。也就是說(shuō),將指針?lè)旁诎碇斜眍^數(shù)據(jù)的數(shù)據(jù)頁(yè)上,然后按照數(shù)據(jù)頁(yè)的排序順序逐頁(yè)向前或向后掃描表數(shù)據(jù)占用的所有數(shù)據(jù)頁(yè),直到掃描完表中的所有記錄。掃描時(shí),如果找到符合祖懷標(biāo)準(zhǔn)的記錄,請(qǐng)選擇該記錄。最后,顯示與查詢(xún)語(yǔ)句標(biāo)準(zhǔn)匹配的所有記錄。第二種方
15、法是使用索引查詢(xún)。索引是一種樹(shù)結(jié)構(gòu),用于存儲(chǔ)包含帶有關(guān)鍵字的記錄的數(shù)據(jù)頁(yè)的關(guān)鍵字和指針。使用“查找索引”時(shí),系統(tǒng)將沿著索引的樹(shù)結(jié)構(gòu),根據(jù)索引中的關(guān)鍵字和指針查找與查詢(xún)標(biāo)準(zhǔn)匹配的記錄。最后,顯示與查詢(xún)語(yǔ)句標(biāo)準(zhǔn)匹配的所有記錄。SQL Server存取資料庫(kù)中的資料時(shí),SQL Server會(huì)確定表格是否具有索引。如果沒(méi)有索引,SQL Server將使用表掃描方法訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。查詢(xún)處理器根據(jù)分布式統(tǒng)計(jì)信息為相應(yīng)的查詢(xún)語(yǔ)句生成優(yōu)化的執(zhí)行計(jì)劃,以提高數(shù)據(jù)訪(fǎng)問(wèn)效率并確定是否使用表掃描或索引。索引的選項(xiàng)建立索引時(shí),您可以指定最佳化索引效能的選項(xiàng)。這些選項(xiàng)包括FILLFACTOR選項(xiàng)、PAD_INDEX選
16、項(xiàng)和SORTED_DATA_REORG選項(xiàng)。FILLFACTOR選項(xiàng)可讓您最佳化插入和修改陳述式的效能。索引頁(yè)已滿(mǎn)時(shí),SQL Server需要花費(fèi)時(shí)間對(duì)頁(yè)進(jìn)行分區(qū),以便為新唱片行騰出空間。使用FILLFACTOR選項(xiàng),可以為葉級(jí)索引頁(yè)分配一定比例的自由空間,從而減少頁(yè)面分解時(shí)間。在包含數(shù)據(jù)的表中創(chuàng)建索引時(shí),可以使用FILLFACTOR選項(xiàng)指定每個(gè)葉索引節(jié)點(diǎn)的填充百分比。默認(rèn)值為0。牙齒值等于100。創(chuàng)建索引時(shí),內(nèi)部索引節(jié)點(diǎn)始終有空間容納一個(gè)或兩個(gè)表中的記錄。在不包含數(shù)據(jù)的表中創(chuàng)建索引時(shí),請(qǐng)不要使用牙齒選項(xiàng)。因?yàn)樵谘例X情況下,牙齒選項(xiàng)沒(méi)有實(shí)際意義。此外,牙齒選項(xiàng)的數(shù)值在創(chuàng)建時(shí)指定后不會(huì)動(dòng)態(tài)維護(hù),因此,只有在從包含數(shù)據(jù)的表創(chuàng)建索引時(shí)才應(yīng)使用。PAD_INDEX選項(xiàng)還對(duì)內(nèi)部索引節(jié)點(diǎn)使用FILLFACTOR選項(xiàng)的數(shù)值,以使內(nèi)部索引節(jié)點(diǎn)的填充與葉級(jí)索引的節(jié)點(diǎn)相同。如果未指定FILLFACTOR選項(xiàng),則單獨(dú)指定PAD_INDEX選項(xiàng)沒(méi)有意義。這是因?yàn)镻AD_INDEX選項(xiàng)的值是由FILLFACTOR選項(xiàng)的值決定的。建立叢集索引時(shí),SORTED_DATA_REORG選項(xiàng)會(huì)清除排序,以減少建立叢集索引所需的時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年大學(xué)市政工程施工(市政施工管理)試題及答案
- 2025年大學(xué)教育學(xué)(學(xué)前心理學(xué))試題及答案
- 2025年高職生態(tài)保護(hù)技術(shù)(生態(tài)修復(fù)方案)試題及答案
- 2025年大學(xué)自動(dòng)化(PLC控制)試題及答案
- 2026年藥店銷(xiāo)售(客戶(hù)接待)試題及答案
- 2025年高職行政管理(行政管理)試題及答案
- 中國(guó)銀行培訓(xùn)課件
- 中國(guó)知名大學(xué)介紹
- 養(yǎng)老院老人用藥管理制度
- 養(yǎng)老院老人投訴處理制度
- 2025至2030中國(guó)異丙醇(IPA)行業(yè)市場(chǎng)占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 2025秋季幼兒園工作計(jì)劃
- 譯林版五年級(jí)上冊(cè)英語(yǔ)單詞
- 鍋爐操作人員培訓(xùn)
- 零工市場(chǎng)(驛站)運(yùn)營(yíng)管理 投標(biāo)方案(技術(shù)方案)
- 幼兒學(xué)前班數(shù)學(xué)寒假作業(yè)25
- 保障性住房智能管理系統(tǒng)解決方案
- 高中物理會(huì)考知識(shí)點(diǎn)及高中物理會(huì)考知識(shí)點(diǎn)總結(jié)
- 福特F-150猛禽說(shuō)明書(shū)
- 上海布邦流體過(guò)濾產(chǎn)品知識(shí)課件
- 舒城縣2023-2024學(xué)年四年級(jí)數(shù)學(xué)第一學(xué)期期末達(dá)標(biāo)檢測(cè)模擬試題含答案
評(píng)論
0/150
提交評(píng)論