第9章 視圖及索引_第1頁
第9章 視圖及索引_第2頁
第9章 視圖及索引_第3頁
第9章 視圖及索引_第4頁
第9章 視圖及索引_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第9 9章章 視圖與索引視圖與索引n提高數(shù)據(jù)存取的性能及操作速度提高數(shù)據(jù)存取的性能及操作速度n加快查詢數(shù)據(jù)的效率加快查詢數(shù)據(jù)的效率視圖與索引視圖與索引n概念概念n創(chuàng)建創(chuàng)建n管理管理9.1 9.1 視圖的基礎(chǔ)知識視圖的基礎(chǔ)知識 n虛擬表虛擬表n給查詢語句指定一個名字給查詢語句指定一個名字create view rtnTimeasselect UserTb.UserName,book.BookName,Lending.LendDate,Lending.RtnDate from Lending,book,UserTb,UserCatewhere usertb.UserId=Lending.User

2、Idand Lending.BookId=Book.BookIdand UserTb.CateName=UserCate.CateNameand DATEDIFF(DD,LendDate,GETDATE()UserCate.BorrTimeand RtnDate is nullselect * from rtnTime9.1.1 9.1.1 視圖的概念視圖的概念n視圖是基于一個或多個數(shù)據(jù)表的動態(tài)數(shù)據(jù)集合,是視圖是基于一個或多個數(shù)據(jù)表的動態(tài)數(shù)據(jù)集合,是一個邏輯上的虛擬數(shù)據(jù)表。一個邏輯上的虛擬數(shù)據(jù)表。動態(tài):被引用時生成。動態(tài):被引用時生成。9.1.2 9.1.2 視圖的作用視圖的作用視圖的作用:視

3、圖的作用:n簡化用戶操作簡化用戶操作n簡化用戶權(quán)限管理簡化用戶權(quán)限管理n安全保護功能安全保護功能n重新組織數(shù)據(jù)重新組織數(shù)據(jù)9.1.3 9.1.3 視圖的類型視圖的類型 n標準視圖標準視圖實現(xiàn)對數(shù)據(jù)庫的查詢、修改和刪除等基本操作。實現(xiàn)對數(shù)據(jù)庫的查詢、修改和刪除等基本操作。2. 2. 索引視圖索引視圖 索引視圖適于聚合許多行的查詢。但不太適合于經(jīng)常更新的基本數(shù)據(jù)集索引視圖適于聚合許多行的查詢。但不太適合于經(jīng)常更新的基本數(shù)據(jù)集3. 3. 分區(qū)視圖分區(qū)視圖 分區(qū)視圖在一臺或多臺服務(wù)器間水平連接一組成員表中的分區(qū)數(shù)據(jù)。分區(qū)視圖在一臺或多臺服務(wù)器間水平連接一組成員表中的分區(qū)數(shù)據(jù)。 9.2 9.2 創(chuàng)建視圖

4、創(chuàng)建視圖 n使用使用SQL Server Management StudioSQL Server Management Studio工具創(chuàng)建視圖;工具創(chuàng)建視圖;n使用使用Transact-SQLTransact-SQL語句中的語句中的CREAT VIEWCREAT VIEW修改視圖。修改視圖。9.2.2 9.2.2 使用使用Transact-SQLTransact-SQL語句創(chuàng)建視圖語句創(chuàng)建視圖語法:語法:CREATE VIEW CREATE VIEW schema_name schema_name view_nameview_name ( column ( column ,n ) n ) W

5、ITH , WITH ,n n ASAS select_statement select_statement WITH CHECK OPTION WITH CHECK OPTION 其中:其中:schema_nameschema_name:視圖所屬框架的名稱。:視圖所屬框架的名稱。view_nameview_name:視圖的名稱。視圖名稱必須符合標識符的命名規(guī)則。:視圖的名稱。視圖名稱必須符合標識符的命名規(guī)則。columncolumn:視圖中的列使用的名稱。:視圖中的列使用的名稱。如果未指定如果未指定columncolumn,則視圖列將獲得與,則視圖列將獲得與SELECTSELECT語句中的列

6、相同的名稱語句中的列相同的名稱。 select_statementselect_statement:定義視圖的:定義視圖的SELECTSELECT語句。該語句可以使用多個表和其語句。該語句可以使用多個表和其 他視圖。需要相應(yīng)的權(quán)限才能在已創(chuàng)建視圖的他視圖。需要相應(yīng)的權(quán)限才能在已創(chuàng)建視圖的SELECTSELECT子句引用的對象中選子句引用的對象中選 擇。擇。 WITH CHECK OPTIONWITH CHECK OPTION:強制針對視圖執(zhí)行的所有數(shù)據(jù)修改語句都必須符合:強制針對視圖執(zhí)行的所有數(shù)據(jù)修改語句都必須符合 在在select_statementselect_statement中設(shè)置的條

7、件。通過視圖修改行時,中設(shè)置的條件。通過視圖修改行時,WITH CHECK WITH CHECK OPTION OPTION可確保提交修改后,仍可通過視圖看到數(shù)據(jù)??纱_保提交修改后,仍可通過視圖看到數(shù)據(jù)。 包括:包括:ENCRYPTIONENCRYPTION,對,對CREATE VIEWCREATE VIEW語句文本的項進行加密;語句文本的項進行加密;SCHEMABIONDINGSCHEMABIONDING,將視圖綁定到基礎(chǔ)表的架構(gòu);,將視圖綁定到基礎(chǔ)表的架構(gòu);VIEW_METADATAVIEW_METADATA,指定為引用視圖的查詢請求瀏覽模式的元數(shù)據(jù)時,指定為引用視圖的查詢請求瀏覽模式的元

8、數(shù)據(jù)時,SQL SQL ServerServer實例將向?qū)嵗龑⑾駾B-LibraryDB-Library、ODBCODBC和和OLE DB APIOLE DB API返回有關(guān)視圖的元數(shù)據(jù)返回有關(guān)視圖的元數(shù)據(jù)信息。信息。這里需要注意的是:這里需要注意的是: CREATE VIEWCREATE VIEW必須是查詢批處理中的第一句必須是查詢批處理中的第一句。 視圖定義中的視圖定義中的SELECTSELECT子句不能包含下列內(nèi)容:子句不能包含下列內(nèi)容:1) 1) COMPUTECOMPUTE或或COMPUTE BYCOMPUTE BY子句。子句。2) 2) ORDER BYORDER BY子句子句,除

9、非在除非在SELECTSELECT語句的選擇列表中也有一個語句的選擇列表中也有一個TOPTOP子句。子句。3) 3) INTOINTO關(guān)鍵字。關(guān)鍵字。4) 4) OPTIONOPTION子句。子句。5) 5) 引用臨時表或表變量。引用臨時表或表變量。 【 例例 9 - 19 - 1 】 創(chuàng) 建 完 整 的 教 師 類 型 的 讀 者 借 閱 信 息 視 圖創(chuàng) 建 完 整 的 教 師 類 型 的 讀 者 借 閱 信 息 視 圖“teac_lending_view”,并禁止用戶查看視圖的定義語句。并禁止用戶查看視圖的定義語句。9.3 9.3 修改、刪除和重命名視圖修改、刪除和重命名視圖 9.3.1

10、 9.3.1 修改視圖修改視圖n使用使用SQL Server Management StudioSQL Server Management Studio工具修改視圖定義工具修改視圖定義 2. 2. 使用使用ALTER VIEWALTER VIEW語句修改視圖定義語句修改視圖定義語法格式如下:語法格式如下:ALTER VIEW ALTER VIEW schema_name schema_name view_nameview_name ( column , ( column ,n ) n ) WITH , WITH ,n n AS select_statementAS select_stateme

