資源描述:
《索引和全文索引》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第六章索引和全文索引目標(biāo)索引的含義創(chuàng)建和刪除索引全文索引全文檢索索引概念索引是對(duì)數(shù)據(jù)庫表中一個(gè)或多個(gè)列的值進(jìn)行排序的結(jié)構(gòu)索引提供指針以指向存儲(chǔ)在表中指定列的數(shù)據(jù)值,然后根據(jù)指定的排序次序排列這些指針?biāo)饕齼?yōu)點(diǎn)缺點(diǎn)優(yōu)點(diǎn)加快訪問速度加強(qiáng)行的唯一性缺點(diǎn)帶索引的表在數(shù)據(jù)庫中需要更多的存儲(chǔ)空間。操縱數(shù)據(jù)的命令需要更長的處理時(shí)間,因?yàn)?它們需要對(duì)索引進(jìn)行更新。Sysindexes表數(shù)據(jù)庫中的每個(gè)索引和表在表中各占一行該表存儲(chǔ)在每個(gè)數(shù)據(jù)庫中表indid字段表示索引ID1=聚集索引>1=非聚集255=具有text或image數(shù)據(jù)的表?xiàng)l目適合創(chuàng)建索引情況:該列頻繁用于進(jìn)行搜索。該列用于對(duì)數(shù)據(jù)進(jìn)行排序。不適合
2、創(chuàng)建索引情況:列中僅包含幾個(gè)不同的值。表中僅包含幾行。創(chuàng)建索引的指導(dǎo)原則創(chuàng)建索引1-2CREATEINDEX語句用于為給定的表創(chuàng)建索引。該語句通過修改表的物理順序,或者向查詢優(yōu)化器提供表的一個(gè)邏輯順序以提高查詢效率。只有表的所有者能為表創(chuàng)建索引。CREATEINDEX語句的語法為:創(chuàng)建索引2-2CREATE[UNIQUE][CLUSTERED
3、NONCLUSTERED]INDEXindex_nameONtable_name(column_name[,column_name]…)[WITH[PAD_INDEX][[,]FILLFACTOR=x][[,]DROP_EXISTING]]由于每一
4、行都包含一個(gè)唯一的值,唯一索引可以確保實(shí)體完整性。鍵列中的NULL值也算作唯一值。不能在包含重復(fù)數(shù)據(jù)的列上創(chuàng)建唯一索引。在創(chuàng)建唯一索引前必須更新或刪除重復(fù)的數(shù)據(jù)。創(chuàng)建唯一索引的指導(dǎo)原則創(chuàng)建組合索引的指導(dǎo)原則當(dāng)需要頻繁地將兩列或多列作為一個(gè)整體進(jìn)行搜索時(shí),可以創(chuàng)建組合索引。創(chuàng)建組合索引時(shí)先列出唯一性最好的列。組合索引中列的順序和數(shù)量會(huì)影響查詢的性能。創(chuàng)建索引后,可能需要查找有關(guān)索引的信息,例如查看在某個(gè)表上創(chuàng)建的索引的列表或者表中的索引列。系統(tǒng)存儲(chǔ)過程sp_helpindex報(bào)告有關(guān)表的索引的信息。語法:查看索引sp_helpindexSQLServer使用查詢優(yōu)化
5、器選擇執(zhí)行查詢的最佳方式,包括選擇要使用的索引,查詢優(yōu)化器以頁I/O為標(biāo)準(zhǔn),嘗試選出成本最低的方法。SQLServer中可以強(qiáng)制查詢優(yōu)化器選擇某個(gè)特定的索引。制查詢優(yōu)化器選擇某個(gè)特定的索引。語法(INDEX=index_name)SELECT*FROMsales(INDEX=nclindx_ordnum)WHEREord_num='P3087a'在查詢強(qiáng)制使用中索引示例使用DROPINDEX語句可以將不需要的索引從數(shù)據(jù)庫中刪除,以騰出空間DROPINDEX語句不適用于用PRIMARYKEY或UNIQUE約束創(chuàng)建的索引DROPINDEX也不能用于刪除系統(tǒng)表的索引語法:DROPINDEXta
6、ble_name.index_name示例:刪除索引DROPINDEXsales.NCLINDX_ordnum全文搜索SQLServer使用全文索引執(zhí)行全文搜索??梢栽跓o結(jié)構(gòu)文本上建立索引,以便能夠在文本中搜索特定的條目。該功能是通過Microsoft搜索服務(wù)提供的。使用Microsoft搜索服務(wù),可以用語言搜索條件實(shí)現(xiàn)復(fù)雜的搜索。語言搜索可用于搜索單詞或短語、相鄰的幾個(gè)目標(biāo)詞和不同形式的詞語。全文索引跟蹤表中的重要詞語。該索引用于包含索引詞的搜索和高級(jí)搜索選項(xiàng),如短語搜索。全文索引需要一個(gè)包含唯一鍵值的數(shù)據(jù)列。添加、修改或刪除表中數(shù)據(jù)時(shí),必須手動(dòng)更新全文索引。全文索引所有的全文索引都
7、存儲(chǔ)在全文目錄中。全文目錄只能通過Windows和搜索服務(wù)查看。默認(rèn)情況下,一個(gè)數(shù)據(jù)庫的所有全文索引都存放在一個(gè)全文目錄中。如果索引非常大,系統(tǒng)管理員也可以將目錄分割成多個(gè)目錄。全文目錄使用全文索引可以在企業(yè)管理器中使用全文索引向?qū)?chuàng)建全文索引。創(chuàng)建全文索引后,就可以對(duì)創(chuàng)建了該索引的表進(jìn)行全文查詢。全文查詢使用CONTAINS和FREETEXT這兩個(gè)謂詞。使用全文索引--設(shè)置全文搜索屬性--設(shè)置時(shí)間超時(shí)為60秒EXECsp_fulltext_service'connect_timeout',15--前提條件啟動(dòng)MicrosoftSearch服務(wù)啟動(dòng)方法:服務(wù)管理器(圖形界面)c:et
8、startmssearch(命令行)使用全文索引sp_fulltext_database初始化全文索引或者刪除數(shù)據(jù)庫中的所有全文索引--初始化全文索引USEpubsEXECsp_fulltext_database'enable'使用全文索引sp_fulltext_catalog創(chuàng)建或者刪除一個(gè)全文目錄,啟動(dòng)或者停止一個(gè)全文目錄的索引操作--創(chuàng)建一個(gè)全文目錄EXECsp_fulltext_catalog'FT_pubs','creat