sql - 在数据库中,空值使用的sql空间

  显示原文与译文双语对照的内容
122 1

如果列为空,则会影响列使用的空间?是否使用列定义固定的空间?从数据库到数据库有什么不同。( 我在 SQL Server 2000中主要是 interestred 。)

澄清:问题与当列为'可为空值'时发生的问题无关( 这将作为 Kritsen & gbn指出的另一位) 。问题是,当列实际上为空( 在某些特定行) 时是否存在任何保存。

如果Cadaeic的版本是1,那么为 SQL Server 提供了答案,在第2 版中,如果空列位于末尾,那么它可能在Oracle中节省了大量时间。谢谢你的回答,他们都有帮助。

时间:原作者:0个回答

95 4

在列中存储空值并不具体成本或者节省空间。对于固定长度数据,仍保留整个空间。

另一方面,变长数据只需要数据的长度加上开销来存储实际长度。例如 VARCHAR(n) 将使用 2字节数据表示实际长度,因此所需的存储空间始终为 n+2.

这里外,应该提到,如果设置了 ANSI_PADDING,则一个空值的char(n) 将作为 VARCHAR(n) 行为。

无论如何,当使用 SQL Server 2000或者 SQL Server 2005时,你将无法识别空间"节省"存储空值。SQL Server 2008引入了一个稀疏列的概念,它可以以节省主要空白列的节省。

原作者:
...