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 ......
我在学做论坛
里面有个users表
表里有 experience(经验值) 和 rank(等级)俩列
我想使用QQ斗地主里面的等级制度
等级 需要经验
包身工 无
短工 10
......
数据10W条以上,wm6.5平台,内存有限
C# code:
private void connserver()
{
Cursor.Current = Cursors.WaitCursor;
try
{
......
比如sql语句是:
SQL code:
select top 300
CA01.A_id as '变动次数',
CA01.A0188 as '人员id',
CA01.apname as '审批者',
CA01.CA0100 as '确认状态',
CA01.CA0101 as '变动类型',
CA01.CA0102 as '申 ......