11、nt WITH CHECK OPTION WITH CHECK OPTION 【例例9-29-2】修改修改【例例9-19-1】所創(chuàng)建的所創(chuàng)建的“teac_lending_view”視圖視圖,使其顯示計算機系教師讀者的借閱情況,且不需要顯示讀者的性別、注冊,使其顯示計算機系教師讀者的借閱情況,且不需要顯示讀者的性別、注冊日期。日期。9.3.2 9.3.2 刪除視圖刪除視圖1. 1. 使用使用SQL Server Management StudioSQL Server Management Studio工具刪除視圖工具刪除視圖 2.2.使用使用Transact-SQLTransact-SQL語句的

12、語句的DROP VIEWDROP VIEW命令刪除視圖,其語法形式如下:命令刪除視圖,其語法形式如下: DROP VIEW schema_name view_name ,n DROP VIEW schema_name view_name ,n 【例例9-39-3】刪除視圖刪除視圖book_viewbook_view DROP VIEW book_view DROP VIEW book_view9.3.3 9.3.3 重命名視圖重命名視圖n使用使用Management StudioManagement Studion使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_renamesp_rename其語法形式如

13、下:其語法形式如下: sp_rename object_name, new_namesp_rename object_name, new_name其中:其中:object_nameobject_name:當(dāng)前的視圖名:當(dāng)前的視圖名new_namenew_name:指定對象的新名稱。:指定對象的新名稱。9.3.3 9.3.3 重命名視圖重命名視圖【例例9-49-4】將視圖將視圖“計算機系讀者借閱情況計算機系讀者借閱情況”重命名為重命名為“計算機系教師借閱計算機系教師借閱情況情況”實現(xiàn)代碼如下:實現(xiàn)代碼如下: EXEC sp_rename EXEC sp_rename 計算機系讀者借閱情況計算機系

14、讀者借閱情況,計算機系教師借閱情況計算機系教師借閱情況注:注:nsp_rename sp_rename 可以對表、視圖重命名可以對表、視圖重命名nsp_renamedb 可以對數(shù)據(jù)庫重命名重命名nalter database oldName MODIFY name =newNamealter database oldName MODIFY name =newName9.4 使用視圖操作數(shù)據(jù)表可以通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行可以通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行添加、修改和刪除添加、修改和刪除的操作。的操作。使用視圖對數(shù)據(jù)表的記錄進行操作時,所創(chuàng)建的視圖必須滿足如下的要求:使用視圖對數(shù)據(jù)表的記錄進行操作時

15、,所創(chuàng)建的視圖必須滿足如下的要求:1) 1) 每次只能修改一張基本表的數(shù)據(jù)每次只能修改一張基本表的數(shù)據(jù)。2) 2) 視圖的字段中視圖的字段中不能包含計算列不能包含計算列,計算列是不能更新的。,計算列是不能更新的。3) 3) 如果在創(chuàng)建視圖時指定了如果在創(chuàng)建視圖時指定了WITH CHECK OPTIONWITH CHECK OPTION選項,那么使用視圖修改選項,那么使用視圖修改 數(shù)據(jù)庫時,數(shù)據(jù)庫時,必須保證修改后的數(shù)據(jù)滿足視圖定義的要求必須保證修改后的數(shù)據(jù)滿足視圖定義的要求。4) 4) 如果在視圖定義中使用了如果在視圖定義中使用了GROUP BYGROUP BY、UNIONUNION、DIST

