我一直在思考數據庫設計最近,我有以下問題:SQL Server中的內存使用情況?
當一個類型,比如說一個varchar(最大值),被設定爲列2GB的空間預留的每一個行插入的時間?
或者是在服務器上分配的空間等於列中的數據量?
謝謝!
我一直在思考數據庫設計最近,我有以下問題:SQL Server中的內存使用情況?
當一個類型,比如說一個varchar(最大值),被設定爲列2GB的空間預留的每一個行插入的時間?
或者是在服務器上分配的空間等於列中的數據量?
謝謝!
varchar
SQL Server和其他地方的數據類型意味着大致可變長度的字符數據。 max
或任何其他常數值表示其上限,而不是其絕對大小。所以,你的後者的觀察是正確的:
服務器 等於數據量在 列上分配現在
,如果定義類似char(200)
的空間(注意缺乏變種在char的前面),那麼是的,無論您在該字段中存儲了多少數據(最多200個字符),都會分配200個字符。順便說一下,char
數據類型的maximum upper bound是8000。
當然不是:)
Varchar(max)
是
bastardised
混合數據類型
(如果你不介意我是一個有點坦率)
:
也許混合比混蛋更好? ;) – 2011-05-03 22:05:05
說實話,我不喜歡'varchar(max)'。懶惰的數據庫設計人員無法弄清楚他們需要多少存儲空間。 – Aliostad 2011-05-03 22:08:52
+1爲混蛋,你得到我:D – 2011-05-03 22:10:08
將這些龐大的數據存儲在數據庫中確實是個壞主意。爲此使用文件系統。 – Andrey 2011-05-03 21:58:06
好吧,讓我們說一個varchar(200)...問題不會改變。 – badpanda 2011-05-03 21:59:32