none
各位大师,这样的“数据分层汇总”过程应该怎样优化??? RRS feed

  • 问题

  • 各位大师,这样的“数据分层汇总”过程应该怎样优化???


    1、数据由“采集端”过来,一天大概有“6500*24*4=624000”条数据写入数据库。      一天86400秒,这样一秒要写“624000/86400=8”条数据。

    2、一条数据过来,要经过一系列复杂的过程。过程如下:
       (1)判断数据的合法性,处理报警信息。
       (2)数据插入历史数据表。
       (3)判断数据是否需要计算“增量”。不需要计算的话,插入另一个表。
       (4)需要计算的话,判断增量是否为“0”。
       (5)增量不为零,数据插入基础表的“年表、月表、日表、时表”。
       (6)分别计算,“A、B、C、D、E”类对应的“年表、月表、日表、时表”数据,也就是“20张表”数据的计算、插入、更新。需要计算“年、月、日、时”的“同比、环比”,单位转化值等,有大量的计算和查询。几乎查表的库中所有的信息表,完成了汇总。

    3、这样的汇总现在由“一个存储过程”完成,“计算量、查询量”都非常的大。写入一条数据要“30”到“60”秒,离一秒钟“8”条数据的要求差别太大。    
       要确保展示的是最新的数据,所以数据又必须实时的汇总,也就是及时的汇总,因此不能采用“作业”进行批量处理。


        这样的话应该怎么办呢?这样的“及时的大量的数据”应该如何处理???    还请各位大师多多指教。

    Science and technology is my lover.

    2012年10月24日 10:54

答案

全部回复

  • Maybe let front end do some work?
    2012年10月24日 13:00
  • 个人感觉可以分开的思想,例如:分表,分库,分硬盘,分服务器,把数据分开到别的表,库或者硬盘里,那么一秒插入8条数据就变成插入4条数据或者2条数据

    然后再做同步


    给我写信: QQ我:点击这里给我发消息

    2012年10月24日 15:21
  • 在前端做事情,这样前端取数据的效率就受影响了啊。。。


    Science and technology is my lover.

    2012年10月25日 0:49
  • 可以考虑用 SSIS 去处理里面的大部分步骤
    2012年10月25日 0:51
  • 还有别的方式吗???      大师,如果开发一个“CS”客户端处理数据,将处理后的数据再写入数据库,效率会怎样???     会更快吗???

    Science and technology is my lover.

    2012年10月25日 1:08
  • 谢谢大师。干的事情太多了,其实是多个存储过程相互调用完成的。

    如果开发一个客户端软件,开启“几十”个线程,同时去写入数据库。“异步”的将数据写入数据库中不同的表这样可以吗???


    在“存储过程”中必须要“顺序执行”,所以比较慢,“不能并发”。。。


    如果是客户端软件采用“多线程”,将“原有汇总”的存储过程拆分,然后同时写入,这样就支持“并发”了。


    这样就是“几十”个线程“同时对数据库”的访问会比较多,不知可不可以?

    Science and technology is my lover.

    2012年10月25日 2:03
  • 你在客户端采用多线程,实际上在SQL看来都是顺序执行的,SQL检测到你的查询比较复杂的时候会采用并行查询

    而且查询多了会容易引起阻塞,所以正如我上面所说分开的思想会比较好


    给我写信: QQ我:点击这里给我发消息

    2012年10月25日 2:27
  • 或者你可以看一下这篇文章,SQLSERVER是如何调度的

    SQLSERVER独特的任务调度算法"SQLOS


    给我写信: QQ我:点击这里给我发消息

    2012年10月25日 2:29
  • 各位大师,小弟的思路可行吗???

    Science and technology is my lover.

    2012年10月25日 4:14
  • 各施各法,良好设计能解决90%的问题。主要还是关注数据的特点

    比如是7*24的写入数据?还是有空余时间不写。。若是,则利用空余时间做聚集汇总,就不需要每一条去更新一次汇总

    方式、手段多,只能说实事求是。。。


    Try SQL Server 2008 QQ:315054403 dgdba@hotmail.com

    2012年10月25日 8:54