要记录一个业务内容,由于字段很多可能有160个左右,并且有的字段值很大,有5个可能要1000个左右,有十几个要500个左右的,这是一个主表,记录业务的全部内容,一条记录就是一个业务内容,为了不影响表的访问速度,从表优化的角度来说请问是,这些字段是都放在一个表中好,还是分成两个表,用命令联接一下要好一些.请分析一些!谢谢!

解决方案 »

  1.   

    create table tb(col varchar(8000),col2 char(100))
    go
    /*警告: 已创建表 'tb',但其最大行大小(8123)超过了每行的最大字节数(8060)。如果结果行长度超过 8060 字节,
    则此表中行的 INSERT 或 UPDATE 将失败。*/
     drop table tb
      

  2.   

    SQL Server每行(不含text/image)最多只让占用一个data page(8192 但系统还要一部分空间来写Tag)
      

  3.   

    列多少对速度应该影响不大,记录多少才是影响查询速度的主要原因.
    主要看每条记录是否字段值都要如LZ描述的一样,如果不是每条记录都要用到所有字段,比如有多种情况,每种情况只是用到其中的部分字段,可考虑多表.
    另:字段值过大(字符过多),可考虑用text类型.160个字段,不是每个都独立的吧.
    另:1楼 8060应该量指一条语句的长度吧
      

  4.   

    通常情况下单表性能好,但长冗余, 连表减冗余但性能稍逊.
    你这个问题,从业务上来看,是不需要分表的,但是你的情况特殊,是单表不能满足要求才要分表的,而不是为了减冗余而分表的,所以基本上没什么选择余地
    单表也可以存下,放160个image字段, 但是这种做法糟糕透了.