1.用datetime效率高,datetime固定8字节,用字符的话要用14字符,在检索上,如果要做时间处理,还要进行处理,得不偿失2.当然是char效率高,char是定长的3.只算14个字符,null不算入索引4.text/ntext/image字段上不能建索引

解决方案 »

  1.   

    2.当然是char效率高,char是定长的3.只算14个字符,null不算入索引
    于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
    如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
    反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
    另外还有一个问题,记得oracle里如果利用一个索引select出来的row多于总行数的5%,那这个索引就没有什吗意义。sqlserver里是这样吗?
      

  2.   

    oracle是这样的,sql中也是,对于索引来说,重复的数据越少越好.
      

  3.   

    2.当然是char效率高,char是定长的3.只算14个字符,null不算入索引
    于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
    如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
    反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
    另外还有一个问题,记得oracle里如果利用一个索引select出来的row多于总行数的5%,那这个索引就没有什吗意义。sqlserver里是这样吗?
      

  4.   

    1、如果某一个是用来表示时间的列上建立索引,是不是用如yyyymmddhhmmss这样的char来描述
    比直接用datetime型描述,索引的效率要高得多?datetime 小数型的 char 效率高2、同样一个列上建索引,是建在varchar(20) 上效率高还是 建在char(20) 上效率高?
    为神马?;char(20) 固定宽度3、varchar(20)只存了14个字符,在计算索引的宽度时,这算多少?如果是null呢?4、什么样数据类型的列上不能建索引?Image Bool Text blog
      

  5.   

    于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
    如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
    反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?
      

  6.   

    于是这就有一个问题,某一列的数据长度可能在5-15之间,但99%的数据都是10个字节,
    如果用varchar(20)的话,索引的宽度就短,这样效率比较高,
    反过来如果用char(20)的话,索引的是定长的,效率比较高,如何取舍?