16、INCTDISTINCT或或TOPTOP子句,則視子句,則視 圖圖不允許更新不允許更新。5) 5) 如果在視圖定義中有嵌套查詢,并且內(nèi)層查詢的如果在視圖定義中有嵌套查詢,并且內(nèi)層查詢的FROMFROM子句中涉及的表也子句中涉及的表也 是導(dǎo)出該視圖的基本表,則視圖不允許更新。是導(dǎo)出該視圖的基本表,則視圖不允許更新。通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行添加添加n1)用戶有向數(shù)據(jù)表插入數(shù)據(jù)的權(quán)限;n2)視圖只引用表中部分字段,插入數(shù)據(jù)時只能是明確其應(yīng)用的字段取值;n3)未引用的字段應(yīng)具備下列條件之一:允許空值;設(shè)有默認值;是標識字段;數(shù)據(jù)類型是timestamp或unique ide

17、ntifer;n4)視圖不能包含多個字段的組合n5)視圖不能包含使用統(tǒng)計函數(shù)的結(jié)果;n6)視圖不能包含DISTINCT或GROUP BY子句;n7)定義視圖使用WITH CHECK OPTION,則插入數(shù)據(jù)應(yīng)符合相應(yīng)條件;n8)若視圖引用多個表,一條INSERT語句只能同一個基表表中數(shù)據(jù);通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行更新更新n使用視圖可以更新基表數(shù)據(jù)記錄注:使用INSERT時的限制同樣適用通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行刪除通過視圖對數(shù)據(jù)表的數(shù)據(jù)進行刪除n使用視圖刪除記錄,可以刪除任何基表中的記錄。注意: n必須指定在視圖中定義過的字段來刪除記錄n視圖引用多個表時,無法用DE

18、LETE命令刪除數(shù)據(jù)9.5 9.5 查看視圖信息查看視圖信息 執(zhí)行系統(tǒng)存儲過程來查看視圖信息執(zhí)行系統(tǒng)存儲過程來查看視圖信息 。1.1.用系統(tǒng)存儲過程用系統(tǒng)存儲過程sp_helpsp_help查看視圖的基本信息,無論是否被加密查看視圖的基本信息,無論是否被加密 2. 2. 用用sp_helptextsp_helptext查看視圖的定義信息,沒有被加密時可用。查看視圖的定義信息,沒有被加密時可用?!纠?-59-5】查看視圖查看視圖“book_view”book_view”的定義信息的定義信息【例例9-69-6】查看視圖查看視圖“teac_lending_view”的定義信息的定義信息 3.3.用

19、系統(tǒng)存儲過程用系統(tǒng)存儲過程sp_dependssp_depends查看視圖與其他對象間的依賴關(guān)系查看視圖與其他對象間的依賴關(guān)系【例例9-79-7】查看視圖查看視圖“teac_lending_view”的依賴關(guān)系的依賴關(guān)系9.6 9.6 索引概述索引概述 在日常生活中,我們經(jīng)常會用到索引,如圖書的目錄、在日常生活中,我們經(jīng)常會用到索引,如圖書的目錄、詞典的索引等。詞典的索引等。利用索引,我們可以很快地找到需要找的東利用索引,我們可以很快地找到需要找的東西。西。 在對數(shù)據(jù)庫進行操作時,用到索引可以提高數(shù)據(jù)存取的在對數(shù)據(jù)庫進行操作時,用到索引可以提高數(shù)據(jù)存取的性能及操作的速度,從而使用戶能夠較快地查

20、詢并準確地得性能及操作的速度,從而使用戶能夠較快地查詢并準確地得到希望的數(shù)據(jù)。到希望的數(shù)據(jù)。n索引的概念索引的概念n類型類型n創(chuàng)建和管理索引創(chuàng)建和管理索引9.6.1 9.6.1 什么是索引什么是索引索引是一個重要的數(shù)據(jù)庫對象,它類似于圖書中的目錄。索引是一個重要的數(shù)據(jù)庫對象,它類似于圖書中的目錄。索引使數(shù)據(jù)庫不用對整個表進行掃描就能找到所需的數(shù)據(jù)。索引使數(shù)據(jù)庫不用對整個表進行掃描就能找到所需的數(shù)據(jù)。(1) (1) 使用索引的優(yōu)點使用索引的優(yōu)點 1) 1) 創(chuàng)建唯一索引,可以保證表中的數(shù)據(jù)記錄不重復(fù)。創(chuàng)建唯一索引,可以保證表中的數(shù)據(jù)記錄不重復(fù)。2) 2) 加快數(shù)據(jù)檢索速度。加快數(shù)據(jù)檢索速度。3)

