2011-09-05 231 views
0

在SQL Server中,'model'數據庫顯然在創建新數據庫時充當一種模板。看起來好像這個數據庫的一些屬性是由新數據庫繼承的。但是,我正在觀察FILEGROWTH屬性不會被新數據庫繼承。在SQL Server 2008中創建新數據庫時,FILEGROWTH設置應該從模型數據庫繼承嗎?

這(有點老)後認爲,這應該被繼承:

要更改默認設置以備將來數據庫,使模型數據庫基礎上的變化 。

http://weblogs.sqlteam.com/tarad/archive/2008/09/11/File-Growth-Settings-for-SQL-Server-Databases.aspx

然而,在這篇文章中,有人問基本類似的問題: http://www.sqlservercentral.com/Forums/Topic1065073-391-1.aspx

所以我的問題是模型數據庫的FILEGROWTH屬性應該如何影響新的數據庫;並在SQL Server版本之間更改了此行爲?

回答

1

的文檔CREATE DATABASE有這樣說的SIZE參數:

當主文件沒有提供大小,數據庫引擎使用主文件的大小在模型數據庫。當指定了輔助數據文件或日誌文件,但文件未指定大小時,數據庫引擎將使文件爲1 MB。爲主文件指定的大小必須至少與模型數據庫的主文件一樣大。

然而,對於FILEGROWTH參數,它說:

如果沒有指定FILEGROWTH,則默認值爲1 MB的數據文件和日誌文件的10%,最小值爲64 KB。


用於SQL Server 2000的CREATE DATABASE的文件也有它不是從模式未來是一致的:

如果沒有指定FILEGROWTH,則默認值是10%,最小值爲64KB


原始回答:

通過閱讀關於model database的MSDN頁面,可以推斷出的答案是否定的,這是不能繼承的。首先,我們有:

當發出CREATE DATABASE語句時,數據庫的第一部分是通過複製模型數據庫的內容創建的。然後新數據庫的其餘部分填充空白頁面。

這意味着在使用型號之前,新數據庫的數據庫文件已經存在。另外:

以下操作不能在模型數據庫上執行:

  • 添加文件或文件組。

如果一個新的數據庫被複制正好磁盤上的文件結構,然後克隆在數據庫sys.database_files行創建的,這個限制是不必要的。

+0

實際上,如果我創建一個新的數據庫,「初始大小」值*是*從模型數據庫繼承,所以這似乎與您的推理相矛盾。 – Darragh

+0

@Darragh - 你看過我的編輯了嗎? - SIZE被記錄爲提取模型值,FILEGROWTH不是。 –

+0

那麼有沒有辦法覆蓋FILEGROWTH的默認值?我的問題中提到的第一篇文章只是垃圾?令人失望。 – Darragh

相關問題