一种数据库分区方法和分区装置的制作方法

文档序号:6340473阅读:187来源:国知局
专利名称:一种数据库分区方法和分区装置的制作方法
技术领域
本发明涉及涉及通信技术领域,特别是涉及一种数据库分区方法和分区装置。
背景技术
目前,随着通讯技术的迅速发展,电信网络的日益复杂,电信网管系统中的报表功 能也日渐备受关注,因为整个电信网络设备的性能指标、运行详细状况等信息都需要从报 表中获取,报表功能是网管系统维护人员使用最频繁的功能之一。由于电信行业的性能数据巨大,而oracle数据库是正好适合大数据量处理的磁 盘数据库,因此一般大型网管系统中会采用oracle数据库。具体而言,通过在oracle数据 库中建立数据库性能表,并将一类管理对象的若干性能指标作为性能数据存储在相应的数 据库性能表中;其中,数据库性能表可采用分区技术,例如,在按照时间进行分区时,一般一 天或者一周的性能数据保存在一个分区中。通常情况下,现有的数据分区表中的分区通常是以固定的时间间隔作为分区标 准,例如,每天一个分区是以某一天的00:00:00开始到第二天的00:00:00结束,每周一个 分区也会以一周的第一天的00:00:00开始到下一周的第一天的00:00:00结束。此种分区 方法对于查询以零点开始并且以零点结束的相关数据较为方便。若查询的数据是以一天的 某一个特定时间开始,如第一天上午8点到第二天上午8点,那么需要获取这一段时间的数 据有两种存取方法,方法一是通过在2个分区上进行索引扫描,方法二是对2个分区进行全 表扫描,因为这2个分区中,每个分区上满足条件的记录和该分区总记录条数的比值比较 大,因此,一般情况下方法二更加有速度优势,但方法二实际需要扫描两天的数据记录,扫 描的数据量较大。另外,如果只需要获取某一时间段的数据,如上午8点到下午3点的数据, 全表扫描时也需要扫描一天的数据记录。因此,这种使用固定的时间间隔的分区策略,在生 成报表时,报表所需的数据通常只是各分区的某一部分,以全表扫描的方式扫描分区时,却 需要扫描分区的每一条记录,因而扫描到很多不满足条件的记录,增加了查询的时间。

发明内容
本发明所要解决的技术问题是提供一种数据库分区方法和分区装置,能够针对不 同的报表需要对数据库进行分区,缩短数据查询扫描的时间。为了解决上述问题,本发明公开了一种数据库分区方法,用于对数据库进行分区, 包括以下步骤获取多种所需报表类型;根据多种所需报表类型的时间节点来确定数据库分区规则;根据确定的数据库分区规则对数据库进行分区。进一步地,所述根据多种所需报表类型的时间节点来确定数据库分区规则包括确定所需报表的时间节点,以相邻两个时间节点作为时间段,一个或多个分区对 应存储一个时间段内的数据。
进一步地,所述方法还包括将确定的数据库分区规则写入配置文件中,采用定时任务自动根据配置文件创建 分区。进一步地,所述方法还包括在分区中创建子分区。进一步地,在分区中创建子分区包括判断所需报表中所需数据的查询条件是否包含对除时间以外的其他条件,若需 要,则根据对应的查询条件确定数据库子分区规则;反之,则不做处理。进一步地,所述其他查询条件为所需报表中是否需要对部分网元的数据进行查 询统计。为了解决上述问题,本发明还公开了一种数据库分区装置,包括报表类型获取模块,用于对各种报表类型进行判断,并获取各种报表的时间节占.^ \\\ 分区规则确定模块,根据报表时间节点信息,将每两个相邻节点确定为一个时间 段,并确定数据库分区规则;分区模块,根据分区规则对数据库进行分区。进一步地,所述分区装置还包括判断模块,判断报表中是否需要对其他查询条件的数据进行统计。与现有技术相比,本发明具有以下优点本发明的数据库分区方法和分区装置通过对用户所需报表的时间节点进行分析, 并按照时间节点来定制分区规则,从而保证全网日报表和忙时报表等各种报表的数据,最 好地符合分区全表扫描策略的特点,使分区全表扫描时可以获取所需数据,并且扫描到的 不满足查询条件的记录达到最少,从而减少了查询扫描所需要的时间,提高了全表扫描的 效率,显著地提高性能,也使很多原本需要索引扫描的情况转而可以使用全表扫描。进一步地,根据报表中是否需要其他的查询条件,例如,查询条件中是否指定需要 某个或者某些RNC的数据,对各分区再进行子分区,当报表需要相应的数据时,可以直接对 子分区进行全表扫描,并且扫描到的不满足查询条件的记录达到最少,也无需使用索引扫 描,减少了相应的查询扫描时间。