21、 3) 加速表與表之間的連接。加速表與表之間的連接。4) 4) 在使用在使用ORDER BYORDER BY和和GROUP BYGROUP BY子句中進行檢索數(shù)據(jù)時,可以顯著減少查詢子句中進行檢索數(shù)據(jù)時,可以顯著減少查詢 中分組和排序的時間。中分組和排序的時間。5) 5) 可以在檢索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,從而提高系統(tǒng)的性能??梢栽跈z索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,從而提高系統(tǒng)的性能。9.6 9.6 索引概述索引概述(2) (2) 創(chuàng)建索引的原則創(chuàng)建索引的原則1) 1) 主鍵列上一定要建立索引。主鍵列上一定要建立索引。2) 2) 在連接中頻繁使用的列,比如外鍵。在連接中頻繁使用的列,比如外鍵

22、。3) 3) 在頻繁查詢的列上最好建立索引。在頻繁查詢的列上最好建立索引。4) 4) 對于對于texttext、imageimage和和bitbit數(shù)據(jù)類型的列不要建立索引。數(shù)據(jù)類型的列不要建立索引。5) 5) 對于具有重復(fù)值較多的列不要建立索引。對于具有重復(fù)值較多的列不要建立索引。(3) (3) 索引并非越多越好索引并非越多越好 1) 1) 創(chuàng)建索引要花費時間并占用存儲空間,聚集索引更嚴重。創(chuàng)建索引要花費時間并占用存儲空間,聚集索引更嚴重。2) 2) 維護索引也要花費時間。維護索引也要花費時間。3) 3) 當(dāng)對表進行修改時,需要維護索引,插入、更新和刪除的數(shù)據(jù)越多,當(dāng)對表進行修改時,需要維護

23、索引,插入、更新和刪除的數(shù)據(jù)越多, 維護的開銷就越大。維護的開銷就越大。9.6.2 9.6.2 索引類型索引類型主要分為兩類:主要分為兩類:n聚集索引聚集索引n非聚集索引非聚集索引唯一索引唯一索引包含列索引包含列索引索引視圖索引視圖全文索引全文索引空間索引空間索引篩選索引篩選索引XMLXML索引索引9.6.2 9.6.2 索引類型索引類型1. 1. 聚集索引聚集索引指表中數(shù)據(jù)行的指表中數(shù)據(jù)行的物理存儲順序物理存儲順序與與索引順序索引順序完全相同。完全相同。每個表只能創(chuàng)建一個聚集索引。每個表只能創(chuàng)建一個聚集索引。 2. 2. 非聚集索引非聚集索引非聚集索引具有與表的數(shù)據(jù)完全分離的結(jié)構(gòu)。非聚集索引

24、具有與表的數(shù)據(jù)完全分離的結(jié)構(gòu)。表中的每一個列上都可以有自己的非聚集索引表中的每一個列上都可以有自己的非聚集索引創(chuàng)建的非聚集索引最多為創(chuàng)建的非聚集索引最多為249249個個9.7 9.7 創(chuàng)建索引創(chuàng)建索引n只有表的只有表的所有者所有者才能在表上創(chuàng)建索引才能在表上創(chuàng)建索引n創(chuàng)建創(chuàng)建唯一索引唯一索引時,應(yīng)該保證創(chuàng)建索引的列不包含重復(fù)的數(shù)據(jù),并且沒有時,應(yīng)該保證創(chuàng)建索引的列不包含重復(fù)的數(shù)據(jù),并且沒有兩個或更多的空值。兩個或更多的空值。 可以在建表的時候創(chuàng)建索引可以在建表的時候創(chuàng)建索引也可以對已存在的表創(chuàng)建索引。也可以對已存在的表創(chuàng)建索引。創(chuàng)建索引有兩種方法:創(chuàng)建索引有兩種方法:pSQL Server

