数据类型占磁盘空间问题!! 会。Null值一样要占用空间。只有varchar这样的值才不会 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1. sql Server 2000 对空值的管理和存储和一般的数据类型不一样.2. 它不会占用4个字节 create table b (a datetime)insert into b select null --1insert into b select '' ---2這裡跟上面的不同,它將是系統設置的起始時間select len(a) from b ----可以看到它實際佔的字節數(注意:它隻是隱含的將datatime轉成varchar再計算字節,並非實際存儲大小) NULL值也是值也是佔空間。可以用varchar類型空間佔用少一點。 找到答案了。谢谢大家热心帮助估计表的大小下列步骤可用于估计存储表中的数据所需的空间量。 指定表中的行数: 表中的行数 = Num_Rows如果在表的定义中有固定长度和可变长度列,请计算数据行中这两组列的每一组所占用的空间。列的大小取决于数据类型和长度说明。有关更多信息,请参见数据类型。 列数 = Num_Cols所有固定长度列中的字节总和 = Fixed_Data_Size可变长度列数 = Num_Variable_Cols所有可变长度列的最大值 = Max_Var_Size如果表中有固定长度列,行的一部分(称为空位图)将保留以管理列的可为空性。计算大小: 空位图 (Null_Bitmap) = 2 + (( Num_Cols + 7) / 8 )仅使用上述表达式中的整数部分,而去掉其余部分。如果表中有可变长度列,请确定在行中存储这些列需使用的空间: 可变长度列的总大小 (Variable_Data_Size) = 2 + (Num_Variable_Cols x 2) + Max_Var_Size如果没有可变长度列,请将 Variable_Data_Size 设置为 0。此公式假设所有可变长度列均百分之百充满。如果预计可变长度列占用的存储空间比例较低,则可以按照该比例调整结果以对整个表大小得出一个更准确的估计。计算行大小: 行总大小 (Row_Size) = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap +4最后一个值 4 表示数据行首结构。下一步,计算每页的行数(每页有 8096 可用字节): 每页的行数 (Rows_Per_Page) = ( 8096 ) / (Row_Size + 2)因为行不跨页,所以每页的行数应向下舌入到最接近的整数。如果要在表上创建聚集索引,那么要根据指定的填充因子计算每页保留的可用行数。有关更多信息,请参见填充因子。如果不创建聚集索引,请将 Fill_Factor 指定为 100。 每页的可用行数 (Free_Rows_Per_Page) = 8096 x ((100 - Fill_Factor) / 100) / (Row_Size + 2)计算中使用的填充因子为整数值,而不是百分数。因为行不跨页,所以每页的行数应向下舍入到最接近的整数。填充因子增大时,每页将存储更多的数据,因此页数将减少。计算存储所有行所需的页数: 页数 (Num_Pages) = Num_Rows / (Rows_Per_Page - Free_Rows_Per_Page)估计的页数应向上舍入到最接近的整数。最后,计算存储表中的数据所需的空间量(每页总字节为8192): 表大小(字节)= 8192 x Num_Pages 没见过的SQL错误,高手来试试 这个查询怎么理解? 求一条统计sql语句! SQL工作流模板实例化向导创建SQLServer登录 两个表,怎么用select语句将它们某个相同属性的不同数据值查出,切切切 请问如何把Unicode字符串转换为GB2312? SQL2008实现 排序问题 编成一个程序后,应该做哪些基础工作程序才能正常运行呢? 大家好,我想请问把一数据表备份成文本文件和从文本文件恢复的语句,谢谢大家~~~~~~~~ EDDM(Easy Distributed Database Middleware易用的分布式数据库中间件)发布,欢迎试用 如何更新列中部分内容
2. 它不会占用4个字节
insert into b select null --1
insert into b select '' ---2這裡跟上面的不同,它將是系統設置的起始時間select len(a) from b ----可以看到它實際佔的字節數(注意:它隻是隱含的將datatime轉成varchar再計算字節,並非實際存儲大小)
也是佔空間。
可以用varchar類型空間佔用少一點。
估计表的大小
下列步骤可用于估计存储表中的数据所需的空间量。 指定表中的行数:
表中的行数 = Num_Rows如果在表的定义中有固定长度和可变长度列,请计算数据行中这两组列的每一组所占用的空间。列的大小取决于数据类型和长度说明。有关更多信息,请参见数据类型。
列数 = Num_Cols所有固定长度列中的字节总和 = Fixed_Data_Size可变长度列数 = Num_Variable_Cols所有可变长度列的最大值 = Max_Var_Size如果表中有固定长度列,行的一部分(称为空位图)将保留以管理列的可为空性。计算大小:
空位图 (Null_Bitmap) = 2 + (( Num_Cols + 7) / 8 )仅使用上述表达式中的整数部分,而去掉其余部分。如果表中有可变长度列,请确定在行中存储这些列需使用的空间:
可变长度列的总大小 (Variable_Data_Size) = 2 + (Num_Variable_Cols x 2) + Max_Var_Size如果没有可变长度列,请将 Variable_Data_Size 设置为 0。此公式假设所有可变长度列均百分之百充满。如果预计可变长度列占用的存储空间比例较低,则可以按照该比例调整结果以对整个表大小得出一个更准确的估计。计算行大小:
行总大小 (Row_Size) = Fixed_Data_Size + Variable_Data_Size + Null_Bitmap +4最后一个值 4 表示数据行首结构。下一步,计算每页的行数(每页有 8096 可用字节):
每页的行数 (Rows_Per_Page) = ( 8096 ) / (Row_Size + 2)因为行不跨页,所以每页的行数应向下舌入到最接近的整数。如果要在表上创建聚集索引,那么要根据指定的填充因子计算每页保留的可用行数。有关更多信息,请参见填充因子。如果不创建聚集索引,请将 Fill_Factor 指定为 100。
每页的可用行数 (Free_Rows_Per_Page) = 8096 x ((100 - Fill_Factor) / 100) / (Row_Size + 2)计算中使用的填充因子为整数值,而不是百分数。因为行不跨页,所以每页的行数应向下舍入到最接近的整数。填充因子增大时,每页将存储更多的数据,因此页数将减少。计算存储所有行所需的页数:
页数 (Num_Pages) = Num_Rows / (Rows_Per_Page - Free_Rows_Per_Page)估计的页数应向上舍入到最接近的整数。最后,计算存储表中的数据所需的空间量(每页总字节为8192):
表大小(字节)= 8192 x Num_Pages