关于 sql server 2014 默认值对于表空间的分配

澹台昳羽 2016-01-25 11:15:44
carete table a
(a int)

insert into a values(1)
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 8083.0

alter table a add e varchar(255) not null default 'asdfghjklqwertyuiop'
- 区扫描碎片 ..................: 0.00%
- 每页的平均可用字节数.....................: 8083.0

可以看出增加默认值没有占用该页字节。

但是在sql server2008上执行,发现默认值是占用字节的。

请问这个设计是啥时候修改的?并提供下相关资料,谢谢!
...全文
252 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-01-26
  • 打赏
  • 举报
回复
--看联机帮助计算数据库大小有说明 保留行中称为 Null 位图的部分以管理列的为空性。计算其大小: Null_Bitmap = 2 + ((Num_Cols + 7) / 8)
LongRui888 2016-01-26
  • 打赏
  • 举报
回复
这个你要看sql server的官方文档,里面会有介绍的,你可以对比一下两份文档。 2008有,我觉得之前照理应该也有的 ,因为你alter table增加一个字段,有默认值,如果1个表有2000w条数据,那么给每1行数据,都增加默认值,那就卡死了,会很慢,所以这个还得看具体的情况

702

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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