25、Management StudioSQL Server Management StudiopTransact-SQLTransact-SQL使用使用CREATE INDEXCREATE INDEX語句創(chuàng)建索引的語法格式如下:語句創(chuàng)建索引的語法格式如下:CREATECREATE UNIQUE UNIQUE CLUSTERED CLUSTERED | | NONCLUSTERED NONCLUSTERED INDEX index_nameINDEX index_name ON ON table table | | view view ( ( column column ASC | DESC ,n

26、) ASC | DESC ,n ) WITH WITH( PAD_INDEX= ON | OFF ( PAD_INDEX= ON | OFF | FILLFACTOR=filefactor | FILLFACTOR=filefactor | IGNORE_DUP_KEY= ON | OFF | IGNORE_DUP_KEY= ON | OFF | DROP_EXISTING= ON | OFF | DROP_EXISTING= ON | OFF | STATISTICS_NORECOMPUTE= ON | OFF | STATISTICS_NORECOMPUTE= ON | OFF | SOR

27、T_IN_TEMPDB= ON | OFF )| SORT_IN_TEMPDB= ON | OFF ) ON filegroup ON filegroup 其中:其中:UNIQUEUNIQUE:為表或視圖創(chuàng)建唯一索引,即不允許兩行具有相同的索引鍵值。:為表或視圖創(chuàng)建唯一索引,即不允許兩行具有相同的索引鍵值。 省略省略UNIQUEUNIQUE時,創(chuàng)建的索引是非唯一索引。時,創(chuàng)建的索引是非唯一索引。CLUSTEREDCLUSTERED:指定創(chuàng)建的索引為聚集索引。:指定創(chuàng)建的索引為聚集索引。NOCLUSTEREDNOCLUSTERED:指定創(chuàng)建的索引為非聚集索引。省略:指定創(chuàng)建的索引為非聚集索引。省

28、略CLUSTERED |CLUSTERED | NOCLUSTERED NOCLUSTERED,則建立的是非聚集索引。,則建立的是非聚集索引。index_nameindex_name:指定創(chuàng)建的索引的名稱。:指定創(chuàng)建的索引的名稱。table | viewtable | view:用于創(chuàng)建索引的表或視圖的名稱。:用于創(chuàng)建索引的表或視圖的名稱。columncolumn:索引所基于的一列或多列。指定兩個或多個列名,可為指定列的:索引所基于的一列或多列。指定兩個或多個列名,可為指定列的 組合值創(chuàng)建組合索引。組合值創(chuàng)建組合索引。一個組合索引中最多可組合一個組合索引中最多可組合1616列列。組合索。組合索

29、 引鍵中的所有列必須在引鍵中的所有列必須在同一個表或視圖同一個表或視圖中。中。ASC | DESCASC | DESC:確定特定索引列的升序或降序排序方向。默認值為:確定特定索引列的升序或降序排序方向。默認值為ASCASC。PAD_INDEXPAD_INDEX:指定填充索引的內(nèi)部節(jié)點的行數(shù)至少應(yīng)大于等于兩行。:指定填充索引的內(nèi)部節(jié)點的行數(shù)至少應(yīng)大于等于兩行。 PAD_INDEXPAD_INDEX選項只有在選項只有在FILLFACTORFILLFACTOR選項指定后才起作用,因為選項指定后才起作用,因為 PAD_INDEXPAD_INDEX使用與使用與FILLFACTORFILLFACTOR相同

