Null 值是否占用空间 ?

winternet 2006-01-11 07:30:22
如题!
...全文
466 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
饮水需思源 2006-01-11
  • 打赏
  • 举报
回复
邹老大的钻石又变颜色了
javanow 2006-01-11
  • 打赏
  • 举报
回复
MS官方很不推荐使用 nullable 的字段,因为它会对空间及性能带来额外的开销。

--------------------------
http://chinadba.cn
深圳骄子数据库服务网
最具实战经验的数据库优化、管理、设计、培训。
^^^老老实实做人,勤勤恳恳做事^^^
bbhere 2006-01-11
  • 打赏
  • 举报
回复
同意一刀的说法,嘿嘿
lw1a2 2006-01-11
  • 打赏
  • 举报
回复
会占,至少有个箱子,虽然是空的
hurrah_yule 2006-01-11
  • 打赏
  • 举报
回复
老大的钻石好闪!!!

-_-i

呵呵...又学一招!
zjcxc 元老 2006-01-11
  • 打赏
  • 举报
回复
-- 下面的测试可以说明问题.

USE tempdb
GO

SELECT a = CAST(NULL as int) INTO tb FROM syscolumns a, syscolumns b
EXEC sp_spaceused 'tb'
DROP TABLE tb
GO

SELECT a = CAST(NULL as varchar(8000)) INTO tb FROM syscolumns a, syscolumns b
EXEC sp_spaceused 'tb'
DROP TABLE tb
GO

SELECT TOP 1024 a = CAST(NULL as char(1024)) INTO tb FROM syscolumns a, syscolumns b
EXEC sp_spaceused 'tb'
DROP TABLE tb
GO

SELECT a = CAST(NULL as binary(2)) INTO tb FROM syscolumns a, syscolumns b
EXEC sp_spaceused 'tb'
DROP TABLE tb
zjcxc 元老 2006-01-11
  • 打赏
  • 举报
回复
如果你是char/nchar这类定长的类型, 那不用说, 肯定占用.
如果你是其他数据类型, 则不占用空间.

但要注意, 即使记录中的每个列都是NULL, 记录本身也要一个地址或者指针之类, 也会有空间开销.
panjinfu80 2006-01-11
  • 打赏
  • 举报
回复
应该有吧。

34,596

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