中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      優(yōu)化SQL Server索引的5個小技巧

      時間:2024-08-18 06:55:31 SQL 我要投稿
      • 相關推薦

      優(yōu)化SQL Server索引的5個小技巧

        SQL Server中有幾個可以讓你檢測、調整和優(yōu)化SQL Server性能的工具。在本文中,我將說明如何用SQL Server的工具來優(yōu)化數(shù)據(jù)庫索引的使用,本文還涉及到有關索引的一般性知識。

        關于索引的常識

        影響到數(shù)據(jù)庫性能的最大因素就是索引。由于該問題的復雜性,我只可能簡單的談談這個問題,不過關于這方面的問題,目前有好幾本不錯的書籍可供你參閱。我在這里只討論兩種SQL Server索引,即clustered索引和nonclustered索引。當考察建立什么類型的索引時,你應當考慮數(shù)據(jù)類型和保存這些數(shù)據(jù)的column。同樣,你也必須考慮數(shù)據(jù)庫可能用到的查詢類型以及使用的最為頻繁的查詢類型。

        索引的類型

        如果column保存了高度相關的數(shù)據(jù),并且常常被順序訪問時,最好使用clustered索引,這是因為如果使用clustered索引,SQL Server會在物理上按升序(默認)或者降序重排數(shù)據(jù)列,這樣就可以迅速的找到被查詢的數(shù)據(jù)。同樣,在搜尋控制在一定范圍內的情況下,對這些column也最好使用clustered索引。這是因為由于物理上重排數(shù)據(jù),每個表格上只有一個clustered索引。

        與上面情況相反,如果columns包含的數(shù)據(jù)相關性較差,你可以使用nonculstered索引。你可以在一個表格中使用高達249個nonclustered索引——盡管我想象不出實際應用場合會用的上這么多索引。

        當表格使用主關鍵字(primary keys),默認情況下SQL Server會自動對包含該關鍵字的column(s)建立一個獨有的cluster索引。很顯然,對這些column(s)建立獨有索引意味著主關鍵字的唯一性。當建立外關鍵字(foreign key)關系時,如果你打算頻繁使用它,那么在外關鍵字cloumn上建立nonclustered索引不失為一個好的方法。如果表格有clustered索引,那么它用一個鏈表來維護數(shù)據(jù)頁之間的關系。相反,如果表格沒有clustered索引,SQL Server將在一個堆棧中保存數(shù)據(jù)頁。

        數(shù)據(jù)頁

        當索引建立起來的時候,SQLServer就建立數(shù)據(jù)頁(datapage),數(shù)據(jù)頁是用以加速搜索的指針。當索引建立起來的時候,其對應的填充因子也即被設置。設置填充因子的目的是為了指示該索引中數(shù)據(jù)頁的百分比。隨著時間的推移,數(shù)據(jù)庫的更新會消耗掉已有的空閑空間,這就會導致頁被拆分。頁拆分的后果是降低了索引的性能,因而使用該索引的查詢會導致數(shù)據(jù)存儲的支離破碎。當建立一個索引時,該索引的填充因子即被設置好了,因此填充因子不能動態(tài)維護。

        為了更新數(shù)據(jù)頁中的填充因子,我們可以停止舊有索引并重建索引,并重新設置填充因子(注意:這將影響到當前數(shù)據(jù)庫的運行,在重要場合請謹慎使用)。DBCC INDEXDEFRAG和DBCC DBREINDEX是清除clustered和nonculstered索引碎片的兩個命令。INDEXDEFRAG是一種在線操作(也就是說,它不會阻塞其它表格動作,如查詢),而DBREINDEX則在物理上重建索引。在絕大多數(shù)情況下,重建索引可以更好的消除碎片,但是這個優(yōu)點是以阻塞當前發(fā)生在該索引所在表格上其它動作為代價換取來得。當出現(xiàn)較大的碎片索引時,INDEXDEFRAG會花上一段比較長的時間,這是因為該命令的運行是基于小的交互塊(transactional block)。

        填充因子

        當你執(zhí)行上述措施中的任何一個,數(shù)據(jù)庫引擎可以更有效的返回編入索引的數(shù)據(jù)。關于填充因子(fillfactor)話題已經超出了本文的范疇,不過我還是提醒你需要注意那些打算使用填充因子建立索引的表格。

        在執(zhí)行查詢時,SQL Server動態(tài)選擇使用哪個索引。為此,SQL Server根據(jù)每個索引上分布在該關鍵字上的統(tǒng)計量來決定使用哪個索引。值得注意的是,經過日常的數(shù)據(jù)庫活動(如插入、刪除和更新表格),SQL Server用到的這些統(tǒng)計量可能已經“過期了,需要更新。你可以通過執(zhí)行DBCC SHOWCONTIG來查看統(tǒng)計量的狀態(tài)。當你認為統(tǒng)計量已經“過期時,你可以執(zhí)行該表格的UPDATE STATISTICS命令,這樣SQL Server就刷新了關于該索引的信息了。

        建立數(shù)據(jù)庫維護計劃

        SQL Server提供了一種簡化并自動維護數(shù)據(jù)庫的工具。這個稱之為數(shù)據(jù)庫維護計劃向導(Database Maintenance Plan Wizard ,DMPW)的工具也包括了對索引的優(yōu)化。如果你運行這個向導,你會看到關于數(shù)據(jù)庫中關于索引的統(tǒng)計量,這些統(tǒng)計量作為日志工作并定時更新,這樣就減輕了手工重建索引所帶來的工作量。如果你不想自動定期刷新索引統(tǒng)計量,你還可以在DMPW中選擇重新組織數(shù)據(jù)和數(shù)據(jù)頁,這將停止舊有索引并按特定的填充因子重建索引。

      【優(yōu)化SQL Server索引的5個小技巧】相關文章:

      SQL Server常用數(shù)據(jù)類型06-18

      SQL優(yōu)化大全09-09

      Sql Server、Access數(shù)據(jù)排名的實現(xiàn)方法07-09

      如何更改SQL Server默認的1433端口05-19

      如何快速掌握SQL Server中的日志轉移08-04

      有關清除SQL Server日志的兩種方法07-20

      網(wǎng)站優(yōu)化時的小技巧及細節(jié)07-07

      計算機搜索引擎小技巧07-23

      HTML與搜索引擎優(yōu)化10-28

      新手對搜索引擎優(yōu)化seo誤區(qū)解讀07-28

      主站蜘蛛池模板: 亚洲五月婷婷久久综合| 国产一级片内射在线视频| 国产激情啪啪自拍视频| 久久蜜臀一区二区三区av| av狼人婷婷久久亚洲综合| 宁都县| 久久一区二区三区不卡| 亚欧免费无码AⅤ在线观看| 精品一区二区三区人妻久久| 欧美精品一本久久男人的天堂| 日本色偷偷| 国产不卡一区二区av| 武乡县| 海盐县| 溧阳市| 大兴区| 久久精品天堂一区二区三区| 一区二区三区不卡免费av| 长葛市| 稷山县| 中文字幕乱码亚洲无线| 精品午夜一区二区三区| 中字亚洲国产精品一区二区| 精品理论一区二区三区| 亚洲地区一区二区三区| 亚洲av免费不卡一区二区| 91久久国产福利自产拍| 人妻少妇中文字幕久久69堂| 97久久成人国产精品免费| 久久久精品国产亚洲麻色欲| 亚洲欧洲国无码| 久久久久久久久高潮无码| 国产精品制服一区二区| 国产精品一区二区久久精品蜜臀 | 北川| 肥城市| 男女在线免费视频网站| 亚洲美女天堂久久精品一区| 一区二区三区在线高清视频| 韩国日本亚洲精品视频| 国产精品狼人久久久影院|