在存储过程中,为了不去记忆字段长度,况且又是不敏感的字段,
我定义所有的字符串类型都为varchar(100)
这样会不会影响效率?

解决方案 »

  1.   

    =============create test datacreate table test_a
    ([id] int, [name] varchar(100))create table test_b
    ([id] varchar(100), [name] varchar(100))insert into test_a
    select employeecode, employeename
    from mstemployeebasic
    select * from test_ainsert into test_b
    select cast(employeecode as varchar(100)) , employeename
    from mstemployeebasic
    select * from test_b运行
    各段时间消耗
    query1: 0.00%
    query2: 0.00%
    query3: 38.62%
    query4: 11.29%
    query5: 38.62%
    query6: 11.47%看来也就是会影响检索的速度
      

  2.   

    定义为varchar的字段效率会低一些
      

  3.   

    varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节不会太影响效率
      

  4.   

    不会吧,我觉得应该VARCHAR效率高,占内存少,所以我一直是能用CHAR或者VARCHAR的,我一律都用VARCHAR.如果一个比列的长度小的值被插入到 char NOT NULL 列中,则值的右边以空格填补剩余的位置,这样应该效率稍微受影响,还有占用内存和磁盘的空间也不同