sqlserver从varchar(50)存储改为用varchar(10)的话
比如 用户名,我程序的要求是10位字符以内,所以:
如果我sqlserver从varchar(50)存储改为用varchar(10)的话,
1.会不会减少数据空间?
2.会不会提高我程序的效率?
3.有没有必要?
小弟先谢谢
1、会
2、不会
3、无所谓(现在最不值钱的就是空间,大点也不贵多少)
肯定会减少数据空间,但是个人认为没有必要。
就是节省空间,其他没什么
会么?
我感觉不会减少吧 ,..
varchar(N) 实际存储的空间 不是根据你的实际字段长度的么,不是根据N的吧?
(1)数据存储开销。
a. 每个varchar列需要额外的两个字节,用于反映存储的数据的长度。
b. 每个可为NULL的char列,需要一些字节(空位图)来反应数据的为空性。
c. 无论实际数据的长度是多少,char按照定义的长度分配存储空间。
d. varchar根据实际存储的数据长度来分配数据存储空间。
数据库的性能方面的也有影响
大小影响计算:
Variable_Data_Size = 2 + (Num_Variable_Cols x 2) + Max_Var_Size
Max_Var_Size = 所有可变长度列的最大字节大小
以上是可变列的计算有一个加最大的行字节数
而Fixed_Data_Size-- 所有固定长度列的总字节大
ps:
SQL Server 2008 增加了一个动态压缩的功能,它会根据输入的数据,动态的压缩数据.
所以,数据长度不一定和你输入的一致.
http://social.microsoft.com/Forums/zh-CN/sqlserverzhchs/threa
相关问答:
Java code:
int startPos=pagesize*(pageNo-1);//pagesize表示每页显示条数 pageNo表示页数
Statement stmt = con.createStatement();
String sql="pdate not in (select top "+startPos+&quo ......
Java code:
怎么将像下面的带特殊字符(单引号、百分号,双引号,#号,美元符号......)的字符串存入sqlserver的某个字段?
String mystring="
insert into T_PUB_RZGL(N_RZID,N_RZLX,N_BMDM,N_YGGH,C_RZNR ......
写了一个用C语言操作sqlserver数据库的程序,在我自己的计算机上运行没问题。但到另一台机器上运行时,SQLConnect函数连接数据库失败,仔细检查设置都没有发现问题,但该机器的操作系统是Windows Server 2003 Enterp ......
代码:
insert into openrowset('microsoft.ace.oledb.12.0','excel 12.0;hdr=yes;database=d:\a.xslx','select * from [sheet1$]') select * from table
注意:导出的数据和表头要一 ......
在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......