数据库: sql 2000
系统运行2年来,数据库单表已经达到 600万条,数据库mdf文件已经达到9G,在当初设计时我已经对部分表和数据仓库按照年份、月份分割成多个表单了,现在客户反映速度慢下来了。
    我想把数据仓库的表移动到一个新的库中,让数据录入的人和大数据查询的人操作的数据分开,但是我不知道数据库多库联合查询,对查询效率有多少影响?
    而且刚新上一个模块,大约有1000个用户在19:00左右同时录入数据,其余时间空闲,大家有什么好的建议?

解决方案 »

  1.   

    数据库优化,不是很懂
    录入库最好不建什么索引之类的,定期作个触发器,把一些数据倒到另外的带索引的查询表中
    多表多数据库查询,利用selecte top 等方法,可以每1000条触发 一次查询,反正显示也是一页一页的显示
      

  2.   

    那又没有做一下数据库分析看看到底是哪些操作慢了?
    另外检查一下你的分区视图,看看对你的select 语句生成的查询计划是不是应用到了你定义的约束?
    用日期作的分区视图经常会因为查询的时候传递的日期的类型有问题 造成分区视图应用不正常。
      

  3.   

    比方如果你的分区约束字段是datetime类型
    select * from all_part_view where sdate >'2006-1-1'
    这样的语句就不会正常使用到分区
    要这样写
    select * from all_part_view where sdate >cast('2006-1-1' as datetime)不知道 你的实际情况怎么样,希望这些对你有帮助!
    ^_^
      

  4.   

    分区视图对OLTP比较有作用,但查询就不一定,具体要看执行计划。
    如果执行计划没有用分区字段查找,最好能确定查询的时间段,
    按时间段生成一个临时的查询用分区视图。如果没有其它的机器的话,不如在别的硬盘上再建一个文件组,
    把查询用的表放在这个文件组里。