易截截图软件、单文件、免安装、纯绿色、仅160KB

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


相关问答:

jsp中SqlServer的分页问题

Java code:
int startPos=pagesize*(pageNo-1);//pagesize表示每页显示条数 pageNo表示页数
Statement stmt = con.createStatement();
String sql="pdate not in (select top "+startPos+&quo ......

怎么将带特殊字符的字符串存入sqlserver的某个字段?

Java code:

怎么将像下面的带特殊字符(单引号、百分号,双引号,#号,美元符号......)的字符串存入sqlserver的某个字段?
String mystring="
insert into T_PUB_RZGL(N_RZID,N_RZLX,N_BMDM,N_YGGH,C_RZNR ......

在64位系统上用C语言操作sqlserver数据库的问题

写了一个用C语言操作sqlserver数据库的程序,在我自己的计算机上运行没问题。但到另一台机器上运行时,SQLConnect函数连接数据库失败,仔细检查设置都没有发现问题,但该机器的操作系统是Windows Server 2003 Enterp ......

基于sqlserver 2005导出数据到office 2007 Excel

代码:
insert into openrowset('microsoft.ace.oledb.12.0','excel 12.0;hdr=yes;database=d:\a.xslx','select * from [sheet1$]') select * from table
注意:导出的数据和表头要一 ......

求教 查看SqlServer执行过的存储过程状态

在SqlServer中如何查看历史上执行的存储过程的信息呢,如:传入参数,执行时间等等。如果不能查看历史记录,是否可以自己写触发器之类的,人工控制呢,在Oracle里面有动态视图可以随时查看历史执行的sql语句,SqlSer ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号