30、的百分比。相同的百分比。FILLFACTOR=filefactorFILLFACTOR=filefactor:指定一個百分比,表示在索引創(chuàng)建或重新生成過:指定一個百分比,表示在索引創(chuàng)建或重新生成過 程中數(shù)據(jù)庫引擎應(yīng)使每個索引頁的葉級別達到的填充程度。程中數(shù)據(jù)庫引擎應(yīng)使每個索引頁的葉級別達到的填充程度。 fillfactorfillfactor必須為介于必須為介于1 1至至100100之間的整數(shù)值。默認值為之間的整數(shù)值。默認值為0 0。 如果如果fillfactorfillfactor為為100100或或0 0,數(shù)據(jù)庫引擎將創(chuàng)建葉級頁達到其,數(shù)據(jù)庫引擎將創(chuàng)建葉級頁達到其 填充容量的索引。填充容量

31、的索引。IGNORE_DUP_KEYIGNORE_DUP_KEY:指定對唯一聚集索引或唯一非聚集索引執(zhí)行多行插入操:指定對唯一聚集索引或唯一非聚集索引執(zhí)行多行插入操 作時出現(xiàn)重復(fù)鍵值的錯誤響應(yīng)。默認值為作時出現(xiàn)重復(fù)鍵值的錯誤響應(yīng)。默認值為OFFOFF。當(dāng)為。當(dāng)為ONON時,發(fā)出一條時,發(fā)出一條 警告信息,但只有違反了唯一索引的行才會失??;為警告信息,但只有違反了唯一索引的行才會失??;為OFFOFF時,發(fā)出錯時,發(fā)出錯 誤信息,并回滾整個誤信息,并回滾整個INSERTINSERT事務(wù)。事務(wù)。IGNORE_DUP_KEYIGNORE_DUP_KEY設(shè)置僅適用于創(chuàng)設(shè)置僅適用于創(chuàng) 建或重新生成索引后發(fā)

32、生的插入操作。建或重新生成索引后發(fā)生的插入操作。 DROP_EXISTINGDROP_EXISTING:指定應(yīng)刪除并重新生成已命名的先前存在的聚集或非聚集:指定應(yīng)刪除并重新生成已命名的先前存在的聚集或非聚集索引。默認值為索引。默認值為OFFOFF。當(dāng)為。當(dāng)為ONON時,刪除并重新生成現(xiàn)有索引。指定的索引名時,刪除并重新生成現(xiàn)有索引。指定的索引名稱必須與當(dāng)前的現(xiàn)有索引相同;但可以修改索引定義;當(dāng)為稱必須與當(dāng)前的現(xiàn)有索引相同;但可以修改索引定義;當(dāng)為OFFOFF時,如果指時,如果指定的索引名已存在,則會顯示一條錯誤。使用定的索引名已存在,則會顯示一條錯誤。使用DROP_EXESTINGDROP_E

33、XESTING不能更改索引不能更改索引類型。類型。STATISTICS_NORECOMPUTESTATISTICS_NORECOMPUTE:指定是否重新計算分發(fā)統(tǒng)計信息。默認值為:指定是否重新計算分發(fā)統(tǒng)計信息。默認值為OFFOFF。當(dāng)為。當(dāng)為ONON時,不會自動重新計算過時的統(tǒng)計信息;為時,不會自動重新計算過時的統(tǒng)計信息;為OFFOFF時,啟用統(tǒng)計信息時,啟用統(tǒng)計信息自動更新功能。自動更新功能。SORT_IN_TEMPDBSORT_IN_TEMPDB:指定是否在:指定是否在tempdbtempdb中存儲臨時排序結(jié)果。默認值為中存儲臨時排序結(jié)果。默認值為OFFOFF。當(dāng)為當(dāng)為ONON時,在時,在

