簡體   English   中英

SQL Server遷移數據庫性能更好

[英]SQL Server migrating database performance what is better

一些背景:

客戶已經向認證SQL Server顧問詢問了他從sql server 2005遷移到sql server 2008的意見。

他最重要的建議之一是使用備份/恢復,而是使用遷移向導將所有數據復制到新數據庫中。

他說,這將確保數據庫的內部結構采用SQL 2008格式,最終將帶來更好的性能。

客戶對此持懷疑態度,因為他們無法在白皮書中找到任何文字或以其他方式證實顧問的陳述。

所以他們提出了這個問題:

給定一個最初在SQL Server 2000上啟動的SQL數據庫,並使用備份/恢復遷移到較新版本的SQL Server。 (最后是在SQL Server 2005上)

使用遷移向導遷移到SQL Server 2008,實際上將所有原始數據復制到新數據庫中會產生更好的性能特征。 那么他們是否會再次使用備份/恢復方法?

我會重復我在Twitter上發布的內容,“你的顧問是個白痴”。

執行備份和還原將變得更加容易,並且需要更短的停機時間。 此外,它還將確保數據一致並且不會遺漏任何對象。

只要您正在進行索引維護(重建或重新排序/碎片整理索引),就會修復已發生的任何頁面拆分,並且不會出現性能問題。

當數據庫從一個版本移動到另一個版本時,物理數據庫文件將更新為新版本。 在還原數據庫時,您會注意到兼容級別設置為舊版本的編號。 這與數據庫文件的物理結構無關。 您可以隨時將兼容級別更改為更低或更高版本。 如果使用T-SQL還原數據庫,則可以看到這一點,因為在還原數據庫之后,您將看到執行的特定升級步驟。

響應qwerty13579的注釋,當索引重建時,索引將寫入新的物理數據庫頁面,因此不需要在SQL Server數據庫中導出和導入數據。

對於記錄,遷移向導是將數據從數據庫移動到數據庫的最糟糕的選擇。

我同意丹尼的觀點。 備份/恢復是最簡單的升級方式。 對於無停機升級,您可以將數據庫鏡像用於新服務器並故障轉移到新版本

升級到新版本時,提高性能的一項重要任務是刷新所有統計信息

導出和導入數據幾乎總能提高性能,而不是對已經生產了一段時間的數據庫進行備份/恢復。 主要原因是隨着時間的推移,數據的更改和新數據的插入將導致數據溢出到新頁面和行鏈接。 想想舊的紙質地址簿 - 隨着時間的推移,你會添加新的名字,排除舊名稱,排列地址並在頁面后面畫一個箭頭,在那里你寫下他的新地址等。做一個導出/導入將數據寫入新的數據庫頁面,以便更快地訪問; 回到地址簿類比,您正在創建一個“新的”地址簿,以正確的排序順序寫入所有當前活動地址,您將能夠更快地查找地址。

我對Oracle的了解比SQL Server內部更多,所以我不知道“SQL 2008格式”是什么意思(如果它在2008年可讀,按照定義是2008格式,不是嗎?),但是導出/導入是一種提高數據庫性能的好方法。 我經常會為現有數據庫執行此操作以解決性能問題。

[編輯:附加信息]:我對遷移向導的體驗非常糟糕。 通過使用Management Studio中的Tasks - > Generate Scripts功能生成SQL腳本來遷移數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM