SQL Server 資料庫優化到底做了什麼
通過維護計劃嚮導來設定的,一般包括以下幾下步驟:
1. Rebuild Index
重新生成索引將刪除該索引並重新建立一個新的索引。此過程中將刪除碎片,通過使用指定的或現有的填充因子設定壓縮頁來回收磁碟空間,並在連續頁中對索引進行重新排序(根據需要分配新頁)。這樣可以減少獲取所請求資料需要的頁讀取數,從而提高磁碟效能。
2. Update statistics
更新索引統計資訊,確保查詢優化器含有關於表中資料值頒佈的最新資訊。這使得查詢優化器能夠更好地確定訪問資料的最佳方法,因為可以獲得資料庫中儲存資料的詳細資訊。SQL SERVER也可以定期自動更新索引統計資訊,但此選項可以對統計資訊進行立即強制更新。
3. Remove unused space
通過刪除空資料頁來壓縮資料檔案
線上優化需要哪些條件?
SQL Server2000提供了兩種修復索引碎片的辦法: 重新組織索引(Reorganize index)和重新生成索引(Rebuild Index).其中重新生成索引整個過程需要刪除索引後重新建立,外部過程無法訪問資料表。SQL SERVER2005才引入聯機重新生成索引,所以目前我們要做rebuild index動作還是得offline執行。如果需要線上做優化,可以考慮重新組織索引。重新組織索引會對最外層資料頁裡的資料重新排序,並壓縮索引頁。這個過程不會新增任何額外的資料,但索引可能還殘留一定程度的碎片。重新組織索引不會佔用很多系統資源,在執行過程中也能夠對該索引所在的資料表進行查詢,所以可以算聯機(online)執行.
完整的執行語句: EXECUTE master.dbo.xp_sqlmaint N' -PlanID 9616B762-F593-4A7E-825A-6B47D5918A65 -WriteHistory -RebldIdx 10 '
使用sqlmaint工具,每週週一3:10執行一次優化動作,以填充因子90重新生成索引.
參考:sqlmaint實用工具介紹 http://technet.microsoft.com/zh-cn/library/ms162827(SQL.90).aspx
-RebldIdx free_space
指定應使用 free_space 百分比值作為填充因子的反數,重新生成目標資料庫的表索引。例如,如果 free_space 百分比是 30,則使用的填充因子為 70。如果指定 free_space 百分比值為 100,則使用原始填充因子值重新生成索引。
-WriteHistory
指定在 msdb.dbo.sysdbmaintplan_history 中, 為 sqlmaint 執行的每次維護操作生成一個專案。如果指定了 -PlanName 或 -PlanID,則 sysdbmaintplan_history 中的專案將使用指定計劃的 ID。如果指定了 -D,則通過給計劃 ID 賦予零值來生成 sysdbmaintplan_history 中的專案。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-607407/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL、Mysql、資料庫到底什麼關係MySql資料庫
- SQL Server之資料庫語句優化SQLServer資料庫優化
- SQL Server 之資料庫語句優化SQLServer資料庫優化
- 優化SQL Server資料庫查詢方法優化SQLServer資料庫
- 資料庫優化 - SQL優化資料庫優化SQL
- SQL Server 2008資料庫引擎優化SQLServer資料庫優化
- 五十種巧妙優化SQL Server資料庫的方法優化SQLServer資料庫
- 資料庫優化SQL資料庫優化SQL
- 到底什麼是資料持久化持久化
- SQL Server資料庫查詢優化的方法總結SQLServer資料庫優化
- 50種方法巧妙優化你的SQL Server資料庫優化SQLServer資料庫
- New運算子到底做了什麼
- MYSQL資料庫------SQL優化MySql資料庫優化
- 資料庫及SQL優化資料庫SQL優化
- 比較SQL Server 2008資料庫引擎優化和索引優化SQLServer資料庫優化索引
- MySql的資料庫優化到底優化啥了都(3)MySql資料庫優化
- 資料庫的這些效能優化,你做了嗎?資料庫優化
- MySQL 資料庫與 SQL 優化MySql資料庫優化
- 【資料庫】優化SQL語言資料庫優化SQL
- SQL Server 中的 NOLOCK 到底是什麼意思?SQLServer
- SQL Server資料庫查詢速度慢原因及優化方法SQLServer資料庫優化
- MySql的資料庫優化到底優啥了都??(2)MySql資料庫優化
- 資料庫效能優化之SQL語句優化資料庫優化SQL
- 【vue原始碼解析】render到底做了什麼?Vue原始碼
- 兜底機制——leader到底做了什麼?
- js中的new()到底做了些什麼?JS
- 資料庫SQL優化大總結之 百萬級資料庫優化方案資料庫SQL優化
- 資料庫SQL優化大總結之百萬級資料庫優化方案資料庫SQL優化
- SQL SERVER優化SQLServer優化
- 天天說要做效能優化,到底在優化什麼?優化
- 【資料庫】雲資料庫rds是什麼意思?有什麼優勢?資料庫
- 資料庫效能優化-索引與sql相關優化資料庫優化索引SQL
- SQL SERVER中SQL優化SQLServer優化
- 【ITOO】--SQL資料庫優化:切割、資料庫連線池SQL資料庫優化
- SQL Server資料庫安全SQLServer資料庫
- SQL Server 資料庫映象SQLServer資料庫
- SQL Server 資料庫索引SQLServer資料庫索引
- 資料庫映象 (SQL Server)資料庫SQLServer