日期:2014-05-18  浏览次数:20691 次

sql server 空间分配问题
在设计数据库时,比如定义一个字段为nvarchar(1000),是否它将固定占用长度为1000字符的字节容量?即使没有写入任何内容?

------解决方案--------------------
SQL SERVER每行记录的空间大小是固定的 好象是8096吧。

你声明了nvarchar(1000), 即使你没用。 那么下行记录和你这行记录占用的空间是不一样的。
------解决方案--------------------
嗯, varchar和char是有区别的,nvarchar(1000)表示最大是1000
------解决方案--------------------
(n)varchar 类型所占用的空间, 是根据实际存储的内容的长度来决定的。 

所以它是动态分配空间的, 采用 (n)varchar 的类型,是节约空间但有点影响性能的方式。 

而(n)char则刚好相反, 它的长度是固定的, 所以空间不变, 是浪费空间但性能有些提升的方式。