CN102362273A - 用于关系数据库系统中高效数据存取的动态散列表 - Google Patents
用于关系数据库系统中高效数据存取的动态散列表 Download PDFInfo
- Publication number
- CN102362273A CN102362273A CN2010800137485A CN201080013748A CN102362273A CN 102362273 A CN102362273 A CN 102362273A CN 2010800137485 A CN2010800137485 A CN 2010800137485A CN 201080013748 A CN201080013748 A CN 201080013748A CN 102362273 A CN102362273 A CN 102362273A
- Authority
- CN
- China
- Prior art keywords
- hash table
- data
- page
- hash
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 39
- 238000003860 storage Methods 0.000 claims abstract description 39
- 230000008569 process Effects 0.000 claims description 9
- 230000005055 memory storage Effects 0.000 claims description 6
- 238000005457 optimization Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 claims 5
- 238000013507 mapping Methods 0.000 claims 4
- 238000012544 monitoring process Methods 0.000 claims 2
- 230000006870 function Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 239000003292 glue Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了用于获得关系数据库管理系统中数据元素的高效数据存取的各个方面。在计算机实现的方法方面,高效数据存取通过如下方式发生:在所分配的存储的预定连续空间中为数据库的数据元素创建散列表,并在数据库查询操作过程中通过线性散列优化散列表的利用,其中散列表的扩展自动发生以增加散列表中页面的数目,而没有明显中断数据元素的数据存取。
Description
技术领域
本发明一般涉及数据库,并且更具体地涉及获得关系数据库系统中的高效数据存取。
背景技术
计算机是用于存储和提供对大量信息的存取的强大工具。关系数据库是用于将信息存储在计算机系统上同时为用户提供便利存取的常用机制。典型的关系数据库是被存储为具有信息“字段”的“记录”的有关信息的有组织集合。举一个例子,雇员数据库可以具有针对每个雇员的记录,其中每个记录包含指定关于雇员详情,诸如名字、家庭地址、薪水等等的字段。
在实际的物理数据库本身(即,实际存储在存储装置上的数据)和系统的用户之间,关系数据库管理系统或RDBMS被典型提供为软件缓冲器(software cushion)或层。本质上,RDBMS使数据库用户不知道或甚至不关心底层的硬件细节。典型地,来自用户存取数据的所有请求是由RDBMS处理的。例如,信息可以被添加到数据文件或从数据文件中移除,从此类文件中检索或更新信息等等,所有这些不需要用户知道底层的系统实现。以此方式,RDBMS给用户提供了脱离硬件等级的数据库的概念视图。数据库管理系统的一般结构和操作在本领域是众所周知的。例如,参见Data,C.,“AnIntroduction to Database Systems,Seventh edition”,Part I(数据库系统介绍,第七版,第I部分(特别是1-4章)),Addison Wesley,2000。
高效数据存取是由数据库管理系统提供的性质之一。获得此目的的最常用的机制是将索引与二级存储上的大的随机存取数据文件关联。实质上,索引提供辅助数据结构以便帮助加快记录检索。索引通常实现为多级树结构,典型保存为B-树数据结构。
关系数据库系统面临的关键挑战是不断增长的数据库大小。由于数据库大小已经由吉字节增加到1000吉字节,到万兆字节,B-树包含更多的元数据页面(即索引页面)。数据集可增加得如此大,使得对于B-树存取方法,元数据开始控制存储器/高速缓存。如果出现这种情况,B-树可被迫在二级存储上针对每个数据请求进行I/O(输入/输出)操作,原因是任何具体的数据页面已经在高速缓存中的可能性十分小。二级存储存取比本地存储器/高速缓存存取要慢很多,因此对于快速数据检索是不利的。
因此,存在对于在日益增大的数据库系统中高效数据检索的数据库存取方法的需要。本发明满足这种需求。
发明内容
本发明的实施例包括用于获得关系数据库管理系统中数据元素的高效数据存取的各个方面。在计算机实现的方法方面,高效数据存取通过如下方式发生:在所分配的存储的预定连续空间中为数据库的数据元素创建散列表,并在数据库查询操作处理中通过线性散列(linear hashing)来优化散列表的利用,其中散列表的扩展自动发生以增加散列表中页面的数目,而不明显中断数据元素的数据存取。
通过本发明的动态散列表,获得改进的数据存取性能,特别是对于主要用于相等查询(即点查询)的那些表,这是由于动态散列表不需要索引页。借助点查询性能的改进,基于点查询的所有其它查询得以改进。此外,通过在动态散列表的每个原始数据页面保留一定大小的空间,提供更好的冲突避免以优化表利用。而且,线性散列适于提供在线(即连续)服务,而没有周期性维护中断。本发明的其它特征和优点以及本发明的各个实施例的结构和操作将在下文参照附图详细描述。注意,本发明不局限于本文描述的特定的实施例。本文中出现的这些实施例只是用于说明目的。基于本文包含的教导,附加实施例将对相关领域(多个)的技术人员是显然的。
附图说明
结合在本文中并构成说明书的一部分的附图说明本发明的实施例,并与本描述一起进一步用来解释本发明的原理,使得相关领域的技术人员能够构造并使用本发明。
图1说明可以实现本发明的软件实现的处理的计算机系统的大致框图。
图2说明用于实现本发明的客户机/服务器数据库系统的大致结构。
图3说明根据本发明的实施例,用于利用动态散列表获得数据库系统中的高效数据存取的处理的方框流程图。
图4说明根据本发明的实施例的动态散列表的存储布局。
图5a、5b、5c和5d说明根据本发明的实施例动态扩展散列表的线性散列的一个例子。
现在将参照附图描述本发明。图中,通常相似的附图标记表示相同或功能相似的元件。另外,通常,附图标记的最左边的数字标识首次出现该附图标记的图。
具体实施方式
本发明的下列详细描述参照说明与此发明一致的示例性实施例的附图。其它实施例是可行的,在本发明的精神和范围内可以对实施例进行修改。因此,详细描述不意在限制本发明。而是,本发明的范围是由所附权利要求限定的。
本领域技术人员将明了,根据下文的描述可以用软件、硬件、固件和/或图中说明的实体的许多不同实施例来实现本发明。具有实现本发明的专门硬件控制的任何实际代码不是限定本发明。因此,考虑到本文给出的详细程度,将描述本发明的操作行为,而应当理解这些实施例的修改和变化是可行的。
参照附图,现在描述本发明的示例性实施例。下面的描述将集中在目前优选的本发明的实施例,其被在诸如微软操作系统的操作系统下运行的联网环境中工作的桌面和/或服务器软件(例如驱动器、应用程序等等)中实现。但是本发明并不局限于任何一个具体应用或任何具体环境。实际上,本领域技术人员会发现本发明的系统和方法可以有利地实现于各种不同平台,包括Linux,Solaris,UNIX,IBM AIX等等上。因此,下面的示例性实施例的描述用于说明而不是限制目的。示例性实施例主要是参照框图或流程图描述的。至于流程图,流程图中的每个框表示方法行为和用于执行该方法行为的设备元件。根据实现方式,相应的设备元件可以用硬件、软件、固件或其组合来配置。
本发明可以在传统或通用计算机系统,诸如IBM-兼容个人计算机(PC)或服务器计算机上实现。图1说明计算机系统(例如IBM兼容系统)的大致框图,其中可以实现本发明的软件实现的处理。如所示的,系统100包括耦连到随机存取存储器(RAM)102的(一个或多个)中央处理单元(CPU)或(一个或多个)处理器101、只读存储器(ROM)103、键盘106、打印机107、指针装置108、显示器或连接到显示装置105的视频适配器104、可移动(大容量)存储装置115(例如软盘、CD-ROM、CD-R、CD-RW、DVD等等)、固定(大容量)存储装置116(例如硬盘)、(一个或多个)通信(COMM)端口或接口110、调制解调器112和网络接口卡(NIC)或控制器111(例如以太网)。尽管没有独立显示,实时系统时钟以传统方式包括于系统100中。
CPU 101包括用于实现本发明的任何适当的处理器,如因特尔奔腾系列微处理器的处理器。CPU 101与系统的其它组件通过双向系统总线(包括任何必需的输入/输出(I/O)控制器电路和其它“粘接(glue)”逻辑)通信。包括用于寻址系统存储器的地址线的总线提供各个组件之间的数据传递,这在本领域是众所周知的。随机存取存储器102用作CPU 101的工作存储器。在一个典型配置中,使用若干兆字节或吉字节的RAM。在不偏离本发明的范围下,可以使用更多或更少的存储器。只读存储器(ROM)1-3包含基本输入/输出系统代码(BIOS)-应用程序和操作系统可以用来与硬件交互,包括从键盘读取字符,将字符输出到打印机等等的ROM中的低级例程的集合。
大容量存储装置115,116提供在固定和可移动介质,如磁、光或磁-光存储系统,闪存或其它任何适当的大容量存储技术上的永久存储。大容量存储可以被共享于网络上,或者它可以是专用大容量存储。如图1所示,固定存储116存储用于引导包括操作系统、用户应用程序、驱动程序和其它支持文件,以及所有分类的其它数据文件的计算机系统的操作的程序和数据的主体。典型地,固定存储116用作系统的主硬盘。
在基本操作中,程序逻辑(包括实现下文描述的本发明的方法)从可移动存储115或固定存储116加载到主(RAM)存储器102,用于由CPU 101执行。在程序逻辑的操作处理中,系统100接收来自键盘106和指针装置108以及来自语音识别系统(未显示)的基于语音的输入的用户输入。键盘106允许选择应用程序,基于键盘的输入或数据的输入,和选择并操纵屏幕或显示装置105上显示的各个数据对象。同样,指针装置108,诸如鼠标、跟踪球,笔装置等等允许选择和操作显示装置上的对象。以此方式,这些输入装置支持系统上运行的任何处理的手工用户输入。
计算机系统100在显示装置105上显示文本和/或图形图像和其它数据。视频适配器104被置于显示器105和系统的总线之间,驱动显示装置105。视频适配器104包括可访问CPU 101的视频存储器,提供将存储在视频存储器中的像素数据转换成适于以阴极射线管(CRT)光栅或液晶显示器(LCD)监视器的光栅信号的电路。系统100内的显示信息或其它信息的硬拷贝可以从打印机107或其它输出装置获得。打印机107可包括例如用于创建系统输出的硬拷贝图像的HP Laserjet打印机(可从Hewlett Packard of Palo Alto,Calif.获得)。
系统本身与其它装置(例如,其它计算机)通过连接到网络(例如,以太网、蓝牙无线网络等等)的网络接口卡(NIC)111,和/或调制解调器112(例如,56K调制解调器传输数据的速率,ISDN,DSL或线缆调制解调器),其例子可从3Com of Santa Clara,Calif获得。系统100还可与本地偶尔连接的装置(例如,串行电缆链接装置)通过通信(COMM)接口110通信,其可包括RS-232串行口,通用串行总线(USB)接口等。通常本地连接到接口110的装置包括膝上型计算机,手持管理器,数字照相机等等。
IBM兼容个人计算机和服务器计算机可从各个厂商获得。代表性的厂商包括戴尔计算机(Dell computer of Round Rock,Tex.),Hewlett-Packard of Palo Alto,Calif.,和IBM of Armonk,N.Y.。其它适用的计算机包括可从Apple Computer of Cupertino,Calif获得的苹果兼容计算机(例如Macintosh)和可从Sun Microsystems ofMountain View,Calif获得的Sun Solaris工作站。
典型地提供软件系统以控制计算机系统100的操作。软件系统通常保存在系统存储器(RAM)102中和固定存储(例如硬盘)116中,包括内核或操作系统(OS),其管理计算机操作的低级方面,包括管理处理的执行,存储器分配,文件输入和输出(I/O),和装置I/O。OS可由传统的操作系统Microsoft Windows NT,MicrosoftWindows 2000,Microsoft Windows XP或Microsoft Windows Vista(Microsoft Corporation of Redmond,Wash)或诸如之前提到的操作系统的可替代操作系统提供。典型地,OS与装置驱动器(例如,“Winsock”驱动器-Window的TCP/IP堆栈实现)和系统BIOS微代码(即基于ROM的微代码)结合操作,特别是当与外围装置交互时。还可以提供诸如客户应用软件或“程序”(即处理器可执行指令的集合)的一个或多个应用以由计算机系统100执行。旨在用于计算机系统上的(一个或多个)应用或其它软件可从固定存储116被“加载”到存储器102中,或可以从互联网位置(例如网络服务器)下载。图形用户界面(GUI)通常被提供以用图形方式(例如“点-击”)接收用户命令和数据。这些输入又可以由计算机系统根据来自OS和/或(一个或多个)应用来施加作用。图形用户界面还用来显示OS和(一个或多个)应用的结果。
尽管本发明可在单个(独立的)计算机(例如图1的系统100)中操作,本发明优选实现于多用户计算机系统中,诸如客户机/服务器系统。图2说明用于实现本发明的客户机/服务器数据库系统200的大致结构。(在下文的后面部分描述用于实现本发明的方法的系统200的特定修改。)如图所示,系统200包括通过网络220连接到服务器230的一个或多个客户机210。特别地,客户机210包括使用传统网络连接到数据库服务器系统240的一个或多个独立终端211。在一个示例性实施例中,终端211本身可包括多个独立工作站,哑终端等等,或包括诸如上述的系统100的个人计算机(PC)。典型地,此类单元可工作在客户机操作系统下,诸如MicrosoftWindows客户机操作系统(例如MicrosoftWindows 95/98,Windows 2000,或Windows XP)。
数据库服务器系统240在一个示例性实施例中包括SybaseAdaptive ServerEnterprise(ASE)(可从Sybase,Inc.of Dublin,Calif.获得),通常作为独立处理(即,独立于客户机)操作,运行在服务器操作系统,诸如MicrosoftWindows NT,Windows 2000,或Windows XP(全部来自Microsoft Corporation of Redmond,Wash),UNIX(Novell),Solaris(Sun)或Linux(Red Hat)。网络220可以是许多传统网络系统,包括局域网(LAN)或广域网(WAN)中的任何一个,这是本领域已知的(例如,使用以太网,IBM令牌环网等等)。网络220包括用于以众所周知的结构化查询语言(SQL)将客户机呼叫连同任何参数信息一起打包成适于传送到数据库服务器系统240的格式(一个或多个包)的功能。所描述的计算机硬件和软件是出于说明可用来实现本发明的基本的基础桌面和服务器计算机组件的目的呈现的。为讨论目的,下面的描述将呈现假设在群集中存在与一个或多个“客户机”(例如个人计算机或移动装置)交互的多个服务器实例(例如数据库服务器节点)。但是,本发明并不局限于任何具体的环境或装置配置。而是,本发明可以用能够支持下面详细提出的本发明的方法的任何类型的系统架构或处理环境实现。
客户机/服务器环境、数据库服务器和网络在技术、贸易和专利文献中有充分记载。在操作中,客户机210在一个或多个数据库表250中存储数据,或从一个或多个数据库表250中检索数据,如图2所示。关系数据库中的数据被存储为一系列表,也称为关系。通常驻存在服务器230上的每个表本身包括一个或多个“行”或“记录”(元组)(例如,图2中所示的行255)。典型的数据库包含许多表,每个表存储关于特定类型的实体的信息。典型的关系数据库中的表可包含从几行到上百万行的任何数目。行被划分成字段或列,每个字段表示给定行的一个具体属性。例如,对应于雇员记录的行可包括关于雇员的ID号、名字和首字母、位置、雇用日期、社会保障号(SSN)和薪水的信息。这些类别中的每一个又表示一个数据库字段。例如,在前面的雇员表中,位置是一个字段,雇用日期是另一字段,以此类推。采用这种格式,表易于用户理解和使用。而且,表的灵活性允许用户根据需要定义数据的各个项目之间的关系。因此,典型的记录包括关于个人、地方或事情的几类信息。表中的每一行是由记录ID(RID)唯一标识的,其可用作给定行的指针。
多数关系数据库实现结构化查询语言(SQL)的变体,SQL是一种允许用户和管理员创建、操作和存取存储在数据库中的数据的语言。SQL的语法有充分记载,例如参见上述的“An Introduction toDatabase Systems(数据库系统介绍)”。SQL语句可划分成两类:用来读、写数据的数据操作语言(DML);和用来描述数据并维持数据库的数据定义语言(DDL)。DML语句也称作查询。在操作中,例如,客户机210发出一个或多个SQL命令到服务器230。SQL命令可指定例如用于从数据库表250中检索具体数据(即,满足查询条件的数据记录)的查询。除了从数据库服务器表250中检索数据之外,客户机210还具有发出命令以将新的数据记录行插入到表中,或更新和/或删除表中的现有记录的能力。
SQL语句或简单的“查询”必须被解析以确定存取计划(也被称为“执行计划”或“查询计划”),从而满足给定查询。在操作中,从客户机210(通过网络220)接收的SQL语句被数据库服务器系统240的引擎260处理。引擎260本身包括解析器261、规范器263、编译器265、执行单元269和存取方法270。具体地,SQL语句被传送到解析器261,解析器261使用传统的解析方法(例如递归下降分析)。被解析的查询然后被规范器263规范化。规范化包括例如冗余数据的去除。另外,规范器263执行错误校验,诸如确认出现在查询中的表名字和列名字是有效的(例如,可用并且匹配(belong together))。最后,规范器263还可以查询存在的任何参照完整性约束,并将其加入到查询中。
在规范化之后,查询被传送到编译器265,编译器265包括优化器266和代码生成器267。优化器266执行基于成本的分析,以制定出合理接近最优计划的查询执行计划。代码生成器267将由查询优化器266选择的查询执行计划翻译成可执行形式以由执行单元269使用存取方法270执行。
在典型的关系数据库系统中的所有数据被存储在通常是硬盘的二级存储装置上的页面中。典型地,这些页面的大小范围从1Kb到32Kb,最常用的页面大小是2Kb和4Kb。相对二级存储的所有输入/输出操作(I/O)是在页面大小的单元中进行的,即,整个页面被一次读/写。每次页面还会被分配用于一个目的:数据库页面可以用来存储表数据或用于虚拟存储器,但不会用作此两者。已经从硬盘读取的页面存在于其中的存储器被称作高速缓存或缓冲池。
往来于硬盘的I/O往往是执行查询时最费时的操作。这是由于,与主存储器(例如RAM)的相对低的等待时间相比,与物理介质关联的等待时间。因此可以通过降低必须完成的I/O操作的数目来提高查询性能。这可以通过使用最大化已知驻存在高速缓存中的页面的使用的数据结构和算法来完成。可替代地,其可被首先通过哪些页面被加载到高速缓存中的更大的选择性来完成。关于I/O另一个的考虑是它是顺序的还是随机的。由于硬盘的结构,顺序I/O比随机存取I/O更快。鼓励使用顺序I/O的数据结构和算法可实现更好性能。
本发明通过利用动态散列表(DHT)数据结构的存取方法,为更高效的查询处理特别是点查询(精确匹配)处理提高I/O性能。下面的术语是出于说明目的而不是限制目的提供的,以便帮助理解接下来的讨论。
散列函数:指任何定义好的过程或算术函数,它将大的大小可能变化的数据转换成通常是可用作数组索引的单个整数的小数据。
散列关键字:指其值可用作用于查询(例如SSN,名字)的散列函数的输入。
散列关键值:指散列关键字(列)的值。
散列值:指由散列函数为给定散列关键字(例如与SSN关联的名字)返回的值。
冲突:指超过一个散列关键字的值具有相同散列值。
散列表:指包含页面集合的表,页面集合进一步包含通过散列函数可直接存取的项目。散列表不包含任何索引页面。
动态散列表(DHT):指大小可随着数据集大小的增加而扩展的散列表。
散列区:指分配给包含散列数据列的散列表的数据页面的集合。散列函数在散列区上均匀地分配数据行。散列区是预分配的。散列区中的数据页面必须是连续的以简化将散列值映射到散列区中的页面号,这也是为了映射的性能。
原始页面:指通过散列函数可直接存取的散列表中的数据页面。它们是预分配的。散列区中的所有数据页面是原始页面。
溢出页面:指被创建成保存溢出数据并在原始页面不能保存该数据时与原始页面链接的页面。溢出页面不一定是预分配的。
参照图3的框图,根据本发明的实施例,高效查询处理开始于动态散列表(DHT)的创建(块300)。根据DDL,通过类似于目前针对划分子句使用的的散列群集子句扩展已知的创建表语句导致该创建。例如:
create table[database.[owner].]table_name……[hash_cluster_clause]
Hash_cluster_clause::=[[CONSTRAINT constraint_name]
{UNIQUE|PRIMARY KEY}]
HASH CLUSTERED(column_name[{,column_name}…])
WITH HASHVALUES=number of hash values
[,SIZE=bytes_per_row]
[,RESERVERATE=percentage_of_reserve_space]
其中CONSTRAINT引入唯一或主关键字约束的名字,它被在DHT中定义在散列关键字列上。
constranit_name是DHT中散列关键字列上的唯一或主关键字约束的名字。
UNIQUE约束指定列中的值,使得没有两行具有相同值。此约束不创建任何索引,并且是DHT中的散列关键字强制要求的。
PRIMARYKEY约束指定列中的值,使得没有两个行具有相同值,并且使得值不可能是NULL。此约束不会创建任何索引,是由DHT中的散列关键字强制要求的。
HASH CLUSTERED表示该表是DHT。
column_name在散列群集子句中使用时,指定散列关键字列。用户可以通过列的集合执行散列,这些列可以是任何数据类型。复制的散列关键值是被允许的,但它会阻碍DHT的性能。
HASHVALUES=number_of_hash_values规定当创建散列表时散列表中不同散列值的数目。
SIZE=bytes_per_row规定每个数据行将占据的字节的数目(例如,数据行的中值大小)。如果用户不规定它,则使用数据行的最大大小(例如,varchar(100)将计算为100字节)。
RESERVERATE=percentage_of_reserve_space规定每个数据页面中保留的以防冲突的空间的百分数,下文将进一步描述。如果用户不规定它,则0%空间会保留以用于潜在的冲突数据项目。
例如,
Create table order_line(id int,age int,name varchar(100),
Hash clustered(id,age)
With Hashvalues=10000,
Size=30,
Reserverate=20)
会创建以id和年龄(都是integer(int)类型)散列化的表。预期的行大小是30字节(如果“大小”没有规定,则实际会使用108字节(4+4+100)),10000个散列值被保留。每个页面中20%的空间被保留用于冲突数据项目。如果页面大小是2K,则53个槽会通过散列函数映射到每个数据页面。
散列表的性能很大程度上取决于如何处理冲突。ASE DHT使用下面两种方法来避免可能由冲突引起的额外I/O。
首先,在优选实施例中,数据记录被映射到特定页面而不是页面中的槽。因此,只要原始页面仍然能保存所有数据项目,则不需要分配溢出页面,从而每个页面可以吸收一些冲突,而不使用溢出页面,这还可能使得额外的I/O以用于以后的检索。例如,假设散列列值是“Tony”的第一数据项目被保存在页面中的第一数据槽,散列列值是“Terada”的第二数据项目具有相同的散列值。如果每个数据项目被映射到特定页面中的特定槽,则第二数据项目会映射到与“Tony”相同的槽。由于第一槽已经被占据,会需要溢出页面P’,之后的所有检索需要存取溢出页面(P’)。但是,在本发明中,第二数据项目的插入不会引起溢出页面P’的创建,这是由于它将被保存在该页面的第二数据槽中。
第二,每个原始页面中的某些空间会被保留以存储可能由冲突引入的额外数据项目,用户可以在创建DHT时规定该参数。例如,如果每个原始页面可存储50个数据项目,保留率是20(即reserverate=20),则只有40个数据项目会映射到一个原始页面。每个原始页面可存储10个可能由冲突引入的另外的数据项目。因此,不太可能创建溢出页面,较少的额外I/O会被用于数据检索。
在创建DHT时,提供具有极大规模(例如GB,吉字节)的所分配的存储的预定连续空间。在本发明的示例性实施例中,通过扩展Sybase ASE内的alter database命令中的页面分配机制使用,得到极大规模分配(ELSA),以便避免锁定整个数据库,并保证快速分配极大的连续空间。应该认识到尽管此描述涉及ASE的功能,但其含义是说明性的而不是限制性的。因此,适当时可以采用适于提供所描述的ELSA的技术。更多细节在下文说明。
在ASE中,系统表“sysdevices”包含用于每个带转储装置、硬盘转储装置、用于数据库的硬盘、用用于数据库的硬盘分区的一行,系统表“sysusages”包含用于为数据库分配的每个硬盘分配段的一行。ELSA会打开这两个表,找到硬盘装置上为数据库分配的空闲的连续硬盘空间。然后ELSA将该空间标记为被DHT占用。
ELSA可以比常规页面分配快很多的原因主要有两个:
1.由于页面被连续分配,它使用大的I/O子系统。在现代计算机系统中,到连续硬盘空间的顺序I/O可以粗略地比对随机硬盘空间的I/O快10-30倍。
2.它减少了登录活动。常规页面分配对于每个页面分配需要一个登录记录。在ELSA中,不管分配多少页面(例如,上千,上百万等),只有一个登录记录是需要用于页面分配的。可以消除构建登录记录并将它们刷新到硬盘中的大量时间。
图4说明根据优选实施例在分配空间中DHT的存储布局400的框图表示。页面P0到Pn包括预分配散列区,溢出数据页面Pi,Pj包括在常规数据区中分配的通常理解为遵循常规数据页面分配代码路径的页面。应该认识到DHT的存储布局允许与其它对象共享存储区段,不要求排它的区段。
在操作中,存储DHT 400的利用继续进行数据库查询操作(图3,块302)。利用DHT,不需要对于DML(数据操作语言)的语法变化,使得用户可以在DHT上使用与常规表相同的DML。优化器(图2,266)选择是否使用散列函数,这是本领域技术人员很容易理解的。
通过例子,在一个示例性实施例中,在UPDATE查询操作中,如果在所有的散列关键字列上定义EQUI SARGS(相等搜索自变量),则目标页面可基于散列函数直接计算。否则,非群集索引(如果存在)会用来定位目标页面。如果没有非群集索引,则使用表扫描。对于表扫描,表扫描优选从预分配区中的第一页面开始,所有溢出页面也要访问。而且,UPDATE可能引起原始页面溢出,并且创建溢出页面。如果UPDATE涉及散列关键字列变化,优选数据项目会从原始槽从删除,并基于其新散列值插入到另一槽中。
对于DHT中的DELETE,如果EQUI SARGS是在所有关键字列上定义的,则目标页面会基于散列函数直接计算。原始页面和其溢出页面(如果存在)会被搜索,相应记录会被删除。即使在删除之后数据页面中没有页面项目,常规区中的溢出数据页面会被去分配(de-allocate),而散列区中的原始数据页面不会被去分配。否则,非群集索引会用来定位页面。如果没有非群集索引,则会使用表扫描。
对于精确匹配或点查询操作,如果EQUI SARGS是在所有关键字列上定义的,则目标页面会基于散列函数直接计算。原始页面和其溢出页面(如果存在)会被搜索,相应记录如果存在则会被获取。否则,非群集索引会用来定位页面。如果没有非群集索引,则会使用表扫描。
对于DHT中的INSERT,目标页面会基于散列函数直接计算。如果存在溢出,则溢出数据页面会在常规数据页面区中分配。而且,如果DHT加载因子达到预定阈值(图3的块304是肯定的),INSERT可能会导致需要扩展DHT。“加载因子”作为应用到在一个数据库实例中创建的所有DHT的系统配置变量,并反映已经插入在DHT中的数据项目的数目除以可存储在DHT中的总数数据项目(不包括每个页面的保留空间和用于冲突的溢出页面)的阈值。当阈值满足时,需要扩展触发ELSA用于分配适当的存储空间,以及线性散列函数来增加散列表中页面的数目,而不中断数据元素的数据存取(块306)。
优选地,插入和ELSA作为两个单独的事务处理被提供,ELSA被作为系统事务处理调度,以便避免如果作为子事务处理则可能会出现的用户不可接受的延迟,这是由于分配空间会随着DHT的增长而花费更多时间。优化通过线性散列得到,其中散列表的扩展是自动发生的。
现在参照图5a-5d,呈现如何可以使用线性散列函数来增大表的一个例子。如已知的,线性散列函数的通常形式由Hj(K)=g(K)mod(N*2)给出,这里g(K)是标准散列函数,N是散列区中的初始页面数目,且j=0,1,2,…,并记录散列函数的等级。例如,H0(K)=g(K)mod N,H1(K)=g(K)mod 2N。如图5a的例子所示,一开始为散列表分配5个页面P0-P4,散列函数是H0(K)=K mod 5,其中K是使用的散列关键字,每个页面可以存储10个记录。考虑0.8(表示插入元素的数目与被分配槽的数目的比率)的预定加载因子,当散列表中有40个数据项目时会分配另5个页面,P5-P9(图5b)。为了分开一个页面,引入新函数H1=K mod 10。以此方式,对于被H0散列化的散列表中的P0中的每一个,大约一半的数据项目会保持在P0中,一半会在由H1散列化的表的P5中(图5c)。当前的分裂指针(CP)被初始化为0,用来记录下一分裂页面。在DHT使其空间加倍之后,每个随后插入会触发一个页面分裂,直到原始散列表中所有页面已经分裂,CP增加1,如图5d所示。通过根据PageNo=H0(K),如果PageNo<CP,否则PageNo=H1(K)确定页面数目(PageNo),发生定位每个散列关键字。一开始,由于CP=0,只使用H0(K)。在页面分开处理中,使用H0(K)和H1(K)两者。在所有页面分开之后,H0(K)会被H1(K)取代,CP被重置为0,这是本领域技术人员能很好理解的。
通过使用线性散列为扩展DHT,DHT提供不中断的服务(即不需要周期性的表重新组织)用于连续数据库操作(图3的块302)。这避免了已知的用户必须创建新散列表然后从原始散列表中拷贝数据的那些散列表方法的问题,如果散列表的大小变得比其原始估计大小大,则在该时间中,散列表中的数据暂时是不可存取的,降低了数据服务器的在线时间。但是,在本发明中,线性散列适于提供在线服务而不明显中断数据存取。实验证据表明本发明的动态散列表方法具有比已知的用于精确匹配/点查询操作的B-树存取方法显著更好的性能(快3倍之多)。而且,因为本发明的DHT没有元数据页面,所以高速缓存在存在大的数据集时提供具体数据页面的更大可能性。
尽管上文已经描述了本发明的各个实施例,但是应该理解它们只是作为例子而不是限制呈现的。相关领域技术人员应该理解在不偏离如所附权利要求中限定的本发明的范围下可以对其进行各种形式和细节上的改变。应该理解,本发明不局限于这些例子。本发明可应用于如本文中描述操作的任何元件。因此,本发明的宽度和范围不应该由上述的示例性实施例中的任何一个限制,而只根据所附权利要求书和其等同物来定义。
Claims (20)
1.一种获得关系数据库管理系统中的数据元素的高效数据存取的计算机实现的方法,所述方法包括:
a、在所分配的存储的预定连续空间中为数据库的数据元素建立散列表;和
b、在数据库查询操作过程中通过线性散列优化所述散列表的利用,其中所述散列表的扩展自动发生以增加所述散列表中的页面数目,而没有明显中断所述数据元素的数据存取。
2.根据权利要求1所述的计算机实现的方法,其中优化进一步包括监控预定加载因子以识别何时自动增加所述散列表中的页面数目。
3.根据权利要求1所述的计算机实现的方法,其中优化进一步包括在所述散列表中保留每个页面的预定部分以防冲突。
4.根据权利要求1所述的计算机实现的方法,进一步包括基于页面标识符在所述散列表中映射数据元素。
5.根据权利要求1所述的计算机实现的方法,进一步包括根据需要在所述所分配的存储之外的数据区中为所述散列表的溢出分配页面。
6.根据权利要求1所述的计算机实现的方法,其中建立进一步包括利用单个命令语句来创建所述散列表。
7.一种获得关系数据库管理系统中的数据元素的高效数据存取的计算机实现的方法,所述方法包括:
a、以单个命令语句在保留的连续存储空间的预定分配中创建无索引散列表;
b、在数据库操作过程中根据需要基于加载因子在所述无索引散列表中增加条目;和
c、在所述无索引散列表中通过数据列的散列将数据元素映射到精确页面。
8.根据权利要求7所述的计算机实现的方法,其中增加条目进一步包括线性散列。
9.根据权利要求7所述的计算机实现的方法,其中单个命令语句进一步包括具有散列群集子句的创建表语句。
10.根据权利要求7所述的计算机实现的方法,进一步包括在所述无索引散列表中保留每个页面的预定部分以防冲突。
11.根据权利要求7所述的计算机实现的方法,进一步包括根据需要在保留的连续存储空间的预定分配之外的数据区中为所述无索引散列表的溢出分配页面。
12.一种获得关系数据库管理系统中的数据元素的高效数据存取的系统,所述系统包括:
a、存储装置;
b、耦连到所述存储装置的处理装置;和
c、耦连到所述存储装置并由所述处理装置控制的数据库管理装置,所述数据库管理装置在具有极大规模的所分配的存储的预定连续空间中为数据库的数据元素创建散列表,并在数据库查询操作中通过线性散列优化所述散列表的利用,其中所述散列表的扩展自动发生以增加所述散列表中页面的数目,而不中断所述数据元素的数据存取。
13.根据权利要求12所述的系统,其中优化进一步包括监控预定加载因子以识别何时自动增加所述散列表中的页面数目。
14.根据权利要求12所述的系统,其中优化进一步包括在所述散列表中保留每个页面的预定部分以防冲突。
15.根据权利要求12所述的系统,其中所述数据库管理装置进一步基于页面标识符在所述散列表中映射数据元素。
16.根据权利要求12所述的系统,其中所述数据库管理进一步根据需要在所述所分配的存储之外的数据区中为所述散列表的溢出分配页面。
17.根据权利要求12所述的系统,其中所述数据库管理装置进一步基于单个命令语句来创建所述散列表。
18.一种包括计算机可用介质的计算机程序产品,所述计算机可用介质上记录有使处理器能够获得关系数据库管理系统中数据元素的高效数据存取的计算机程序逻辑,所述计算机程序逻辑包括:
数据库管理装置,用于使处理器能够在具有极大规模的所分配的存储的预定连续空间中为数据库的数据元素创建散列表,并在数据库查询操作过程中通过线性散列优化所述散列表的利用,其中所述散列表的扩展自动发生以增加所述散列表中页面的数目,而不中断所述数据元素的数据存取。
19.根据权利要求18所述的计算机程序产品,其中所述散列表的创建进一步包括由单个命令语句创建无索引的散列表。
20.根据权利要求18所述的计算机程序产品,其中所述散列表的利用进一步包括通过数据列的散列将数据元素映射到精确页面。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/416,527 US20100257181A1 (en) | 2009-04-01 | 2009-04-01 | Dynamic Hash Table for Efficient Data Access In A Relational Database System |
US12/416,527 | 2009-04-01 | ||
PCT/US2010/028462 WO2010120457A2 (en) | 2009-04-01 | 2010-03-24 | Dynamic hash table for efficient data access in a relational database system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102362273A true CN102362273A (zh) | 2012-02-22 |
Family
ID=42827050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010800137485A Pending CN102362273A (zh) | 2009-04-01 | 2010-03-24 | 用于关系数据库系统中高效数据存取的动态散列表 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20100257181A1 (zh) |
EP (1) | EP2414963A4 (zh) |
CN (1) | CN102362273A (zh) |
WO (1) | WO2010120457A2 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678583A (zh) * | 2013-12-11 | 2014-03-26 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
CN103678442A (zh) * | 2012-08-30 | 2014-03-26 | 国际商业机器公司 | 基于用户数据访问模式的数据库表格式转换的方法和系统 |
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引系统及处理方法 |
CN105009111A (zh) * | 2012-12-13 | 2015-10-28 | 微软技术许可有限责任公司 | 使用键值存储系统的分布式sql查询处理 |
TWI548266B (zh) * | 2014-06-24 | 2016-09-01 | 愛爾達科技股份有限公司 | 多媒體檔案儲存系統與相關裝置 |
CN107077419A (zh) * | 2014-11-04 | 2017-08-18 | 华为技术有限公司 | 使用无冲突散列表层级的缓冲器的存储器寻址机构 |
CN107710200A (zh) * | 2015-06-24 | 2018-02-16 | 华为技术有限公司 | 用于并行化smp数据库中的基于散列的运算符的系统和方法 |
CN114286988A (zh) * | 2019-09-24 | 2022-04-05 | 国际商业机器公司 | 处理数据库系统的数据 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8166020B2 (en) * | 2005-12-22 | 2012-04-24 | Oracle International Corporation | Query generator |
US8538013B2 (en) * | 2007-10-19 | 2013-09-17 | International Business Machines Corporation | Rules-driven hash building |
US9444757B2 (en) | 2009-04-27 | 2016-09-13 | Intel Corporation | Dynamic configuration of processing modules in a network communications processor architecture |
US8515965B2 (en) | 2010-05-18 | 2013-08-20 | Lsi Corporation | Concurrent linked-list traversal for real-time hash processing in multi-core, multi-thread network processors |
US8539199B2 (en) * | 2010-03-12 | 2013-09-17 | Lsi Corporation | Hash processing in a network communications processor architecture |
US9461930B2 (en) | 2009-04-27 | 2016-10-04 | Intel Corporation | Modifying data streams without reordering in a multi-thread, multi-flow network processor |
JP5592942B2 (ja) * | 2009-05-19 | 2014-09-17 | ヴイエムウェア インク | 仮想マシンシステムにおけるショートカット入出力 |
US8713182B2 (en) * | 2009-08-03 | 2014-04-29 | Oracle International Corporation | Selection of a suitable node to host a virtual machine in an environment containing a large number of nodes |
KR101639672B1 (ko) * | 2010-01-05 | 2016-07-15 | 삼성전자주식회사 | 무한 트랜잭션 메모리 시스템 및 그 동작 방법 |
US8719307B2 (en) * | 2010-04-23 | 2014-05-06 | Red Hat, Inc. | Concurrent linked hashed maps |
JP5790755B2 (ja) * | 2011-02-22 | 2015-10-07 | 日本電気株式会社 | データベース管理装置及びデータベース管理方法 |
US8589336B1 (en) * | 2011-04-25 | 2013-11-19 | Netapp, Inc. | Framework for automated storage processes and flexible workflow |
US8606791B2 (en) * | 2011-06-17 | 2013-12-10 | Microsoft Corporation | Concurrently accessed hash table |
US8812555B2 (en) | 2011-06-18 | 2014-08-19 | Microsoft Corporation | Dynamic lock-free hash tables |
US20130080481A1 (en) * | 2011-09-27 | 2013-03-28 | Sybase, Inc. | Extreme large space allocation |
US8903831B2 (en) | 2011-09-29 | 2014-12-02 | International Business Machines Corporation | Rejecting rows when scanning a collision chain |
US9020954B2 (en) | 2012-09-28 | 2015-04-28 | International Business Machines Corporation | Ranking supervised hashing |
US9514187B2 (en) | 2012-09-28 | 2016-12-06 | Oracle International Corporation | Techniques for using zone map information for post index access pruning |
US9430550B2 (en) * | 2012-09-28 | 2016-08-30 | Oracle International Corporation | Clustering a table in a relational database management system |
US10642837B2 (en) | 2013-03-15 | 2020-05-05 | Oracle International Corporation | Relocating derived cache during data rebalance to maintain application performance |
US9953054B2 (en) * | 2013-04-22 | 2018-04-24 | Salesforce.Com, Inc. | Systems and methods for implementing and maintaining sampled tables in a database system |
EP2808804A1 (en) | 2013-05-29 | 2014-12-03 | Fujitsu Ltd. | Database controller, method, and program for handling range queries |
CN103593477A (zh) * | 2013-11-29 | 2014-02-19 | 华为技术有限公司 | 一种哈希数据库的配置方法和装置 |
US9529849B2 (en) | 2013-12-31 | 2016-12-27 | Sybase, Inc. | Online hash based optimizer statistics gathering in a database |
US9529865B2 (en) | 2014-02-12 | 2016-12-27 | Sap Se | Interval based fuzzy database search |
US10067968B2 (en) | 2014-11-07 | 2018-09-04 | International Business Machines Corporation | Pre-caching of relational database management system based on data retrieval patterns |
US10366068B2 (en) | 2014-12-18 | 2019-07-30 | International Business Machines Corporation | Optimization of metadata via lossy compression |
US9600524B2 (en) * | 2014-12-22 | 2017-03-21 | Blackberry Limited | Method and system for efficient feature matching |
EP3269100A4 (en) | 2015-07-17 | 2018-10-31 | Hewlett-Packard Enterprise Development LP | Combining prefix lengths into a hash table |
WO2017053779A1 (en) | 2015-09-24 | 2017-03-30 | Trustees Of Boston University | Data storage and retrieval system using online supervised hashing |
WO2017105417A1 (en) * | 2015-12-16 | 2017-06-22 | Hewlett Packard Enterprise Development Lp | Dynamic allocation of hash table resources |
US10649991B2 (en) | 2016-04-26 | 2020-05-12 | International Business Machines Corporation | Pruning of columns in synopsis tables |
US10515064B2 (en) | 2016-07-11 | 2019-12-24 | Microsoft Technology Licensing, Llc | Key-value storage system including a resource-efficient index |
CN107025263A (zh) * | 2017-01-16 | 2017-08-08 | 中国银联股份有限公司 | 用于数据库语句的语句解析方法 |
US10726006B2 (en) | 2017-06-30 | 2020-07-28 | Microsoft Technology Licensing, Llc | Query optimization using propagated data distinctness |
US11086876B2 (en) | 2017-09-29 | 2021-08-10 | Oracle International Corporation | Storing derived summaries on persistent memory of a storage device |
US10803043B2 (en) * | 2018-02-28 | 2020-10-13 | Sap Se | Managing hash indexing |
US20200272424A1 (en) * | 2019-02-21 | 2020-08-27 | Research & Business Foundation Sungkyunkwan University | Methods and apparatuses for cacheline conscious extendible hashing |
CN112307014A (zh) * | 2019-07-31 | 2021-02-02 | 北京百度网讯科技有限公司 | 用于减少参数表存储空间的方法、装置、设备和计算机可读存储介质 |
US11593266B2 (en) * | 2021-07-27 | 2023-02-28 | EMC IP Holding Company LLC | Techniques for adaptively organizing write pages in cache using hash tables |
CN113626465B (zh) * | 2021-08-09 | 2023-06-20 | 瀚高基础软件股份有限公司 | 数据库及在postgresql数据库中实现会话级变量的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060041578A1 (en) * | 2004-04-16 | 2006-02-23 | Infoblox Inc. | Set based data store |
CN1822003A (zh) * | 2000-11-30 | 2006-08-23 | 考珀瑞耶有限公司 | 数据库 |
US20080243761A1 (en) * | 2007-03-26 | 2008-10-02 | Shuanglin Guo | Method and system for quantifying a data page repetition pattern for a database index in a database management system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706462A (en) * | 1996-02-23 | 1998-01-06 | Microsoft Corporation | Self optimizing font width cache |
US5832508A (en) * | 1996-09-18 | 1998-11-03 | Sybase, Inc. | Method for deallocating a log in database systems |
US8001112B2 (en) * | 2002-05-10 | 2011-08-16 | Oracle International Corporation | Using multidimensional access as surrogate for run-time hash table |
US6996556B2 (en) * | 2002-08-20 | 2006-02-07 | International Business Machines Corporation | Metadata manager for database query optimizer |
US7080060B2 (en) * | 2003-01-08 | 2006-07-18 | Sbc Properties, L.P. | System and method for intelligent data caching |
US7403945B2 (en) * | 2004-11-01 | 2008-07-22 | Sybase, Inc. | Distributed database system providing data and space management methodology |
US7512620B2 (en) * | 2005-08-19 | 2009-03-31 | Google Inc. | Data structure for incremental search |
-
2009
- 2009-04-01 US US12/416,527 patent/US20100257181A1/en not_active Abandoned
-
2010
- 2010-03-24 WO PCT/US2010/028462 patent/WO2010120457A2/en active Application Filing
- 2010-03-24 EP EP10764824.8A patent/EP2414963A4/en not_active Withdrawn
- 2010-03-24 CN CN2010800137485A patent/CN102362273A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1822003A (zh) * | 2000-11-30 | 2006-08-23 | 考珀瑞耶有限公司 | 数据库 |
US20060041578A1 (en) * | 2004-04-16 | 2006-02-23 | Infoblox Inc. | Set based data store |
US20080243761A1 (en) * | 2007-03-26 | 2008-10-02 | Shuanglin Guo | Method and system for quantifying a data page repetition pattern for a database index in a database management system |
Non-Patent Citations (2)
Title |
---|
WITOLD LITWIN: "Linear Hashing: A New Tool for File and Table Addressing", 《VLDB "80 PROCEEDINGS OF THE SIXTH INTERNATIONAL CONFERENCE ON VERY LARGE DATA BASES》 * |
张恂: "嵌入式数据库在Garfield系统中的应用与研究", 《中国优秀博硕士学位论文全文数据库(硕士)》 * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103678442A (zh) * | 2012-08-30 | 2014-03-26 | 国际商业机器公司 | 基于用户数据访问模式的数据库表格式转换的方法和系统 |
US11163739B2 (en) | 2012-08-30 | 2021-11-02 | International Business Machines Corporation | Database table format conversion based on user data access patterns in a networked computing environment |
US10725991B2 (en) | 2012-08-30 | 2020-07-28 | International Business Machines Corporation | Database table format conversion based on user data access patterns in a networked computing environment |
US9875265B2 (en) | 2012-08-30 | 2018-01-23 | International Business Machines Corporation | Database table format conversion based on user data access patterns in a networked computing environment |
CN105009111B (zh) * | 2012-12-13 | 2019-07-02 | 微软技术许可有限责任公司 | 使用键值存储系统的分布式sql查询处理 |
CN105009111A (zh) * | 2012-12-13 | 2015-10-28 | 微软技术许可有限责任公司 | 使用键值存储系统的分布式sql查询处理 |
CN103678583A (zh) * | 2013-12-11 | 2014-03-26 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
CN103678583B (zh) * | 2013-12-11 | 2017-07-21 | 北京华胜天成科技股份有限公司 | 结构化数据比较的方法及系统 |
TWI548266B (zh) * | 2014-06-24 | 2016-09-01 | 愛爾達科技股份有限公司 | 多媒體檔案儲存系統與相關裝置 |
CN107077419B (zh) * | 2014-11-04 | 2020-02-14 | 华为技术有限公司 | 用于存储与数据元素相关联的地址的方法、设备和系统 |
CN107077419A (zh) * | 2014-11-04 | 2017-08-18 | 华为技术有限公司 | 使用无冲突散列表层级的缓冲器的存储器寻址机构 |
CN104598519B (zh) * | 2014-12-11 | 2019-05-21 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引系统及处理方法 |
CN104598519A (zh) * | 2014-12-11 | 2015-05-06 | 浙江浙大中控信息技术有限公司 | 一种基于连续内存的数据库索引系统及处理方法 |
CN107710200A (zh) * | 2015-06-24 | 2018-02-16 | 华为技术有限公司 | 用于并行化smp数据库中的基于散列的运算符的系统和方法 |
CN107710200B (zh) * | 2015-06-24 | 2020-11-06 | 华为技术有限公司 | 用于并行化smp数据库中的基于散列的运算符的系统和方法 |
CN114286988A (zh) * | 2019-09-24 | 2022-04-05 | 国际商业机器公司 | 处理数据库系统的数据 |
Also Published As
Publication number | Publication date |
---|---|
US20100257181A1 (en) | 2010-10-07 |
EP2414963A4 (en) | 2014-05-21 |
WO2010120457A3 (en) | 2011-01-13 |
EP2414963A2 (en) | 2012-02-08 |
WO2010120457A2 (en) | 2010-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102362273A (zh) | 用于关系数据库系统中高效数据存取的动态散列表 | |
US7213025B2 (en) | Partitioned database system | |
US7734615B2 (en) | Performance data for query optimization of database partitions | |
US7158996B2 (en) | Method, system, and program for managing database operations with respect to a database table | |
US6725223B2 (en) | Storage format for encoded vector indexes | |
US7890541B2 (en) | Partition by growth table space | |
US20240134861A1 (en) | System and method for dynamic database split generation in a massively parallel or distributed database environment | |
US7765211B2 (en) | System and method for space management of multidimensionally clustered tables | |
US20170083573A1 (en) | Multi-query optimization | |
US11544268B2 (en) | System and method for generating size-based splits in a massively parallel or distributed database environment | |
US8396862B2 (en) | Product join dynamic partition elimination for multilevel partitioning | |
US5890150A (en) | Random sampling method for use in a database processing system and a database processing system based thereon | |
US20110138123A1 (en) | Managing Data Storage as an In-Memory Database in a Database Management System | |
US20030195898A1 (en) | Multidimensional disk clustering scheme for query processing and maintenance in relational databases | |
EP1148430A2 (en) | Optimization of a star join operation using a bitmap index structure | |
CN102804168A (zh) | 在数据库系统中减少存储需求的数据压缩 | |
US6647391B1 (en) | System, method and article of manufacture for fast mapping from a propertied document management system to a relational database | |
US10078684B2 (en) | System and method for query processing with table-level predicate pushdown in a massively parallel or distributed database environment | |
US8005836B2 (en) | Method and system for performing logical partial declustering | |
US20100235344A1 (en) | Mechanism for utilizing partitioning pruning techniques for xml indexes | |
US20040054683A1 (en) | System and method for join operations of a star schema database | |
US6356888B1 (en) | Utilize encoded vector indexes for distinct processing | |
CN103810219A (zh) | 一种基于行存储数据库的数据处理方法及装置 | |
US20110289112A1 (en) | Database system, database management method, database structure, and storage medium | |
CN112912870A (zh) | 租户标识符的转换 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120222 |
|
RJ01 | Rejection of invention patent application after publication |