SQLServer2005中的数据定时统计方法研究.docVIP

SQLServer2005中的数据定时统计方法研究.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer2005中的数据定时统计方法研究.doc

SQLServer2005中的数据定时统计方法研究   摘要:在软件系统研发过程中,数据统计汇总的效率始终是难点,如何快速有效地将零碎的业务数据统计汇总成报表数据,成为数据库开发人员的研究重点。文章介绍了一种基于视图+存储过程+静态数据表+任务的方式,对报表数据进行定时统计汇总。   关键词:SQLServer2005;数据定时统计方法;业务数据;报表数据;数据库 文献标识码:A   中图分类号:TP311 文章编号:1009-2374(2016)17-0021-03 DOI:10.13535/j.cnki.11-4406/n.2016.17.009   1 概述   SQLServer数据库是Microsoft公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98的膝上型电脑到运行Microsoft Windows 2012的大型多处理器的服务器等多种平台使用。目前最新版本是SQLServer2012。本文主要针对日常工作中比较常用版本SQLServer2005进行分析,研究其数据定时统计的相关方法,并附实例加以说明。   2 软件项目数据统计中遇到的问题   在日常工作中,我们会经常遇到类似于这样的问题:“一张统计报表需要从十几张,甚至几十张业务基础数据表中汇总。”传统的处理方法是直接拼接SQL查询语句,然后将查询结果传递给报表控件,这样的处理方法看似没有问题,但随着业务数据的不断增加,用户打开报表的速度越来越慢,最后报表直接无法打开或者打开需要很长时间,从而导致整个项目的用户体验大打折扣。   3 数据定时统计方法的研究   面对这一问题,我们可以采用数据定时统计的方法将基础业务数据的统计结果保存在一张业务表中,然后数据报表直接从统计结果表中获取数据,如此一来,数据统计效率大大提升,同时也简化了报表编码的复杂度。   我们在SQLServer2005中编写基础业务数据统计视图,然后建立与视图结构一致的数据表,同时编写存储过程将视图统计的结果性数据同步到结果表中,最后采用SQLServer2005的定时任务,定期执行同步数据的存储过程即可,具体实现方法及步骤,如图1所示。   案例说明:   定时统计各单位累计消费情况:   第一步:创建视图   CREATE VIEW [V_ORG_ CONSUME]   AS   SELECT O.CODE_,O.NAME_, SUM(C.MONEY_) AS TOTALMONEY_   FROM T_ CONSUME AS C   LEFT JOIN T_ACTOR AS A ON A.ID=C.ACTORID_   LEFT JOIN T_ACTOR_ORG AS AO A.ID=AO.ACTORID_   LEFT JOIN T_ORG AS O ON AO.ORGID_=O.ID   GROUP BY O.ID,O.CODE_,O.NAME_   ORDER BY ID   第二步:创建统计结果表   CREATE TABLE [TV_ORG_ CONSUME](   [ID] [bigint] NOT NULL,   [CODE_] [varchar](100) NULL,   [NAME_] [varchar](200) NULL,   [TOTALMONEY_] [float]NULL   PRIMARY KEY CLUSTERED   ([ID]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS= ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]   ) ON [PRIMARY]   第三步:创建数据同步存储过程   数据同步插入存储过程:   Create procedure [P_ORG_ CONSUME_INSERT]   @ID int,   @CODE_ varchar,   @NAME_ varchar,   @TOTALMONEY_ decimal(18, 10)   as   declare @sum int   begin tran   insert into TV_ORG_ CONSUME(ID,CODE_,NAME_, TOTALMONEY_)   values(@ID,@ CODE_,@ NAME_,@ TOTALMONEY_)   select @sum = count(*) from TV_ ORG_ CONSUME

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档