[发明专利]一种数据库表分区的方法无效
| 申请号: | 200710110633.8 | 申请日: | 2007-06-06 |
| 公开(公告)号: | CN101145158A | 公开(公告)日: | 2008-03-19 |
| 发明(设计)人: | 任泰云;马润宏;陈明 | 申请(专利权)人: | 中兴通讯股份有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 许志勇;颜涛 |
| 地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 数据库 分区 方法 | ||
技术领域
本发明涉及使用数据库(Database)作为数据存储介质的软件开发领域,例如sybase,oracle,mssql等等。
背景技术
数据查询在大型关系型数据库应用系统中都是基础功能,比如电信网络管理系统中的历史告警查询。当数据量非常大时,执行效率就成为数据查询的关键要素。有很多的方法可用来提高查询效率,表分区就是其中之一。它从数据的存储组织着手,将不同特点的记录分片存放,每个分片有明确的特征,可在很大程度上缩小查询操作需要进行的扫描工作量。
现有的数据库管理系统DBMS(如:Sybase、oracle和Microsoft SQLServer)都提供以下三种典型分区方案:
1、hash分区:
1)选择表的某个字段用以计算hash值;
2)针对该字段定义hash分区;
3)按记录的选定字段hash计算术出值,存放到对应分区;
4)每个分区对应不同的hash输出值,所有hash值相同的记录,存放到同一个分区;
2、list分区:
1)选择表的某个字段用以分区;
2)按这些字段可能的不同取值列出,预先划分为若干分区,每个分区对应一个取值集合,集合相互不重合;
3)将记录的选定字段与分区进行对比,存放到值相等的分区;
3、Range分区:
1)选择表的某个字段用以分区;
2)按这些字段可能的不同取值范围,预先划分为若干分区,每个分区对应一个可能的区间;
3)将记录的选定字段与分区进行对比,存放到值所落入区间对应的分区;
以上3种典型的分区方式,都对提高数据查询效率有良好作用。但实际应用中,也都同时暴露出明显的缺点:
1)对于hash分区,不需要预设选定字段的取值,所以不会产生目前面两种分区方式的问题。但是由于记录的存放位置由DBMS内含的hash算法决定,所以我们无法按特定应用的特点,自行指定某条具体的记录在那个分区。
2)对于list分区,由于定义分区的时候需要枚举选定字段所有的可能取值,而并不是所有字段都可以做到这点,因此限制了适用面。
3)对于range分区,如果记录的选定字段值的分布处于一个不断变化的状态,可能定义分区时预先指定的取值区间,在一段时间后会因这种变化而失去了使记录均匀分布的功效。
正是由于以上缺点,使得传统分区在电信网管软件中的应用受到了很大限制。
发明内容
本发明所解决的技术问题在于提供一种数据库表分区的方法,以解决现有的不同的分区方法无法按特定应用的特点,以及由于定义分区时预先指定的取值区间,在一段时间后会因这种变化而失去了使记录均匀分布的功效等问题。
为了解决上述问题,本发明提供了一种数据库表分区的方法,其特征在于,包括以下步骤:
(1)预先确定所需要的分区参数,指定表的某个字段,并执行计算得到该字段的输出值;
(2)为表增加一个字段,并存放步骤(1)所选字段经过计算后的输出值;
(3)根据步骤(1)的输出值对表划分为若干分区,将记录的选定字段根据步骤(1)计算输出值,与所述若干分区进行对比,存放到对应的分区中。
本发明所述的方法,其中,所述数据库表分区为基于计算列的list分区。
其中,步骤(1)中所述执行计算,包括:
(111)将步骤(1)所指定表的某个字段的值转换为整数型数据;
(112)根据预先确定所需要的分区参数中的个数;
(113)对步骤(111)转换而得的数据执行:输出值=数据%分区个数+1。
其中,步骤(3)包括:
(311)列出步骤(1)中指定字段经计算后的输出值,划分为若干分区,每个分区对应一个输出值集合,集合相互不重合;
(312)将记录的选定字段根据步骤(1)计算输出值与分区进行对比,存放到值相等的分区。
本发明所述的方法,其中,所述数据库表分区为基于计算列的range分区。
其中,步骤(1)中所述执行计算,包括:
(121)将步骤(1)所指定表的某个字段的值转换为整数型数据;
(122)根据预先确定所需要的分区参数中的区间大小,每个区间的大小相等;
(123)对步骤(121)转换而得的数据执行:输出值范围=数据%分区区间大小。
其中,步骤(3)包括:
(321)列出步骤(1)中指定字段经计算后的输出值范围,划分为若干分区,每个分区对应一个输出值范围;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710110633.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:大型桁架式桩腿水上拖移安装方法
- 下一篇:一种焊锡膏及其制备方法