34、tempdbtempdb中存儲用于生成索引的中間排序結(jié)果。為中存儲用于生成索引的中間排序結(jié)果。為OFFOFF時,中間時,中間排序結(jié)果與索引存儲在同一個數(shù)據(jù)庫中。排序結(jié)果與索引存儲在同一個數(shù)據(jù)庫中。ON filegroupON filegroup:為指定文件組創(chuàng)建指定索引。如果未指定位置且表或視圖:為指定文件組創(chuàng)建指定索引。如果未指定位置且表或視圖尚未分區(qū),則索引將與基本表或視圖使用相同的文件組。該文件組必須已尚未分區(qū),則索引將與基本表或視圖使用相同的文件組。該文件組必須已存在。存在?!纠?-99-9】為表為表“Book”Book”基于基于“BookId”BookId”字段創(chuàng)建一個唯一的聚集索

35、引。字段創(chuàng)建一個唯一的聚集索引。FILLFACTOR經(jīng)驗值n為幾乎沒有數(shù)據(jù)修改活動的表使用為幾乎沒有數(shù)據(jù)修改活動的表使用100%填填充因子充因子;n低活動的使用低活動的使用80%90%;n中等活動的使用中等活動的使用60%70%n為索引鍵上的高活動使用為索引鍵上的高活動使用50%或更低的百或更低的百分比。分比。 9.8 9.8 管理索引管理索引 創(chuàng)建索引之后,由于數(shù)據(jù)的變更操作會引起索引頁出現(xiàn)創(chuàng)建索引之后,由于數(shù)據(jù)的變更操作會引起索引頁出現(xiàn)碎塊碎塊,為了提高系統(tǒng)的性能,必須對索引進行維護。,為了提高系統(tǒng)的性能,必須對索引進行維護。 9.8.1 9.8.1 修改索引修改索引 修改索引是指修改索引

36、是指禁用禁用、重新生成重新生成或或重新組織索引重新組織索引,或通過設(shè)置索引的,或通過設(shè)置索引的相關(guān)選項操作修改現(xiàn)有的索引。相關(guān)選項操作修改現(xiàn)有的索引。重新生成重新生成索引將會刪除并重新創(chuàng)建索引,將根據(jù)指定的或現(xiàn)有的填充索引將會刪除并重新創(chuàng)建索引,將根據(jù)指定的或現(xiàn)有的填充因子設(shè)置壓縮頁來刪除碎片、回收磁盤空間,然后對連續(xù)頁中的索引因子設(shè)置壓縮頁來刪除碎片、回收磁盤空間,然后對連續(xù)頁中的索引行重新排序。行重新排序。重新組織索引重新組織索引是用最少系統(tǒng)資源重新組織索引。是用最少系統(tǒng)資源重新組織索引。禁用索引禁用索引可防止用戶訪問該索引,對于聚集索引,還可以防止用戶訪可防止用戶訪問該索引,對于聚集索引

37、,還可以防止用戶訪問基礎(chǔ)表數(shù)據(jù)。問基礎(chǔ)表數(shù)據(jù)。修改索引:修改索引:SQL Server Management StudioSQL Server Management StudioTransact-SQLTransact-SQL2. 2. 使用使用ALTER INDEXALTER INDEX命令修改索引命令修改索引(1) (1) 重新生成索引重新生成索引重新生成索引的語法格式如下:重新生成索引的語法格式如下:ALTER INDEX index_name ON table_or_view_name ALTER INDEX index_name ON table_or_view_name REBUI

38、LDREBUILD其中:其中:(2) (2) 重新組織索引重新組織索引ALTER INDEX index_name ON table_or_view_name ALTER INDEX index_name ON table_or_view_name REORGANIZEREORGANIZE(3) (3) 禁用索引禁用索引ALTER INDEX index_name ON table_or_view_name ALTER INDEX index_name ON table_or_view_name DISABLEDISABLE9.8.2 9.8.2 刪除索引刪除索引n使用使用Management StudioManagement Studio工具刪除索引工具刪除索引2. 2. 使用使用DROP INDEXDROP INDEX命令刪除索引命令刪除索引DROP INDEX . ,n DROP INDEX . ,n

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論