情况描述:数据量比较大,而且随着时间增加不断增大,已经对表进行按年分表,并且按月进行分区。但现在需要在数据表中计算,最大的计算时间段为整年、不跨年。由于计算的东西非常多,一个程序效率不够。计算的大部分都是由存储过程实现的。
请各位大侠:能否分多个程序进行计算,来提高效率?
或者有更好的实现?
谢谢,跪求指教。小弟初入水,分不够。

解决方案 »

  1.   

    如果对结果(报表)要求的精度不高,例如报表是统计概况或求平均等等,
    可以考虑使用低的事务隔离级别:read uncommited,也就是俗称的脏读.
    这样可以减少大量的锁定(Lock).
      

  2.   

    数据库并发问题详述:
    http://blog.csdn.net/chenyu5188/archive/2004/02/15/13953.aspx
      

  3.   

    并发并不是万灵药,不是一些东西只要一并发,性能就能迅速提上来的.
    数据库里面没有一个"fast=true"的简单开关先检查算的慢的原因是不是你的sql级导致的吧...
    看看执行计划,多加点print打出时间,看看哪些步骤耗时较多.在确保sql语句级没有问题之后再去着手实例的优化
      

  4.   


    一般要按日、周、月、季度、年来统计read uncommited如何设置,会有多大误差?
      

  5.   

    一般写入表里的数据就不再修改了吧?所以误差其实很小很小.
    方法是: select * from [表名] with (nolock)
      

  6.   

    这个请指示一下啊,具体怎么操作?
    什么样的查询效率对SQLServer才算合理呢?