成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

SQL Server數據庫中優化索引的妙招

數據庫 SQL Server
此文章主要介紹的是在SQL Server數據庫中對索引進行優化的一些小妙招,以及對索引的重要性以及對索引的類型的描述。

我們今天主要向大家描述的是在SQL Server數據庫中對索引進行優化的一些小妙招,同時本文也有對索引的常識的描述,即,我們大家都知道影響到數據庫性能的***因素就是索引。由于該問題的復雜性,我只可能簡單的談談這個問題。

不過關于這方面的問題,目前有好幾本不錯的書籍可供你參閱。我在這里只討論兩種SQL Server數據庫索引,即clustered索引和nonclustered索引。當考察建立什么類型的索引時,你應當考慮數據類型和保存這些數據的column。同樣,你也必須考慮數據庫可能用到的查詢類型以及使用的最為頻繁的查詢類型。

 

索引的類型

 

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

 

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

 

 

當表格使用主關鍵字(primary keys),默認情況下SQL Server數據庫會自動對包含該關鍵字的column(s)建立一個獨有的cluster索引。很顯然,對這些column(s)建立獨有索引意味著主關鍵字的唯一性。當建立外關鍵字(foreign key)關系時,如果你打算頻繁使用它,那么在外關鍵字cloumn上建立nonclustered索引不失為一個好的方法。

如果表格有clustered索引,那么它用一個鏈表來維護數據頁之間的關系。相反,如果表格沒有clustered索引,SQL Server數據庫將在一個堆棧中保存數據頁。

 

 

數據頁

 

當索引建立起來的時候,SQLServer就建立數據頁(datapage),數據頁是用以加速搜索的指針。當索引建立起來的時候,其對應的填充因子也即被設置。設置填充因子的目的是為了指示該索引中數據頁的百分比。

隨著時間的推移,數據庫的更新會消耗掉已有的空閑空間,這就會導致頁被拆分。頁拆分的后果是降低了索引的性能,因而使用該索引的查詢會導致數據存儲的支離破碎。當建立一個索引時,該索引的填充因子即被設置好了,因此填充因子不能動態維護。

 

為了更新數據頁中的填充因子,我們可以停止舊有索引并重建索引,并重新設置填充因子(注意:這將影響到當前數據庫的運行,在重要場合請謹慎使用)。DBCC INDEXDEFRAG和DBCC DBREINDEX是清除clustered和nonculstered索引碎片的兩個命令。

INDEXDEFRAG是一種在線操作(也就是說,它不會阻塞其它表格動作,如查詢),而DBREINDEX則在物理上重建索引。在絕大多數情況下,重建索引可以更好的消除碎片,但是這個優點是以阻塞當前發生在該索引所在表格上其它動作為代價換取來得。當出現較大的碎片索引時,INDEXDEFRAG會花上一段比較長的時間,這是因為該命令的運行是基于小的交互塊(transactional block)。

 

 

填充因子

 

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

 

在執行查詢時,SQL Server動態選擇使用哪個索引。為此,SQL Server數據庫根據每個索引上分布在該關鍵字上的統計量來決定使用哪個索引。值得注意的是,經過日常的數據庫活動(如插入、刪除和更新表格),SQL Server用到的這些統計量可能已經“過期”了,需要更新。

你可以通過執行DBCC SHOWCONTIG來查看統計量的狀態。當你認為統計量已經“過期”時,你可以執行該表格的UPDATE STATISTICS命令,這樣SQL Server就刷新了關于該索引的信息了。

 

 

建立數據庫維護計劃

 

SQL Server數據庫提供了一種簡化并自動維護數據庫的工具。這個稱之為數據庫維護計劃向導(Database Maintenance Plan Wizard ,DMPW)的工具也包括了對索引的優化。如果你運行這個向導,你會看到關于數據庫中關于索引的統計量,這些統計量作為日志工作并定時更新,這樣就減輕了手工重建索引所帶來的工作量。

如果你不想自動定期刷新索引統計量,你還可以在DMPW中選擇重新組織數據和數據頁,這將停止舊有索引并按特定的填充因子重建索引。

【編輯推薦】

  1. SQL Server 數據庫中管理常用的SQL與T-SQL
  2. SQL Server業務規則的鏈接技術之探討
  3. SQL Server 2000的分頁存儲過程的改寫
  4. SQL Server數據庫對圖像數據之存儲機制
  5. SQL Server死鎖問題的解決與分析

 

責任編輯:佚名 來源: cnBeta.com
相關推薦

2010-07-15 14:46:20

SQL Server數

2010-07-08 17:33:21

SQL Server數

2010-07-09 11:28:12

SQL Server數

2011-08-22 12:01:36

SQL Server代碼優化

2021-05-08 14:07:26

SQLServer數據庫

2009-07-06 21:20:34

SQL Server數

2010-05-10 18:54:12

Oracle數據庫索引

2010-06-28 14:56:24

優化SQL Serve

2010-07-06 16:24:53

SQL Server數

2009-03-11 15:40:20

2011-03-28 17:12:36

sql server數優化

2019-08-19 11:07:41

SQL數據庫優化

2010-07-15 17:28:50

SQL Server

2009-01-27 21:00:00

服務器數據庫SQL Server

2010-07-07 10:31:43

SQL Server數

2010-07-08 11:05:14

SQL Server數

2010-07-08 15:55:25

SQL Server

2011-08-16 09:05:21

SQL Server數測試索引空間換時間

2010-07-20 09:53:01

SQL Server

2011-04-06 11:16:47

SQL Server數查詢優化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产中文视频 | 亚洲国产精品99久久久久久久久 | 一区二区视频在线观看 | 久久国产高清视频 | 美女在线观看av | 精品欧美一区二区三区久久久 | 日韩精品一区中文字幕 | 免费三级网 | 尹人av| 一级午夜aaa免费看三区 | 亚洲日本成人 | 中文字幕亚洲欧美日韩在线不卡 | 日韩精品一区二区三区中文在线 | 亚洲一区二区中文字幕 | 国产专区在线 | 91精品国产欧美一区二区成人 | 国产九九九 | caoporn地址| 99热国产免费 | 久久亚洲一区 | 99亚洲精品 | 天天狠狠 | 欧美视频二区 | 日韩欧美在线免费观看视频 | 国产高清在线视频 | 欧洲一区在线观看 | 久久久久久久国产精品 | 国产福利视频 | 国产精品视频在线播放 | 在线免费观看视频黄 | 欧美一区二区三区免费在线观看 | 国产原创在线观看 | 人人精品| 亚洲免费大片 | 亚洲欧美一区二区三区在线 | 国产免费视频 | 免费成人在线网站 | 精品一区久久 | 日本三级网站在线 | 成人免费视频观看 | 日韩欧美在线视频 |