图1是本发明的--种 女据库分区方法实施例一的流程图;图2是本发明的--种 女据库分区方法实施例二的流程图;图3是本发明的--种 女据库分区方法实施例三的流程图;图4是本发明的--种 女据库分区装置的实施例一的结构示意5是本发明的-一种 女据库分区装置的实施例二的结构示意图
具体实施例方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实 施方式对本发明作进一步详细的说明。
本发明可以应用于电信网管系统中的数据库的分区中,以根据需要生成报表。其 中,数据库可以是oracel、mySql、mSSql等。生成报表实质上就是一个或者多个数据库性 能表中的性能数据的查询汇总。例如,全网性能报表是对所有管理对象的某时间段内的性 能数据进行汇总;非全网性能报表则只是对部分管理对象的、某时间段内的性能数据进行 查询汇总。又如,常见的全网小区性能报表即对该网管系统所管理的全部小区的性能数据 制作性能报表,实质上是对小区性能表指定时间段进行查询,查询条件中不限定小区,即对 所有小区的某时间段内的性能数据进行汇总;而非全网的小区性能报表则只是对部分小区 的、某时间段内性能数据进行汇总。参照图1,示出本发明的一种数据库分区方法实施例一,包括以下步骤步骤101,获取多种所需报表类型。所需要的报表类型,可以根据实际的情况来确定,一般来说,工作人员做的性能报 表年份、月份、日期是变化的,而时间点(时分秒)不变,例如,某局日报表,起始时间都是 早上8:00,结束时间都是第二天早晨8:00,虽然日期每次做报表都变化,但是8:00这个时 间点却不变化。即使特殊情况下,某些类型报表的时间点会变化,但大多数类型报表的时间 点会比较稳定,需要获取这些时间点比较稳定,不经常变化的报表。例如,需要某一天的全 网日报表,或者某一时段的全网时段报表。通常情况下,对于电信网络的报表包括全网日报 表、全网忙时报表、全网月报表、部分小区的日报表、某个RNC(Radio Network Controller, 无线网络控制器)下全部小区的日报表、部分小区的月报表等。步骤102,根据多种所需报表类型的时间节点来确定数据库分区规则。根据前一步骤中所获取的多种所需报表时间,找出各所需报表时间的时间节点, 使报表需要的数据限定在某个或者多个分区中,并且报表一旦需要某个分区的数据,则报 表需要该分区的所有数据,从而可以确定数据库的分区规则。例如,其中一个所需报表时 间为某一天的00:00:00到第二天的00:00:00这一时间段,另一所需报表时间为某一天的 10:00:00到140000。这两个报表的时间节点为000000、100000和14:00:00,那么可 以根据这三个时间节点来确定数据库的分区规则,即00:00:00到10:00:00为一个时间段, 10:00:00到14:00:00为一个时间段,14:00:00到00:00:00为一个时间段,每一个时间段 的数据存储在一个单独的分区内。具体的规则可以根据不同的时间段来进行确定。为了避免根据时间段划分的分区时间范围过大,导致单一分区存储的数据过多, 而对数据库的管理及查询等产生诸多不良影响,因此除了按照时间节点进行分区外,还加 上一个补充规则设一个最长分区时间间隔Τ(τ可设置),每个分区的长度不能超过Τ。超 过时需要调整为多个T时间间隔的分区和1个小于或者等于T的分区。举例如下例如T = 12小时,根据时间节点得到的某分区时间范围为00:00:00 14:00:00,则需要将分区规则调整为00:00:00 12:00 —个分区,12:00 14:00 —个分 区。步骤103,根据确定的数据库分区规则对数据库进行分区。根据前一步骤数据库分区规则,可以对数据库进行分区,以使不同时间段的数据 可以存入不同的分区内,便于后续的查询扫描,节省查询时间。下面结合具体实例对上述实施例进行详细的说明。假设某移动局需要做全网日报表和全网忙时报表。其中,全网日报表一般分为2种,一种是第一天的0点到第二天的0点(如2008-08-08的00:00:00到2008-08-09的 00:00:00),另外一种是前一天17:00:00到当天17:00:00,另外忙时设置在8:00:00到 10:00:00。首先确定三种报表的时间节点,分别为00:00:00、8:00:00、10:00:00及 17:00:00。那么根据确定的时间节点可以确定如下的数据库分区规则,其中,00:00:00到 8:00:00 为一个时间段,8:00:00 到 10:00:00 为一个时间段,10:00:00 到 17:00:00 为一个 时间段,17:00:00到00:00:00为一个时间段。根据确定的数据库分区规则来将数据库分为A、B、C、D四个分区,分别与前面的四 个时间段相对应,即,将每天的数据分别存放在四个分区内。那么,当用户需要某天的00 00 00到第二天00 00 00的全网日报表时,只需要对该天的A、B、C、D四个分区做分区全表扫描,不需要使用索引,就能够最快地获取需要的数 据。当用户需要做前一天17:00:00到当天17:00:00的全网日报表时,只需要依次对 D(前一天的分区)、A(当天的分区)、B(当天的分区)、C(当天的分区)进行分区全表扫 描,同样不需要使用索引,以最快地获取需要的数据。当用户需要做8:00:00到10:00:00的忙时报表时,只需要对B分区分区全表扫描,同样不需要使用索引,就能够最快地获取需要的数据。进一步地,若用户需要全网月报表时,也可以直接根据全网月报表所需要的时间 来选择对应的分区进行扫描。因为数据库中根据不同时段进行了分区,所以如果某报表仅需要某一分区或者多 个分区内的全部数据时,则可以仅采用分区全表扫描的方式,而无需采用索引,从而提高了 报表生成的速度。因此,这种情况下,在SQLGtructured Query Language,结构化查询语 言)查询时使用全表扫描提示,使执行方式更加稳定。参照图2,示出本发明的一种数据库分区方法的实施例二,包括以下步骤步骤201,获取多种所需报表类型。步骤202,根据多种所需报表类型中的时间节点来确定数据库分区规则。步骤203,将确定的数据库分区规则写入配置文件中,采用定时任务自动根据配置 文件创建分区。例如,对于oracle数据库,则可以使用iob作为定时任务,自动的根据配置文件来 对数据库创建分区。通过将分区规则写入配置文件,并采用定时任务自动根据配置文件创建分区的方 式,可以使系统根据分区规则自动创建分区,避免因为人为的操作而出现的失误。参照图3,示出本发明的一种数据库分区方法的实施例三,包括以下步骤步骤301,获取多种所需报表类型。步骤302,根据多种所需报表类型中的时间节点来确定数据库分区规则。步骤303,判断所需报表中所需数据的查询条件是否包含除时间以外的其他条件, 若需要,则根据对应的查询条件确定数据库子分区规则,并进行步骤304A ;反之,则进行步 骤 304B。步骤304A,根据确定的数据库分区规则对数据库进行分区,并根据数据库子分区规则对数据的分区进行子分区。步骤304B,根据确定的数据库分区规则对数据库进行分区。其他查询条件可以是是否需要部分网元(某个或者某些网元,非全部网元)的数 据进行查询统计,例如,全网内可能存在多个RNC,某些报表需要对全网内的某一个或者部 分RNC的数据进行统计,或者对某一时间段内的部分或者全部RNC的数据进行统计。因此, 报表中如果需要对全网内的所有RNC或者某一 RNC的数据进行统计,则根据RNC来将分区 分为若干个子分区,若不需要,则直接根据步骤302中确定的数据库分区规则来对数据库 进行分区。其中,数据库子分区规则可以根据RNC标识来确定。例如,假设全网内共有共有 十个RNC,则可以将分区再次分为十个子分区,每一子分区对应一个RNC。那么当需要某一 RNC或者某一 RNC下的一个或者几个小区的全网日报表、全网月报表时,则可以直接对每一 分区中对应的子分区进行查询扫描,而无需对每个分区进行查询扫描,可以节省时间。参照图4,示出本发明实施例一的一种数据库分区装置100,包括报表类型获取模 块10、分区规则确定模块20及分区模块30。报表类型获取模块10,用于对各种报表类型进行判断,并获取各种报表的时间节 点,然后将报表时间节点信息传递给分区规则确定模块。分区规则确定模块20,根据获取的时间节点,将每相邻两个节点之间的时间确定 为一个时间段,初步确定数据库分区规则,并在最长分区时间间隔T的约束下对分区规则 进行微调,从而确定最终的数据库分区规则。分区模块30,根据分区规则确定模块20所确定的分区规则对数据库进行分区,以 存储不同的数据。参照图5,进一步地,该数据库分区装置100还包括判断模块50,判断报表中是否 需要对其他查询条件的数据进行统计,如对RNC进行统计,若需要,则将信息传递给分区规 则确定模块20,分区规则确定模块20根据信息确定数据库子分区规则。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与 其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于系统实施例 而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部 分说明即可。以上对本发明所提供的一种数据库分区方法和分区装置进行了详细介绍,本文中 应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助 理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想, 在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本 发明的限制。
权利要求
1.一种数据库分区方法,用于对数据库进行分区,其特征在于,包括以下步骤 获取多种所需报表类型;根据多种所需报表类型的时间节点来确定数据库分区规则; 根据确定的数据库分区规则对数据库进行分区。
2.如权利要求1所述的方法,其特征在于,所述根据多种所需报表类型的时间节点来 确定数据库分区规则包括确定所需报表的时间节点,以相邻两个时间节点作为时间段,一个或多个分区对应存 储一个时间段内的数据。
3.如权利要求1所述的方法,其特征在于,所述方法还包括将确定的数据库分区规则写入配置文件中,采用定时任务自动根据配置文件创建分区。
4.如权利要求1所述的方法,其特征在于,所述方法还包括 在分区中创建子分区。
5.如权利要求4所述的方法,其特征在于,所述在分区中创建子分区包括判断所需报表中所需数据的查询条件是否包含对除时间以外的其他条件,若需要,则 根据对应的查询条件确定数据库子分区规则,并进行子分区;反之,则不做处理。
6.如权利要求5所述的方法,其特征在于,所述其他查询条件为所需报表中是否需要 对部分网元的数据进行查询统计。
7.一种数据库分区装置,其特征在于,包括报表类型获取模块,用于对各种报表类型进行判断,并获取各种报表的时间节点; 分区规则确定模块,根据报表时间节点信息,将每两个相邻节点确定为一个时间段,并 确定数据库分区规则;分区模块,根据分区规则对数据库进行分区。
8.如权利要求7所述的分区装置,其特征在于,所述分区装置还包括 判断模块,判断报表中是否需要对其他查询条件的数据进行统计。
全文摘要
本发明提供了一种数据库分区方法,用于对数据库进行分区,包括以下步骤获取多种所需报表类型;根据多种所需报表类型的时间节点来确定数据库分区规则;根据确定的数据库分区规则对数据库进行分区。本发明的数据库分区方法通过对所需报表的时间节点进行分析,并按照时间节点来定制分区规则,从而保证全网日报表和忙时报表等各种报表的数据,最好地符合分区全表扫描策略的特点,使分区全表扫描时可以获取所需数据,并且扫描到的不满足查询条件的记录达到最少,从而减少了查询扫描所需要的时间,提高了全表扫描的效率,也使很多原本需要索引扫描的情况转而可以使用全表扫描。本发明还提供一种数据分区装置。
文档编号G06F17/30GK102063490SQ20101061311
公开日2011年5月18日 申请日期2010年12月20日 优先权日2010年12月20日
发明者余再跃 申请人:上海大唐移动通信设备有限公司, 大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1