SQL Server中的内存使用情况?
我一直在思考数据库设计最近,我有以下问题:SQL Server中的内存使用情况?
当一个类型,比如说一个varchar(最大值),被设定为列2GB的空间预留的每一个行插入的时间?
或者是在服务器上分配的空间等于列中的数据量?
谢谢!
varchar
SQL Server和其他地方的数据类型意味着大致可变长度的字符数据。 max
或任何其他常数值表示其上限,而不是其绝对大小。所以,你的后者的观察是正确的:
服务器 等于数据量在 列上分配现在
,如果定义类似char(200)
的空间(注意缺乏变种在char的前面),那么是的,无论您在该字段中存储了多少数据(最多200个字符),都会分配200个字符。顺便说一下,char
数据类型的maximum upper bound是8000。
当然不是:)
Varchar(max)
是
bastardised
混合数据类型
(如果你不介意我是一个有点坦率)
:
- 它存储与如果总行长度不超过8KB限制
- 否则存储为blob。 blob(TEXT,IMAGE)的长度与其长度相同。
也许混合比混蛋更好? ;) – 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