最近遇到一个头疼问题,Sql2005数据库其中有张表的数据在2000万左右,关键问题是针对这张表的访问非常频繁,大约每秒钟访问5次,并且每次读取一条的时间不能超过150毫秒,我曾经试过分区、建立索引,有为老大说索引并不是越多越好,多了反而变得慢了,于是目前只有4个所以,现在有个问题是数据库文件巨大,在1500万数据的情况下,文件已经60G了,我数据库设置的是简单模式,不知道各位老大有什么好的优化解决方案???再一个问题是在生产的时候,因为实时访问速度很快,如果有其他用户通过某个客户端查询数据库,当查询与这张大表有关的业务时,生产车间的生产速度就会瞬时慢下来,有什么解决方案可以不影响生产车间的速度呢????针对上面的问题,曾经有人建议我做两个数据库,在这个数据库中做个同步服务,这样的话,会不会对这个在用生产的数据库造成很大的负荷?因为这样的话 我觉得 理论上是 每隔几秒钟 就要去更新 其他数据库的值,所以这个不是很明白,会不会影响效率???
再一个问题是聚镞索引问题,聚镞索引影响数据在磁盘的存储位置和排列顺序,那么,如果我改变了聚镞索引中某个字段的值,那么这条数据会不会重新在磁盘上排列???如果重新排列的话会不会影响效率呢??因为我的实时交互太快以上几个问题困扰了好久,各位老大们多多赐教!!多谢多谢~~~另外有什么好的、活跃的SqlServer QQ群,麻烦告知下多谢!!!

解决方案 »

  1.   

    再一个问题是聚镞索引问题,聚镞索引影响数据在磁盘的存储位置和排列顺序,那么,如果我改变了聚镞索引中某个字段的值,那么这条数据会不会重新在磁盘上排列???如果重新排列的话会不会影响效率呢??因为我的实时交互太快 聚集索引按照物理地址排序 B+树 改变了字段的值  当然会重新排列 会影响效率的
      

  2.   

    现在有个问题是数据库文件巨大,在1500万数据的情况下,文件已经60G了,我数据库设置的是简单模式,不知道各位老大有什么好的优化解决方案??? 只能定期清理日志文件了  
      

  3.   

    再一个问题是在生产的时候,因为实时访问速度很快,如果有其他用户通过某个客户端查询数据库,当查询与这张大表有关的业务时,生产车间的生产速度就会瞬时慢下来,有什么解决方案可以不影响生产车间的速度呢???? 
    只能通过索引和优化语句来提高速度了 可以考虑分区表的
      

  4.   

    如果改变了聚镞索引中某个字段的值,那么这条数据会不会重新在磁盘上排列有可能
      

  5.   


    简单模式只能减慢日志增长速度  还是有日志的
      

  6.   

    把 聚镞索引 改为 非聚镞索引 好不好??考虑数据量大和访问速度快的情况,这两者那个更好一点?
      

  7.   

    优化程序,让用户尽量通过存储过程访问该表
    在存储过程中,尽量按照索引顺序排列查询条件
    索引,少建立
    聚集索引建立在最能缩减查询范围,且部分平均的字段上,比如时间然后就是分区表,,尽量分在不同硬盘上还不行,,,就拆表,,拆成历史表,,,或   分类表想办法在业务逻辑上把表拆成多部分,数据库的优化手段用完了,,,就只有从,,,业务,,,或者,,,,程序上想办法
      

  8.   

    拆表吧
    一个历史 一个实时