基于oltp环境的统计表应用方法及系统的制作方法

文档序号:6614459阅读:244来源:国知局

专利名称::基于oltp环境的统计表应用方法及系统的制作方法
技术领域
:本发明涉及计算机网络应用领域,尤其涉及一种基于OLTP环境的统计表应用方法及系统。
背景技术
:计算机应用早已涉足各领域,运用计算机网络进行电子商务以及进行统计表的应用已是时代潮流。统计表是建立在对基表的统计基础上的一个汇总表,在OLTP(OnLineTransactionProcessing,联机事务处理)的高可用的环境下,基表数据量通常比较宠大,且数据还在不断的发生着变化,统计表中的记录会根据相应的原则进行更新,以达到满足应用的访问需求。统计表可以方便快捷地获取实时信息,并进行实时监控,由此对统计表应用也提出了更高的要求。在OLTP的环境下,系统基表是J^出表,用于实际存储特定数据库的元数据,用户通常需要对一些记录数比较多的基表按一定的规则实时进行统计。刚开始时,此统计策略可以满足应用的需求,性能也可以被接受,但随着用户数的增加,网站访问量成指凄t级的增长,该统计SQL(StructuredQueryLanguage,结构化查询语言)语句的执行频率也迅速升高。另外,平均每次统计要扫描的记录数不断增加,因而导致单次执行统计功能的SQL语句的平均代价COST也在不断增加。像大型电子商务网站,对于会员评价的统计,这种统计在面对一些星级较高的用户时,将变得异常困难。如果一个用户的评价数较多,那么其它一定数量的用户同时来查看该用户的评价展示页面时或者恶意刷新此评价页面时,这时就出现了数据库性能问题,用户请求的页面长时间无法打开,用户体验不好。还有比如说要监控用户的异常登陆行为次数,在遭受登陆攻击的情况下,记录用户登陆操作行为的基表记录数在短时间就很有可能达到十万的水平,那么此时即时判断用户登陆是否正常的统计SQL执行将会越来越慢,数据库服务器队列越来越长,应用服务器因不能快速得到数据库的返回结果,导致连接池队列变深,最终导致应用服务器crash。所以传统的采用直接对基表实时进行统计的方法,越来越不能满足业务发展的需要,这种统计方式迫切需要改变。现有技术中OLTP有一个显著的特点,就是SQL语句的执行非常频繁,而有些SQL语句则是完成统计功能的语句,这些语句的特点是a.耗CPU(CentralProcessingUnit,中央处理器)b.逻辑读或者物理读特别高,如果这一类的语句执行达到一定频率后,就会使数据库系统的性能下降,进而导致应用系统响应客户:^青求变'("曼。在OLTP的环境里,用户不可避免的要面对较高的访问量pageview。如上所述,采用直接对基表实时进行统计的数据库系统由于消耗了大量的CPU和较高的逻辑读或者物理读,而使数据库服务器的负载居高不下。而且采这种方法的还有一个比较大的缺点是系统抗攻击能力弱,对于大型电子商务网站来说,如果用户频繁刷新统计页面,或者不断恶意登陆,都会使数据库系统迅速出现性能问题,降低了整个业务系统的可靠性与连续性。
发明内容本发明提供一种基于OLTP环境的统计表应用方法及系统,以提高整个业务系统的可靠性与连续性,给用户优质的体验。为达到上述目的,本发明提供了一种基于OLTP环境的统计表应用方法,包括以下步骤应用服务器查询数据库;根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。所述应用服务器查询数据库之前还包括判断所述统计记录是否存在于应用服务器的緩存中,如果是且没有过期,则直接返回给用户;如果没有在緩存中或已过期,则进行统计表查询。通过设置在所述应用服务器的緩存中与统计记录关键字对应的时间过期标志判断是否过期。还包括预先在统计表中设置与所述统计记录关键字对应的时间过期标志。所述调用SQL语句对基表进行扫描,重新计算统计之后还包括将计算结果插入或更新到所述统计表,并緩存到应用服务器。本发明还提供了一种基于OLTP环境的统计表应用系统,包括应用服务器,用于查询数据库,并将查询结果返回客户端;数据库,用于根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。所述数据库具体包括期限判断单元,用于根据统计记录中的关键字判断统计表中对应的期限是否超出;反馈单元,用于当统计记录存在且没有过期,则将所述统计记录返回给用户;计算单元,用于没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。所述数据库还包括期限设置单元,与所述期限判断单元连接,用于预先在统计表中设置与所述统计记录关键字对应的时间过期标志。所述数据库还包括统计表更新单元,与所述期限判断单元连接,用于将计算结果插入或更新到所述统计表,并緩存到应用服务器。所述应用服务器具体包括緩存单元,用于緩存统计记录;判断单元,用于判断所述统计记录是否存在于应用服务器的緩存中,如果是且没有过期,则直接返回给用户;如果没有在緩存中或已过期,则进行统计表查询。与现有技术相比,本发明具有以下优点本发明是建立在统计表之上的统计策略,将使OLTP的数据库系统负载降低;抗攻击能力增强,提高整个系统的可靠性。图1为本发明实施例中基于OLTP环境的统计表应用方法流程图;图2为本发明实施例中应用服务器处理流程图;图3为本发明实施例中数据库处理流程图4为本发明实施例中基于OLTP环境的统计表应用系统结构图。具体实施例方式下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述本发明实施例一提供了一种基于OLTP环境的统计表应用方法,如图1所示,包括以下步骤步骤sl01,用户向应用服务器发出请求,要求调用统计记录。步骤s102,应用服务器进行处理。判断所述统计记录是否存在于应用服务器的緩存中,如果是且该统计记录没有过期(可以通过设置在所述应用服务器的緩存中与统计记录关键字对应的时间过期标志判断是否过期),则直接将该统计记录返回给用户;如果没有在緩存中或该统计记录已过期,则到数据库中进行统计表查询。本发明可以在应用服务器设置高速緩沖存储器Cache,直接返还给用户的统计策略,该方法具体包括根据要统计的结果对象的属性确定统计表的字段,并增加另外一个时间字段Update—Time,此字段表示此统计的更新时间,作为确定此统计记录是否失效的时间依据,如下表l中所示表l:根据统计对象建立的统计表<table>tableseeoriginaldocumentpage7</column></row><table>在表l中,主键可以看成一个要统计对象的ID,是对这条统计记录的唯一确定;统计字段A、B、C、D只是一个示例,可以根据具体的业务需求增加其它统计字#更。步骤s103,数据库服务器进行处理。数据库服务器预先在统计表中设置与所述统计记录关键字对应的时间过期标志,根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期(可以通过设置在所述数据库的统计表中的与统计记录关键字对应的时间过期标志判断是否过期),则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录,将计算结果插入或更新到所述统计表,并緩存到应用服务器。同理,数据库服务器中的统计表与表1相同,应用服务器中的时间过期标志与数据库服务器中的时间过期标志应该保持一致。本发明实施例二中,如果满足一定条件,统计记录可以只经过应用服务器处理,直接返回用户结果,不用再去访问数据库服务器,这是在应用服务器设置了相应的Cache取得的效果,具体过程如图2所示,包括以下步骤步骤s201,首先判断用户请求的统计记录是否在应用服务器的Cache中。步骤s202,如果存在,则判断数据是否过期,如果过期,则转步骤s203,如果没有过期,则转步骤s204。这个过期时间是一个阀值,其中只要与数据库里面统计表的Update—Time字段用于计算统计记录过期的逻辑判断保持一致,则统计服务器可以灵活设置。步骤s203,查询数据库。步骤s204,将该统计记录返回给用户。对应上述应用服务器细化的处理流程可以用伪代码表示如下if统计计录存在于应用服务器Cachethenif系统当前时间—此统计记录的生成时间Update—Time>=阀值then此统计记录过期,緩存无效,访问数据库;else此緩存的统计记录有效,返回给用户;endif;else访问数据库;endif;如果在应用服务器緩存的数据过期或者数据根本就不在应用服务器Cache中,需要查询数据库的统计策略。如图3所示,具体包括以下步骤步骤s301,统计服务器根据主键字段在统计表中查找统计记录,如果统计记录存在,则转步骤s302,如果统计记录不存在,则转步骤s307。步骤s302,判断统计记录是否过期,如果过期,转步骤s303,如果不过期,则转步骤s305。步骤s303,调用统计SQL重新计算。步骤s304,在统计表中更新该记录。步骤s305,在应用服务器緩存该统计记录,转步骤s306。步骤s306,将该统计记录返回给用户。步骤s307,调用统计SQL重新计算。步骤s308,插入该统计记录到统计表中,转步骤s305。现有技术中,在整个处理过程,调用统计SQL语句的步骤最消耗系统资源,但使用上述方法后,首先在统计表上设立时间过期字段,揭示了统计记录有效性的生命周期,其次建立在此设计方法上对统计信息的访问方式,先是应用服务器对已访问过的统计信息进行Cache,很多重复性访问在应用服务器就可以完成,不用再访问数据库,减少数据库压力;如果进入数据库访问,那么可以访问统计表,如果统计表中的记录不存在或者统计记录过期,才会调用统计SQL语句对基表扫描进行统计运算,此运算结果返回应用服务器Cache。整个系统相当于有两层Cache,—层在应用服务器,另外一层可以把数据库层的统计表看成是一层Cache,如果在这两层都失效,才会调用统计SQL扫描基表进行统计计算,大大减少统计SQL语句的执行次数。而对于大部份的访问,基本上都会在应用服务器Cache中命中,这样可以极大的提高凄t据库系统的抗攻击能力。使用本实施例中的方法,还有一个特点就是,比如说会员评价的统计表,举一个极端的例子,如果一个会员的评价信息从来不被任何人访问,那么统计表中不会有他的统计记录;如果一个会员的评价很久都不被人访问,那么他的评价统计记录肯定是早就过期了,但不会更新他的统计记录,直到有人^方问为止。本发明还提供了一种基于OLTP环境的统计表应用系统,如图4所示,包括应用服务器100,用于接收来自用户的统计记录,并转发至数据库;数据库200,用于根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。所述数据库200具体包括期限判断单元210,用于根据统计记录中的关键字判断统计表中对应的期限是否超出;反馈单元220,用于当统计记录存在且没有过期,则将所述统计记录返回给用户;计算单元230,用于没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。期限设置单元240,与所述期限判断单元210连接,用于预先在统计表中设置与所述统计记录关4建字对应的时间过期标志。统计表更新单元250,与所述期限判断单元210连接,用于将计算结果插入或更新到所述统计表,并緩存到应用服务器。所述应用服务器IOO具体包括緩存单元IIO,用于緩存统计记录;判断单元120,用于判断所述统计记录是否存在于应用服务器的緩存中,如果是且没有过期,则直接返回给用户;如果没有在緩存中或已过期,则进行统计表查询。通过以上实施例的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台网络设备导丸行本发明各个实施例所述的方法。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求1、一种基于OLTP环境的统计表应用方法,其特征在于,包括以下步骤应用服务器查询数据库;根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。2、如权利要求1所述基于OLTP环境的统计表应用方法,其特征在于,所述应用服务器查询数据库之前还包括判断所述统计记录是否存在于应用服务器的緩存中,如杲是且没有过期,则直接返回给用户;如果没有在緩存中或已过期,则进行统计表查询。3、如权利要求2所述基于OLTP环境的统计表应用方法,其特征在于,通过设置在所述应用服务器的緩存中与统计记录关键字对应的时间过期标志判断是否过期。4、如权利要求l所述基于OLTP环境的统计表应用方法,其特征在于,还包括预先在统计表中设置与所述统计记录关键字对应的时间过期标志。5、如权利要求1所述基于OLTP环境的统计表应用方法,其特征在于,所述调用SQL语句对基表进行扫描,重新计算统计之后还包括将计算结果插入或更新到所述统计表,并緩存到应用服务器。6、一种基于OLTP环境的统计表应用系统,其特征在于,包括应用服务器,用于查询数据库,并将查询结果返回给客户端;数据库,用于根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。7、如权利要求6所述基于OLTP环境的统计表应用系统,其特征在于,所述数据库具体包括期限判断单元,用于根据统计记录中的关#:字判断统计表中对应的期限是否超出;反馈单元,用于当统计记录存在且没有过期,则将所述统计记录返回给用户;计算单元,用于没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。8、如权利要求7所述基于OLTP环境的统计表应用系统,其特征在于,所述数据库还包括期限设置单元,与所述期限判断单元连接,用于预先在统计表中设置与所述统计记录关^t字对应的时间过期标志。9、如权利要求7所述基于OLTP环境的统计表应用系统,其特征在于,所述数据库还包括统计表更新单元,与所述期限判断单元连接,用于将计算结果插入或更新到所述统计表,并緩存到应用服务器。10、如权利要求6所迷基于OLTP环境的统计表应用系统,其特征在于,所述应用服务器具体包括緩存单元,用于緩存统计记录;判断单元,用于判断所述统计记录是否存在于应用服务器的緩存中,如果是且没有过期,则直接返回给用户;如果没有在緩存中或已过期,则进行统计表查询。全文摘要本发明提供一种基于OLTP环境的统计表应用方法,包括以下步骤应用服务器查询数据库;根据所述统计记录的关键字在统计表中查询统计记录,如果统计记录存在且没有过期,则将所述统计记录返回给用户;如果没有统计记录或统计记录已过期,则调用SQL语句对基表进行扫描,重新获取统计记录。本发明提供一种基于OLTP环境的统计表应用系统。本发明是建立在统计表之上的统计策略,将使OLTP的数据库系统负载降低;抗攻击能力增强,提高整个系统的可靠性。文档编号G06F17/30GK101430687SQ20071018810公开日2009年5月13日申请日期2007年11月9日优先权日2007年11月9日发明者林赵申请人:阿里巴巴集团控股有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1