資源描述:
《SQL server 索引與視圖》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第7章索引與視圖本章內容n7.1索引概述n7.2索引的操作n7.3視圖概述n7.4視圖的操作n7.5視圖的應用7.1索引概述n索引的基本概念索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序而創(chuàng)建的一種分散存儲結構。7.1索引概述n索引的基本概念索引是對數(shù)據(jù)庫表中一個或多個字段的值進行排序而創(chuàng)建的一種分散存儲結構。建立索引的目的有以下幾點:(1)加速數(shù)據(jù)檢索(2)加速連接、ORDERBY和GROUPBY等操作(3)查詢優(yōu)化器依賴于索引起作用(4)強制實行的惟一性7.1索引概述n索引的分類根據(jù)數(shù)據(jù)庫的功能,在SQLServer2000中可創(chuàng)建3種類型的索引
2、,即惟一性索引、主鍵索引和聚集索引。1.惟一性索引在表中建立惟一性索引時,組成該索引的字段或字段組合在表中具有惟一值,也就是說,對于表中的任何兩行記錄來說,索引鍵的值都是各不相同。2.主鍵索引表中通常有一個字段或一些字段組的合,其值用來惟一標識表中的每一行記錄,該字段或字段組合稱為表的主鍵。7.1索引概述3.聚集索引在聚集索引中,表中各記錄的物理順序與鍵值的邏輯(索引)順序相同。只有在表中建立了一個聚集索引后,數(shù)據(jù)才會按照索引鍵值指定的順序存儲到表中。由于一個表中的數(shù)據(jù)只能按照一種順序來存儲,所以在一個表中只能建立一個聚集索引。7.2索引的操作n創(chuàng)
3、建索引1.使用企業(yè)管理器向導建立索引2.使用企業(yè)管理器直接創(chuàng)建索引7.2索引的操作3.使用Transact-SQL語句創(chuàng)建索引語法格式:CREATE[UNIQUE][CLUSTERED
4、NONCLUSTERED]INDEXindex_nameONtable_name(column_name[ASC
5、DESC],…n)[WITH[PAD_INDEX][[,]FILLFACTOR=fillfactor][[,]IGNORE_DUP_KEY][[,]DROP_EXISTING][[,]STATISTICS_NORECOMPUTE]][ONfilegrou
6、p]7.2索引的操作例7-1按employee表的employee_name列建立非聚集索引。CREATENONCLUSTEREDINDEXname_idxONemployee(employee_name)7.2索引的操作n查看索引1.使用企業(yè)管理器查看索引2.使用系統(tǒng)存儲過程查看索引語法格式:sp_helpindex[@objname]='name'其中[@objname]='name子句為指定當前數(shù)據(jù)庫中的表的名稱。例7-2在查詢分析器中查看表employee的索引。USESalesGOEXECsp_helpindexemployeeGO7.2
7、索引的操作n編輯索引1.使用企業(yè)管理器編輯索引2.使用系統(tǒng)存儲過程更改索引語法格式:sp_renameOldName,NewName[,object_type]例7-3更改employee表中索引employee_index_1名稱為employee_index_id。USESalesGOEXECsp_rename'employee.employee_index_1','employee_index_id','index'7.2索引的操作n刪除索引索引會減慢INSERT、UPDATE和DELETE語句的執(zhí)行速度。如果發(fā)現(xiàn)索引阻礙整體性能或不再需要索
8、引,則可將其刪除。1.使用企業(yè)管理器刪除索引7.2索引的操作2.使用Transact-SQL語句刪除索引語法格式:DROPINDEXtable_name.index_name[,...n]各選項的含義:(1)table_name:索引列所在的表。(2)index_name:要刪除的索引名稱。索引名必須符合標識符的規(guī)則。7.2索引的操作例7-4刪除employee表內名為employee_index_2的索引。USESalesIFEXISTS(SELECTnameFROMsysindexesWHEREname='employee_index_2')D
9、ROPINDEXemployee.employee_index_2GO7.2索引的操作n全文索引前面所講的索引通常是建立在數(shù)值字段或較短的字符串字段上的,一般不會選擇大的字段上作為索引字段。如果需要使用大的字符串字段來檢索數(shù)據(jù),則需要使用SQLServer所提供的全文索引(Full-TextIndex)功能。7.2索引的操作7.2索引的操作n全文索引前面所講的索引通常是建立在數(shù)值字段或較短的字符串字段上的,一般不會選擇大的字段上作為索引字段。如果需要使用大的字符串字段來檢索數(shù)據(jù),則需要使用SQLServer所提供的全文索引(Full-TextInd
10、ex)功能。7.2索引的操作全文管理實施的幾個層次:(1)服務器??梢詫Ψ掌鞣秶哪承傩?如resource_usag