2010-07-09 30 views
3

我正在將數據庫從MySQL移動到SQLServer。在創建數據庫時,我應該將初始大小設置爲?我知道導入的數據庫的大小約爲130MB,但會增長。 130MB應該是初始大小還是應該默認爲2MB?我的初始數據庫大小應爲

回答

2

您應該將它設置爲適合您的數據的正確大小,只要文件需要增長就會獲得性能提升。

這取決於它將以多快的速度增長,我會說150MB和10%的自動增長。

MSDN有意見值得一讀。

+3

{{Shudder}}不要*使用百分比汽車增長。這只是要求麻煩。如果數據庫很小,則可能需要在短時間內自動增長一次以消除性能。如果數據庫變大,10%的自動增長可能意味着巨大的文件增長,從而導致性能下降。數據庫也不會在下班時間增長 - 按照定義,數據庫在被擊中時會這樣做。爲您的預期數據負載選擇合理的數據 - 比如50-200MB。知道有一個自動增長百分比的數據庫減少了一半,數據庫管理員到處都會輕鬆一點。 – mattmc3 2010-07-09 22:46:26

+0

如果數據庫很小,並且它有一個固定的50MB增長,那麼你可以將它的頭髮翻轉一下,然後你將它增大到超過需要的數量。如果他的數據庫變大了100GB,而他已經設置了50MB的自動增長,那麼它將會不斷增長,同樣是性能受到影響。現實情況是,應該根據具體情況進行評估,我不知道如何在不知道使用情況的情況下推薦一個固定的規模,因此,百分比和更詳細的建議鏈接。 ... – 2010-07-10 11:40:07

+0

...自動增長是一種安全措施,而不是增加文件大小的一種方法,因爲這種情況發生的時間不可預知。如果正確管理數據庫,數據庫會在非工作時間增長,您應該使用'sp_spaceused'或其他方法檢查數據庫文件的大小並在發生自動增長之前通知您,這樣您可以在方便的時候手動執行它。 – 2010-07-10 11:40:48

2

將其設置爲至少您當前的大小,可能需要一個體面的緩衝區以便在遷移期間立即增長。 (如果大小心不是一個問題或200MB)

自動增長150MB:根據不同的增長速度我會做這樣的事情:

最初是

自動增長大小:從任何地方5MB到25MB(取決於你的成長期望)

+1

+1我寧願固定數量的MB也要增加百分比 – 2010-07-09 20:27:05

0

使用50 MB自動增長的200 MB是正確的解決方案。請記住爲tempdb使用單獨的驅動器,並且如果可能的話,如果需要更好的性能,可以將日誌放在數據的不同磁盤上。另外,請記住,您的數據可能爲130 MB,但您也需要考慮索引以及它們將消耗多少空間。另外,即使你有一個200MB的數據文件,你的備份文件也會小得多,當談論像這樣的小型數據庫時,這往往是真正的空間問題。

0

你應該知道的一件事是數據庫增長的速度有多快。

如果生長速率很小(假設1 MB /周)

爲密度板,

設置初始大小設置爲200 MB

設置自動增長到100 MB(這是初始大小)

對於LDF的50%,

設置初始大小20-50 MB(這是MDF文件的初始大小的10-25%)

設置自動增長到10-25 MB(這是LDF文件的初始尺寸的50%)使用%用於自動增長,因爲它是不可預測的

避免。例如,如果您爲自動增長指定百分比,並且數據庫大小增加到300MB,則這意味着30 MB。如果您的數據庫大小增長到500 MB,則意味着50 MB。另一方面,如果你使用MB,那麼你可以確信數據庫將永遠增加你設置的MB數量。

1
USE MASTER; 
GO 
CREATE DATABASE StackOverflowDatabase 
ON 
(NAME = 'StackOverflowDatabase', 
    FILENAME = 'C:\Program Files\Microsoft SQL Server\Your version\MSSQL\DATA\SO_db.mdf', 
    SIZE = 200MB, 
    MAXSIZE = UNLIMITED, 
    FILEGROWTH = 50MB) 
LOG ON 
(NAME = 'StackOverflowDatabase_log', 
    FILENAME = 'C:\Program Files\Microsoft SQL Server\Your version\MSSQL\DATA\SO_db.ldf', 
    SIZE = 20MB, 
    MAXSIZE = 50MB, 
    FILEGROWTH = 10MB) ; 
GO