【发布时间】:2012-10-16 23:03:57
【问题描述】:
我在 SQL Server 中读到过,无论列值是否为 NULL,固定宽度数据类型总是占用空间,而如果列值为 NULL,可变宽度数据类型则不会。是否有等效于 int、float、datetime 等的可变宽度?
【问题讨论】:
-
SQL Server 2008 中有一个
vardecimal- 但它再次被弃用,有利于行/页压缩
标签: sql-server null
我在 SQL Server 中读到过,无论列值是否为 NULL,固定宽度数据类型总是占用空间,而如果列值为 NULL,可变宽度数据类型则不会。是否有等效于 int、float、datetime 等的可变宽度?
【问题讨论】:
vardecimal - 但它再次被弃用,有利于行/页压缩
标签: sql-server null
问:是否有不占用固定空间的变量类型?
答:当然。 nvarchar、ntext、image 和 Document XML 立即浮现在脑海中。
问:对于 int、number 或 datetime 等类型,除了固定宽度之外,还有什么?
答:没有:)
【讨论】:
您是正确的,以“VAR”开头的数据类型在值为 NULL 时不会占用数据页上的空间。 VAR 版本可用的数据类型只有字符和二进制数据类型。所有其他的,如 INT 和 DATETIME 总是占用固定数量的空间,与它们的值无关。见Space used by nulls in database
【讨论】: