專利名稱::用于關(guān)系數(shù)據(jù)庫系統(tǒng)中高效數(shù)據(jù)存取的動態(tài)散列表的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及數(shù)據(jù)庫,并且更具體地涉及獲得關(guān)系數(shù)據(jù)庫系統(tǒng)中的高效數(shù)據(jù)存取。
背景技術(shù):
:計算機(jī)是用于存儲和提供對大量信息的存取的強(qiáng)大工具。關(guān)系數(shù)據(jù)庫是用于將信息存儲在計算機(jī)系統(tǒng)上同時為用戶提供便利存取的常用機(jī)制。典型的關(guān)系數(shù)據(jù)庫是被存儲為具有信息“字段”的“記錄”的有關(guān)信息的有組織集合。舉一個例子,雇員數(shù)據(jù)庫可以具有針對每個雇員的記錄,其中每個記錄包含指定關(guān)于雇員詳情,諸如名字、家庭地址、薪水等等的字段。在實際的物理數(shù)據(jù)庫本身(即,實際存儲在存儲裝置上的數(shù)據(jù))和系統(tǒng)的用戶之間,關(guān)系數(shù)據(jù)庫管理系統(tǒng)或RDBMS被典型提供為軟件緩沖器(softwarecushion)或?qū)?。本質(zhì)上,RDBMS使數(shù)據(jù)庫用戶不知道或甚至不關(guān)心底層的硬件細(xì)節(jié)。典型地,來自用戶存取數(shù)據(jù)的所有請求是由RDBMS處理的。例如,信息可以被添加到數(shù)據(jù)文件或從數(shù)據(jù)文件中移除,從此類文件中檢索或更新信息等等,所有這些不需要用戶知道底層的系統(tǒng)實現(xiàn)。以此方式,RDBMS給用戶提供了脫離硬件等級的數(shù)據(jù)庫的概念視圖。數(shù)據(jù)庫管理系統(tǒng)的一般結(jié)構(gòu)和操作在本領(lǐng)域是眾所周知的。例如,參見Data,C.,“AnIntroductiontoDatabaseSystems,Seventhedition",PartI(數(shù)據(jù)庫系統(tǒng)介紹,第七版,第I部分(特別是1-4章)),AddisonWesley,2000ο高效數(shù)據(jù)存取是由數(shù)據(jù)庫管理系統(tǒng)提供的性質(zhì)之一。獲得此目的的最常用的機(jī)制是將索引與二級存儲上的大的隨機(jī)存取數(shù)據(jù)文件關(guān)聯(lián)。實質(zhì)上,索引提供輔助數(shù)據(jù)結(jié)構(gòu)以便幫助加快記錄檢索。索引通常實現(xiàn)為多級樹結(jié)構(gòu),典型保存為B-樹數(shù)據(jù)結(jié)構(gòu)。關(guān)系數(shù)據(jù)庫系統(tǒng)面臨的關(guān)鍵挑戰(zhàn)是不斷增長的數(shù)據(jù)庫大小。由于數(shù)據(jù)庫大小已經(jīng)由吉字節(jié)增加到1000吉字節(jié),到萬兆字節(jié),B-樹包含更多的元數(shù)據(jù)頁面(即索引頁面)。數(shù)據(jù)集可增加得如此大,使得對于B-樹存取方法,元數(shù)據(jù)開始控制存儲器/高速緩存。如果出現(xiàn)這種情況,B-樹可被迫在二級存儲上針對每個數(shù)據(jù)請求進(jìn)行1/0(輸入/輸出)操作,原因是任何具體的數(shù)據(jù)頁面已經(jīng)在高速緩存中的可能性十分小。二級存儲存取比本地存儲器/高速緩存存取要慢很多,因此對于快速數(shù)據(jù)檢索是不利的。因此,存在對于在日益增大的數(shù)據(jù)庫系統(tǒng)中高效數(shù)據(jù)檢索的數(shù)據(jù)庫存取方法的需要。本發(fā)明滿足這種需求。
發(fā)明內(nèi)容本發(fā)明的實施例包括用于獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)元素的高效數(shù)據(jù)存取的各個方面。在計算機(jī)實現(xiàn)的方法方面,高效數(shù)據(jù)存取通過如下方式發(fā)生在所分配的存儲的預(yù)定連續(xù)空間中為數(shù)據(jù)庫的數(shù)據(jù)元素創(chuàng)建散列表,并在數(shù)據(jù)庫查詢操作處理中通過線性散列(linearhashing)來優(yōu)化散列表的利用,其中散列表的擴(kuò)展自動發(fā)生以增加散列表中頁面的數(shù)目,而不明顯中斷數(shù)據(jù)元素的數(shù)據(jù)存取。通過本發(fā)明的動態(tài)散列表,獲得改進(jìn)的數(shù)據(jù)存取性能,特別是對于主要用于相等查詢(即點查詢)的那些表,這是由于動態(tài)散列表不需要索引頁。借助點查詢性能的改進(jìn),基于點查詢的所有其它查詢得以改進(jìn)。此外,通過在動態(tài)散列表的每個原始數(shù)據(jù)頁面保留一定大小的空間,提供更好的沖突避免以優(yōu)化表利用。而且,線性散列適于提供在線(即連續(xù))服務(wù),而沒有周期性維護(hù)中斷。本發(fā)明的其它特征和優(yōu)點以及本發(fā)明的各個實施例的結(jié)構(gòu)和操作將在下文參照附圖詳細(xì)描述。注意,本發(fā)明不局限于本文描述的特定的實施例。本文中出現(xiàn)的這些實施例只是用于說明目的。基于本文包含的教導(dǎo),附加實施例將對相關(guān)領(lǐng)域(多個)的技術(shù)人員是顯然的。結(jié)合在本文中并構(gòu)成說明書的一部分的本發(fā)明的實施例,并與本描述一起進(jìn)一步用來解釋本發(fā)明的原理,使得相關(guān)領(lǐng)域的技術(shù)人員能夠構(gòu)造并使用本發(fā)明。圖1說明可以實現(xiàn)本發(fā)明的軟件實現(xiàn)的處理的計算機(jī)系統(tǒng)的大致框圖。圖2說明用于實現(xiàn)本發(fā)明的客戶機(jī)/服務(wù)器數(shù)據(jù)庫系統(tǒng)的大致結(jié)構(gòu)。圖3說明根據(jù)本發(fā)明的實施例,用于利用動態(tài)散列表獲得數(shù)據(jù)庫系統(tǒng)中的高效數(shù)據(jù)存取的處理的方框流程圖。圖4說明根據(jù)本發(fā)明的實施例的動態(tài)散列表的存儲布局。圖fe、5b、5c和5d說明根據(jù)本發(fā)明的實施例動態(tài)擴(kuò)展散列表的線性散列的一個例子。現(xiàn)在將參照附圖描述本發(fā)明。圖中,通常相似的附圖標(biāo)記表示相同或功能相似的元件。另外,通常,附圖標(biāo)記的最左邊的數(shù)字標(biāo)識首次出現(xiàn)該附圖標(biāo)記的圖。具體實施例方式本發(fā)明的下列詳細(xì)描述參照說明與此發(fā)明一致的示例性實施例的附圖。其它實施例是可行的,在本發(fā)明的精神和范圍內(nèi)可以對實施例進(jìn)行修改。因此,詳細(xì)描述不意在限制本發(fā)明。而是,本發(fā)明的范圍是由所附權(quán)利要求限定的。本領(lǐng)域技術(shù)人員將明了,根據(jù)下文的描述可以用軟件、硬件、固件和/或圖中說明的實體的許多不同實施例來實現(xiàn)本發(fā)明。具有實現(xiàn)本發(fā)明的專門硬件控制的任何實際代碼不是限定本發(fā)明。因此,考慮到本文給出的詳細(xì)程度,將描述本發(fā)明的操作行為,而應(yīng)當(dāng)理解這些實施例的修改和變化是可行的。參照附圖,現(xiàn)在描述本發(fā)明的示例性實施例。下面的描述將集中在目前優(yōu)選的本發(fā)明的實施例,其被在諸如微軟操作系統(tǒng)的操作系統(tǒng)下運行的聯(lián)網(wǎng)環(huán)境中工作的桌面和/或服務(wù)器軟件(例如驅(qū)動器、應(yīng)用程序等等)中實現(xiàn)。但是本發(fā)明并不局限于任何一個具體應(yīng)用或任何具體環(huán)境。實際上,本領(lǐng)域技術(shù)人員會發(fā)現(xiàn)本發(fā)明的系統(tǒng)和方法可以有利地實現(xiàn)于各種不同平臺,包括Linux,Solaris,UNIX,IBMAIX等等上。因此,下面的示例性實施例的描述用于說明而不是限制目的。示例性實施例主要是參照框圖或流程圖描述的。至于流程圖,流程圖中的每個框表示方法行為和用于執(zhí)行該方法行為的設(shè)備元件。根據(jù)實現(xiàn)方式,相應(yīng)的設(shè)備元件可以用硬件、軟件、固件或其組合來配置。本發(fā)明可以在傳統(tǒng)或通用計算機(jī)系統(tǒng),諸如IBM-兼容個人計算機(jī)(PC)或服務(wù)器計算機(jī)上實現(xiàn)。圖1說明計算機(jī)系統(tǒng)(例如IBM兼容系統(tǒng))的大致框圖,其中可以實現(xiàn)本發(fā)明的軟件實現(xiàn)的處理。如所示的,系統(tǒng)100包括耦連到隨機(jī)存取存儲器(RAM)102的(一個或多個)中央處理單元(CPU)或(一個或多個)處理器101、只讀存儲器(ROM)103、鍵盤106、打印機(jī)107、指針裝置108、顯示器或連接到顯示裝置105的視頻適配器104、可移動(大容量)存儲裝置115(例如軟盤、CD-ROM、CD-R、CD-RW、DVD等等)、固定(大容量)存儲裝置116(例如硬盤)、(一個或多個)通信(COMM)端口或接口110、調(diào)制解調(diào)器112和網(wǎng)絡(luò)接口卡(NIC)或控制器111(例如以太網(wǎng))。盡管沒有獨立顯示,實時系統(tǒng)時鐘以傳統(tǒng)方式包括于系統(tǒng)100中。CPU101包括用于實現(xiàn)本發(fā)明的任何適當(dāng)?shù)奶幚砥?,如因特爾奔騰系列微處理器的處理器。CPU101與系統(tǒng)的其它組件通過雙向系統(tǒng)總線(包括任何必需的輸入/輸出(I/0)控制器電路和其它“粘接(glue)”邏輯)通信。包括用于尋址系統(tǒng)存儲器的地址線的總線提供各個組件之間的數(shù)據(jù)傳遞,這在本領(lǐng)域是眾所周知的。隨機(jī)存取存儲器102用作CPU101的工作存儲器。在一個典型配置中,使用若干兆字節(jié)或吉字節(jié)的RAM。在不偏離本發(fā)明的范圍下,可以使用更多或更少的存儲器。只讀存儲器(ROM)1-3包含基本輸入/輸出系統(tǒng)代碼¢10-應(yīng)用程序和操作系統(tǒng)可以用來與硬件交互,包括從鍵盤讀取字符,將字符輸出到打印機(jī)等等的ROM中的低級例程的集合。大容量存儲裝置115,116提供在固定和可移動介質(zhì),如磁、光或磁-光存儲系統(tǒng),閃存或其它任何適當(dāng)?shù)拇笕萘看鎯夹g(shù)上的永久存儲。大容量存儲可以被共享于網(wǎng)絡(luò)上,或者它可以是專用大容量存儲。如圖1所示,固定存儲116存儲用于引導(dǎo)包括操作系統(tǒng)、用戶應(yīng)用程序、驅(qū)動程序和其它支持文件,以及所有分類的其它數(shù)據(jù)文件的計算機(jī)系統(tǒng)的操作的程序和數(shù)據(jù)的主體。典型地,固定存儲116用作系統(tǒng)的主硬盤。在基本操作中,程序邏輯(包括實現(xiàn)下文描述的本發(fā)明的方法)從可移動存儲115或固定存儲116加載到主(RAM)存儲器102,用于由CPU101執(zhí)行。在程序邏輯的操作處理中,系統(tǒng)100接收來自鍵盤106和指針裝置108以及來自語音識別系統(tǒng)(未顯示)的基于語音的輸入的用戶輸入。鍵盤106允許選擇應(yīng)用程序,基于鍵盤的輸入或數(shù)據(jù)的輸入,和選擇并操縱屏幕或顯示裝置105上顯示的各個數(shù)據(jù)對象。同樣,指針裝置108,諸如鼠標(biāo)、跟蹤球,筆裝置等等允許選擇和操作顯示裝置上的對象。以此方式,這些輸入裝置支持系統(tǒng)上運行的任何處理的手工用戶輸入。計算機(jī)系統(tǒng)100在顯示裝置105上顯示文本和/或圖形圖像和其它數(shù)據(jù)。視頻適配器104被置于顯示器105和系統(tǒng)的總線之間,驅(qū)動顯示裝置105。視頻適配器104包括可訪問CPU101的視頻存儲器,提供將存儲在視頻存儲器中的像素數(shù)據(jù)轉(zhuǎn)換成適于以陰極射線管(CRT)光柵或液晶顯示器(LCD)監(jiān)視器的光柵信號的電路。系統(tǒng)100內(nèi)的顯示信息或其它信息的硬拷貝可以從打印機(jī)107或其它輸出裝置獲得。打印機(jī)107可包括例如用于創(chuàng)建系統(tǒng)輸出的硬拷貝圖像的HPLaserjet打印機(jī)(可從HewlettPackardofPaloAlto,Calif.獲得)。系統(tǒng)本身與其它裝置(例如,其它計算機(jī))通過連接到網(wǎng)絡(luò)(例如,以太網(wǎng)、藍(lán)牙無線網(wǎng)絡(luò)等等)的網(wǎng)絡(luò)接口卡(NIC)111,和/或調(diào)制解調(diào)器112(例如,56K調(diào)制解調(diào)器傳輸數(shù)據(jù)的速率,ISDN,DSL或線纜調(diào)制解調(diào)器),其例子可從3ComofSantaClara,Calif獲得。系統(tǒng)100還可與本地偶爾連接的裝置(例如,串行電纜鏈接裝置)通過通信(COMM)接口110通信,其可包括RS-232串行口,通用串行總線(USB)接口等。通常本地連接到接口110的裝置包括膝上型計算機(jī),手持管理器,數(shù)字照相機(jī)等等。IBM兼容個人計算機(jī)和服務(wù)器計算機(jī)可從各個廠商獲得。代表性的廠商包括戴爾計算機(jī)(DellcomputerofRoundRock,Tex.),Hewlett-PackardofPaloAlto,Calif.,和IBMofArmonk,N.Y.。其它適用的計算機(jī)包括可從AppleComputerofCupertino,Calif獲得的蘋果兼容計算機(jī)(例如Macintosh)和可從SunMicrosystemsofMountainView,Calif獲得的SunSolaris工作站。典型地提供軟件系統(tǒng)以控制計算機(jī)系統(tǒng)100的操作。軟件系統(tǒng)通常保存在系統(tǒng)存儲器(RAM)102中和固定存儲(例如硬盤)116中,包括內(nèi)核或操作系統(tǒng)(OS),其管理計算機(jī)操作的低級方面,包括管理處理的執(zhí)行,存儲器分配,文件輸入和輸出(1/0),和裝置I/0。OS■白勺MicrosoftWindowsNT,MicrosoftWindows2000,MicrosoftWindowsXP或MicrosoftWindowsVista(MicrosoftCorporationofRedmond,Wash)或諸如之前提到的操作系統(tǒng)的可替代操作系統(tǒng)提供。典型地,OS與裝置驅(qū)動器(例如,“Winsock”驅(qū)動器-Window的TCP/IP堆棧實現(xiàn))和系統(tǒng)BIOS微代碼(即基于ROM的微代碼)結(jié)合操作,特別是當(dāng)與外圍裝置交互時。還可以提供諸如客戶應(yīng)用軟件或“程序”(即處理器可執(zhí)行指令的集合)的一個或多個應(yīng)用以由計算機(jī)系統(tǒng)100執(zhí)行。旨在用于計算機(jī)系統(tǒng)上的(一個或多個)應(yīng)用或其它軟件可從固定存儲116被“加載”到存儲器102中,或可以從互聯(lián)網(wǎng)位置(例如網(wǎng)絡(luò)服務(wù)器)下載。圖形用戶界面(GUI)通常被提供以用圖形方式(例如“點-擊”)接收用戶命令和數(shù)據(jù)。這些輸入又可以由計算機(jī)系統(tǒng)根據(jù)來自O(shè)S和/或(一個或多個)應(yīng)用來施加作用。圖形用戶界面還用來顯示OS和(一個或多個)應(yīng)用的結(jié)果。盡管本發(fā)明可在單個(獨立的)計算機(jī)(例如圖1的系統(tǒng)100)中操作,本發(fā)明優(yōu)選實現(xiàn)于多用戶計算機(jī)系統(tǒng)中,諸如客戶機(jī)/服務(wù)器系統(tǒng)。圖2說明用于實現(xiàn)本發(fā)明的客戶機(jī)/服務(wù)器數(shù)據(jù)庫系統(tǒng)200的大致結(jié)構(gòu)。(在下文的后面部分描述用于實現(xiàn)本發(fā)明的方法的系統(tǒng)200的特定修改。)如圖所示,系統(tǒng)200包括通過網(wǎng)絡(luò)220連接到服務(wù)器230的一個或多個客戶機(jī)210。特別地,客戶機(jī)210包括使用傳統(tǒng)網(wǎng)絡(luò)連接到數(shù)據(jù)庫服務(wù)器系統(tǒng)240的一個或多個獨立終端211。在一個示例性實施例中,終端211本身可包括多個獨立工作站,啞終端等等,或包括諸如上述的系統(tǒng)100的個人計算機(jī)(PC)。典型地,此類單元可工作在客戶機(jī)操作系統(tǒng)下,諸如Microsoft扱Windows客戶機(jī)操作系統(tǒng)(例如Microsoft扱Windows95/98,Windows2000,WindowsXP)。數(shù)據(jù)庫服務(wù)器系統(tǒng)240在一個示例性實施例中包括Syl3aseBAdaptivekrver孩Enterprise(ASE)(可從Sybase,Inc.ofDublin,Calif.獲得),通常作為獨立處理(即,獨立于客戶機(jī))操作,運行在服務(wù)器操作系統(tǒng),諸如Microsoft扱WindowsNT,Windows2000,WindowsXP(gMicrosoftCorporationofRedmond,Wash),UNIX(Novell),Solaris(Sun)^Linux(RedHat)。網(wǎng)絡(luò)220可以是許多傳統(tǒng)網(wǎng)絡(luò)系統(tǒng),包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)中的任何一個,這是本領(lǐng)域已知的(例如,使用以太網(wǎng),IBM令牌環(huán)網(wǎng)等等)。網(wǎng)絡(luò)220包括用于以眾所周知的結(jié)構(gòu)化查詢語言(SQL)將客戶機(jī)呼叫連同任何參數(shù)信息一起打包成適于傳送到數(shù)據(jù)庫服務(wù)器系統(tǒng)240的格式(一個或多個包)的功能。所描述的計算機(jī)硬件和軟件是出于說明可用來實現(xiàn)本發(fā)明的基本的基礎(chǔ)桌面和服務(wù)器計算機(jī)組件的目的呈現(xiàn)的。為討論目的,下面的描述將呈現(xiàn)假設(shè)在群集中存在與一個或多個“客戶機(jī)”(例如個人計算機(jī)或移動裝置)交互的多個服務(wù)器實例(例如數(shù)據(jù)庫服務(wù)器節(jié)點)。但是,本發(fā)明并不局限于任何具體的環(huán)境或裝置配置。而是,本發(fā)明可以用能夠支持下面詳細(xì)提出的本發(fā)明的方法的任何類型的系統(tǒng)架構(gòu)或處理環(huán)境實現(xiàn)。客戶機(jī)/服務(wù)器環(huán)境、數(shù)據(jù)庫服務(wù)器和網(wǎng)絡(luò)在技術(shù)、貿(mào)易和專利文獻(xiàn)中有充分記載。在操作中,客戶機(jī)210在一個或多個數(shù)據(jù)庫表250中存儲數(shù)據(jù),或從一個或多個數(shù)據(jù)庫表250中檢索數(shù)據(jù),如圖2所示。關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)被存儲為一系列表,也稱為關(guān)系。通常駐存在服務(wù)器230上的每個表本身包括一個或多個“行”或“記錄”(元組)(例如,圖2中所示的行255)。典型的數(shù)據(jù)庫包含許多表,每個表存儲關(guān)于特定類型的實體的信息。典型的關(guān)系數(shù)據(jù)庫中的表可包含從幾行到上百萬行的任何數(shù)目。行被劃分成字段或列,每個字段表示給定行的一個具體屬性。例如,對應(yīng)于雇員記錄的行可包括關(guān)于雇員的ID號、名字和首字母、位置、雇用日期、社會保障號(SSN)和薪水的信息。這些類別中的每一個又表示一個數(shù)據(jù)庫字段。例如,在前面的雇員表中,位置是一個字段,雇用日期是另一字段,以此類推。采用這種格式,表易于用戶理解和使用。而且,表的靈活性允許用戶根據(jù)需要定義數(shù)據(jù)的各個項目之間的關(guān)系。因此,典型的記錄包括關(guān)于個人、地方或事情的幾類信息。表中的每一行是由記錄ID(RID)唯一標(biāo)識的,其可用作給定行的指針。多數(shù)關(guān)系數(shù)據(jù)庫實現(xiàn)結(jié)構(gòu)化查詢語言(SQL)的變體,SQL是一種允許用戶和管理員創(chuàng)建、操作和存取存儲在數(shù)據(jù)庫中的數(shù)據(jù)的語言。SQL的語法有充分記載,例如參見上述的“AnIntroductiontoDatabaseSystems(數(shù)據(jù)庫系統(tǒng)介紹)”。SQL語句可劃分成兩類用來讀、寫數(shù)據(jù)的數(shù)據(jù)操作語言(DML);和用來描述數(shù)據(jù)并維持?jǐn)?shù)據(jù)庫的數(shù)據(jù)定義語言(DDL)。DML語句也稱作查詢。在操作中,例如,客戶機(jī)210發(fā)出一個或多個SQL命令到服務(wù)器230。SQL命令可指定例如用于從數(shù)據(jù)庫表250中檢索具體數(shù)據(jù)(即,滿足查詢條件的數(shù)據(jù)記錄)的查詢。除了從數(shù)據(jù)庫服務(wù)器表250中檢索數(shù)據(jù)之外,客戶機(jī)210還具有發(fā)出命令以將新的數(shù)據(jù)記錄行插入到表中,或更新和/或刪除表中的現(xiàn)有記錄的能力。SQL語句或簡單的“查詢”必須被解析以確定存取計劃(也被稱為“執(zhí)行計劃”或“查詢計劃”),從而滿足給定查詢。在操作中,從客戶機(jī)210(通過網(wǎng)絡(luò)220)接收的SQL語句被數(shù)據(jù)庫服務(wù)器系統(tǒng)MO的引擎260處理。引擎260本身包括解析器沈1、規(guī)范器沈3、編譯器沈5、執(zhí)行單元269和存取方法270。具體地,SQL語句被傳送到解析器沈1,解析器261使用傳統(tǒng)的解析方法(例如遞歸下降分析)。被解析的查詢?nèi)缓蟊灰?guī)范器263規(guī)范化。規(guī)范化包括例如冗余數(shù)據(jù)的去除。另外,規(guī)范器263執(zhí)行錯誤校驗,諸如確認(rèn)出現(xiàn)在查詢中的表名字和列名字是有效的(例如,可用并且匹配(belongtogether))。最后,規(guī)范器沈3還可以查詢存在的任何參照完整性約束,并將其加入到查詢中。在規(guī)范化之后,查詢被傳送到編譯器沈5,編譯器265包括優(yōu)化器266和代碼生成器沈7。優(yōu)化器266執(zhí)行基于成本的分析,以制定出合理接近最優(yōu)計劃的查詢執(zhí)行計劃。代碼生成器267將由查詢優(yōu)化器266選擇的查詢執(zhí)行計劃翻譯成可執(zhí)行形式以由執(zhí)行單元269使用存取方法270執(zhí)行。在典型的關(guān)系數(shù)據(jù)庫系統(tǒng)中的所有數(shù)據(jù)被存儲在通常是硬盤的二級存儲裝置上的頁面中。典型地,這些頁面的大小范圍從1Kb到32Kb,最常用的頁面大小是2Kb和4Kb。相對二級存儲的所有輸入/輸出操作(I/O)是在頁面大小的單元中進(jìn)行的,即,整個頁面被一次讀/寫。每次頁面還會被分配用于一個目的數(shù)據(jù)庫頁面可以用來存儲表數(shù)據(jù)或用于虛擬存儲器,但不會用作此兩者。已經(jīng)從硬盤讀取的頁面存在于其中的存儲器被稱作高速緩存或緩沖池。往來于硬盤的I/O往往是執(zhí)行查詢時最費時的操作。這是由于,與主存儲器(例如RAM)的相對低的等待時間相比,與物理介質(zhì)關(guān)聯(lián)的等待時間。因此可以通過降低必須完成的I/O操作的數(shù)目來提高查詢性能。這可以通過使用最大化已知駐存在高速緩存中的頁面的使用的數(shù)據(jù)結(jié)構(gòu)和算法來完成??商娲兀淇杀皇紫韧ㄟ^哪些頁面被加載到高速緩存中的更大的選擇性來完成。關(guān)于I/O另一個的考慮是它是順序的還是隨機(jī)的。由于硬盤的結(jié)構(gòu),順序I/O比隨機(jī)存取I/O更快。鼓勵使用順序I/O的數(shù)據(jù)結(jié)構(gòu)和算法可實現(xiàn)更好性能。本發(fā)明通過利用動態(tài)散列表(DHT)數(shù)據(jù)結(jié)構(gòu)的存取方法,為更高效的查詢處理特別是點查詢(精確匹配)處理提高I/O性能。下面的術(shù)語是出于說明目的而不是限制目的提供的,以便幫助理解接下來的討論。散列函數(shù)指任何定義好的過程或算術(shù)函數(shù),它將大的大小可能變化的數(shù)據(jù)轉(zhuǎn)換成通常是可用作數(shù)組索引的單個整數(shù)的小數(shù)據(jù)。散列關(guān)鍵字指其值可用作用于查詢(例如SSN,名字)的散列函數(shù)的輸入。散列關(guān)鍵值指散列關(guān)鍵字(列)的值。散列值指由散列函數(shù)為給定散列關(guān)鍵字(例如與SSN關(guān)聯(lián)的名字)返回的值。沖突指超過一個散列關(guān)鍵字的值具有相同散列值。散列表指包含頁面集合的表,頁面集合進(jìn)一步包含通過散列函數(shù)可直接存取的項目。散列表不包含任何索引頁面。動態(tài)散列表(DHT)指大小可隨著數(shù)據(jù)集大小的增加而擴(kuò)展的散列表。散列區(qū)指分配給包含散列數(shù)據(jù)列的散列表的數(shù)據(jù)頁面的集合。散列函數(shù)在散列區(qū)上均勻地分配數(shù)據(jù)行。散列區(qū)是預(yù)分配的。散列區(qū)中的數(shù)據(jù)頁面必須是連續(xù)的以簡化將散列值映射到散列區(qū)中的頁面號,這也是為了映射的性能。原始頁面指通過散列函數(shù)可直接存取的散列表中的數(shù)據(jù)頁面。它們是預(yù)分配的。散列區(qū)中的所有數(shù)據(jù)頁面是原始頁面。溢出頁面指被創(chuàng)建成保存溢出數(shù)據(jù)并在原始頁面不能保存該數(shù)據(jù)時與原始頁面鏈接的頁面。溢出頁面不一定是預(yù)分配的。參照圖3的框圖,根據(jù)本發(fā)明的實施例,高效查詢處理開始于動態(tài)散列表(DHT)的創(chuàng)建(塊300)。根據(jù)DDL,通過類似于目前針對劃分子句使用的的散列群集子句擴(kuò)展已知的創(chuàng)建表語句導(dǎo)致該創(chuàng)建。例如createtable[database,[owner]·]table_name......[hash_cluster_clause]Hash_cluster_clause::=[[CONSTRAINTconstraint_name]{UNIQUEIPRIMARYKEY}]HASHCLUSTERED(column_name[{,column_name}···])WITHHASHVALUES=numberofhashvalues[,SIZE=bytes_per_row][,RESERVERATE=percentage_of_reserve_space]其中CONSTRAINT引入唯一或主關(guān)鍵字約束的名字,它被在DHT中定義在散列關(guān)鍵字列上。constranit_name是DHT中散列關(guān)鍵字列上的唯一或主關(guān)鍵字約束的名字。UNIQUE約束指定列中的值,使得沒有兩行具有相同值。此約束不創(chuàng)建任何索引,并且是DHT中的散列關(guān)鍵字強(qiáng)制要求的。PRIMARYKEY約束指定列中的值,使得沒有兩個行具有相同值,并且使得值不可能是NULL。此約束不會創(chuàng)建任何索引,是由DHT中的散列關(guān)鍵字強(qiáng)制要求的。HASHCLUSTERED表示該表是DHT。columruname在散列群集子句中使用時,指定散列關(guān)鍵字列。用戶可以通過列的集合執(zhí)行散列,這些列可以是任何數(shù)據(jù)類型。復(fù)制的散列關(guān)鍵值是被允許的,但它會阻礙DHT的性能。HASHVALUES=number_of_hash_values規(guī)定當(dāng)創(chuàng)建散列表時散列表中不同散列值的數(shù)目。SIZE=byteS_per_r0W規(guī)定每個數(shù)據(jù)行將占據(jù)的字節(jié)的數(shù)目(例如,數(shù)據(jù)行的中值大小)。如果用戶不規(guī)定它,則使用數(shù)據(jù)行的最大大小(例如,varchar(lOO)將計算為100字節(jié))。RESERVERATE=percentage^f_reserve_space規(guī)定每個數(shù)據(jù)頁面中保留的以防沖突的空間的百分?jǐn)?shù),下文將進(jìn)一步描述。如果用戶不規(guī)定它,則0%空間會保留以用于潛在的沖突數(shù)據(jù)項目。例如,Createtableorder—line(idint,ageint,namevarchar(100),Hashclustered(id,age)WithHashvalues=10000,Size=30,Reserverate=20)會創(chuàng)建以id和年齡(都是integer(int)類型)散列化的表。預(yù)期的行大小是30字節(jié)(如果“大小”沒有規(guī)定,則實際會使用108字節(jié)G+4+100)),10000個散列值被保留。每個頁面中20%的空間被保留用于沖突數(shù)據(jù)項目。如果頁面大小是2K,則53個槽會通過散列函數(shù)映射到每個數(shù)據(jù)頁面。散列表的性能很大程度上取決于如何處理沖突。ASEDHT使用下面兩種方法來避免可能由沖突引起的額外1/0。首先,在優(yōu)選實施例中,數(shù)據(jù)記錄被映射到特定頁面而不是頁面中的槽。因此,只要原始頁面仍然能保存所有數(shù)據(jù)項目,則不需要分配溢出頁面,從而每個頁面可以吸收一些沖突,而不使用溢出頁面,這還可能使得額外的1/0以用于以后的檢索。例如,假設(shè)散列列值是“Tony”的第一數(shù)據(jù)項目被保存在頁面中的第一數(shù)據(jù)槽,散列列值是“Terada”的第二數(shù)據(jù)項目具有相同的散列值。如果每個數(shù)據(jù)項目被映射到特定頁面中的特定槽,則第二數(shù)據(jù)項目會映射到與“Tony”相同的槽。由于第一槽已經(jīng)被占據(jù),會需要溢出頁面P’,之后的所有檢索需要存取溢出頁面(P’)。但是,在本發(fā)明中,第二數(shù)據(jù)項目的插入不會引起溢出頁面P’的創(chuàng)建,這是由于它將被保存在該頁面的第二數(shù)據(jù)槽中。第二,每個原始頁面中的某些空間會被保留以存儲可能由沖突引入的額外數(shù)據(jù)項目,用戶可以在創(chuàng)建DHT時規(guī)定該參數(shù)。例如,如果每個原始頁面可存儲50個數(shù)據(jù)項目,保留率是20(即reserverate=20),則只有40個數(shù)據(jù)項目會映射到一個原始頁面。每個原始頁面可存儲10個可能由沖突引入的另外的數(shù)據(jù)項目。因此,不太可能創(chuàng)建溢出頁面,較少的額外I/O會被用于數(shù)據(jù)檢索。在創(chuàng)建DHT時,提供具有極大規(guī)模(例如GB,吉字節(jié))的所分配的存儲的預(yù)定連續(xù)空間。在本發(fā)明的示例性實施例中,通過擴(kuò)展SykiseASE內(nèi)的alterdatabase命令中的頁面分配機(jī)制使用,得到極大規(guī)模分配(ELSA),以便避免鎖定整個數(shù)據(jù)庫,并保證快速分配極大的連續(xù)空間。應(yīng)該認(rèn)識到盡管此描述涉及ASE的功能,但其含義是說明性的而不是限制性的。因此,適當(dāng)時可以采用適于提供所描述的ELSA的技術(shù)。更多細(xì)節(jié)在下文說明。在ASE中,系統(tǒng)表“sysdevices”包含用于每個帶轉(zhuǎn)儲裝置、硬盤轉(zhuǎn)儲裝置、用于數(shù)據(jù)庫的硬盤、用用于數(shù)據(jù)庫的硬盤分區(qū)的一行,系統(tǒng)表“sysusages”包含用于為數(shù)據(jù)庫分配的每個硬盤分配段的一行。ELSA會打開這兩個表,找到硬盤裝置上為數(shù)據(jù)庫分配的空閑的連續(xù)硬盤空間。然后ELSA將該空間標(biāo)記為被DHT占用。ELSA可以比常規(guī)頁面分配快很多的原因主要有兩個1.由于頁面被連續(xù)分配,它使用大的I/O子系統(tǒng)。在現(xiàn)代計算機(jī)系統(tǒng)中,到連續(xù)硬盤空間的順序I/O可以粗略地比對隨機(jī)硬盤空間的I/O快10-30倍。2.它減少了登錄活動。常規(guī)頁面分配對于每個頁面分配需要一個登錄記錄。在ELSA中,不管分配多少頁面(例如,上千,上百萬等),只有一個登錄記錄是需要用于頁面分配的??梢韵龢?gòu)建登錄記錄并將它們刷新到硬盤中的大量時間。圖4說明根據(jù)優(yōu)選實施例在分配空間中DHT的存儲布局400的框圖表示。頁面P。到Pn包括預(yù)分配散列區(qū),溢出數(shù)據(jù)頁面Pi,Pj包括在常規(guī)數(shù)據(jù)區(qū)中分配的通常理解為遵循常規(guī)數(shù)據(jù)頁面分配代碼路徑的頁面。應(yīng)該認(rèn)識到DHT的存儲布局允許與其它對象共享存儲區(qū)段,不要求排它的區(qū)段。在操作中,存儲DHT400的利用繼續(xù)進(jìn)行數(shù)據(jù)庫查詢操作(圖3,塊302)。利用DHT,不需要對于DML(數(shù)據(jù)操作語言)的語法變化,使得用戶可以在DHT上使用與常規(guī)表相同的DML。優(yōu)化器(圖2二66)選擇是否使用散列函數(shù),這是本領(lǐng)域技術(shù)人員很容易理解的。通過例子,在一個示例性實施例中,在UPDATE查詢操作中,如果在所有的散列關(guān)鍵字列上定義EQUISARGS(相等搜索自變量),則目標(biāo)頁面可基于散列函數(shù)直接計算。否則,非群集索引(如果存在)會用來定位目標(biāo)頁面。如果沒有非群集索引,則使用表掃描。對于表掃描,表掃描優(yōu)選從預(yù)分配區(qū)中的第一頁面開始,所有溢出頁面也要訪問。而且,UPDATE可能引起原始頁面溢出,并且創(chuàng)建溢出頁面。如果UPDATE涉及散列關(guān)鍵字列變化,優(yōu)選數(shù)據(jù)項目會從原始槽從刪除,并基于其新散列值插入到另一槽中。對于DHT中的DELETE,如果EQUISARGS是在所有關(guān)鍵字列上定義的,則目標(biāo)頁面會基于散列函數(shù)直接計算。原始頁面和其溢出頁面(如果存在)會被搜索,相應(yīng)記錄會被刪除。即使在刪除之后數(shù)據(jù)頁面中沒有頁面項目,常規(guī)區(qū)中的溢出數(shù)據(jù)頁面會被去分配(de-allocate),而散列區(qū)中的原始數(shù)據(jù)頁面不會被去分配。否則,非群集索引會用來定位頁面。如果沒有非群集索引,則會使用表掃描。對于精確匹配或點查詢操作,如果EQUISARGS是在所有關(guān)鍵字列上定義的,則目標(biāo)頁面會基于散列函數(shù)直接計算。原始頁面和其溢出頁面(如果存在)會被搜索,相應(yīng)記錄如果存在則會被獲取。否則,非群集索引會用來定位頁面。如果沒有非群集索引,則會使用表掃描。對于DHT中的INSERT,目標(biāo)頁面會基于散列函數(shù)直接計算。如果存在溢出,則溢出數(shù)據(jù)頁面會在常規(guī)數(shù)據(jù)頁面區(qū)中分配。而且,如果DHT加載因子達(dá)到預(yù)定閾值(圖3的塊304是肯定的),INSERT可能會導(dǎo)致需要擴(kuò)展DHT。“加載因子”作為應(yīng)用到在一個數(shù)據(jù)庫實例中創(chuàng)建的所有DHT的系統(tǒng)配置變量,并反映已經(jīng)插入在DHT中的數(shù)據(jù)項目的數(shù)目除以可存儲在DHT中的總數(shù)數(shù)據(jù)項目(不包括每個頁面的保留空間和用于沖突的溢出頁面)的閾值。當(dāng)閾值滿足時,需要擴(kuò)展觸發(fā)ELSA用于分配適當(dāng)?shù)拇鎯臻g,以及線性散列函數(shù)來增加散列表中頁面的數(shù)目,而不中斷數(shù)據(jù)元素的數(shù)據(jù)存取(塊306)。優(yōu)選地,插入和ELSA作為兩個單獨的事務(wù)處理被提供,ELSA被作為系統(tǒng)事務(wù)處理調(diào)度,以便避免如果作為子事務(wù)處理則可能會出現(xiàn)的用戶不可接受的延遲,這是由于分配空間會隨著DHT的增長而花費更多時間。優(yōu)化通過線性散列得到,其中散列表的擴(kuò)展是自動發(fā)生的?,F(xiàn)在參照圖fe_5d,呈現(xiàn)如何可以使用線性散列函數(shù)來增大表的一個例子。如已知的,線性散列函數(shù)的通常形式由Hj(K)=g(K)mod(N*2)給出,這里g(K)是標(biāo)準(zhǔn)散列函數(shù),N是散列區(qū)中的初始頁面數(shù)目,且j=0,l,2,…,并記錄散列函數(shù)的等級。例如,氏⑷=g(K)modNjH1(K)=g(K)mod2N。如圖fe的例子所示,一開始為散列表分配5個頁面P0-P4,散列函數(shù)是Htl(K)=Kmod5,其中K是使用的散列關(guān)鍵字,每個頁面可以存儲10個記錄。考慮0.8(表示插入元素的數(shù)目與被分配槽的數(shù)目的比率)的預(yù)定加載因子,當(dāng)散列表中有40個數(shù)據(jù)項目時會分配另5個頁面,P5-P9(圖恥)。為了分開一個頁面,引入新函數(shù)H1=Kmod10。以此方式,對于被Htl散列化的散列表中的PO中的每一個,大約一半的數(shù)據(jù)項目會保持在PO中,一半會在由&散列化的表的P5中(圖5c)。當(dāng)前的分裂指針(CP)被初始化為0,用來記錄下一分裂頁面。在DHT使其空間加倍之后,每個隨后插入會觸發(fā)一個頁面分裂,直到原始散列表中所有頁面已經(jīng)分裂,CP增加1,如圖5d所示。通過根據(jù)I^geNo=H0(K),如果I^ageNo<CP,否則I^ageNo=H1(K)確定頁面數(shù)目(I^ageNo),發(fā)生定位每個散列關(guān)鍵字。一開始,由于CP=0,只使用Htl(K)15在頁面分開處理中,使用Hci(K)和氏⑷兩者。在所有頁面分開之后,Htl(K)會被H1(K)取代,CP被重置為0,這是本領(lǐng)域技術(shù)人員能很好理解的。通過使用線性散列為擴(kuò)展DHT,DHT提供不中斷的服務(wù)(即不需要周期性的表重新組織)用于連續(xù)數(shù)據(jù)庫操作(圖3的塊302)。這避免了已知的用戶必須創(chuàng)建新散列表然后從原始散列表中拷貝數(shù)據(jù)的那些散列表方法的問題,如果散列表的大小變得比其原始估計大小大,則在該時間中,散列表中的數(shù)據(jù)暫時是不可存取的,降低了數(shù)據(jù)服務(wù)器的在線時間。但是,在本發(fā)明中,線性散列適于提供在線服務(wù)而不明顯中斷數(shù)據(jù)存取。實驗證據(jù)表明本發(fā)明的動態(tài)散列表方法具有比已知的用于精確匹配/點查詢操作的B-樹存取方法顯著更好的性能(快3倍之多)。而且,因為本發(fā)明的DHT沒有元數(shù)據(jù)頁面,所以高速緩存在存在大的數(shù)據(jù)集時提供具體數(shù)據(jù)頁面的更大可能性。盡管上文已經(jīng)描述了本發(fā)明的各個實施例,但是應(yīng)該理解它們只是作為例子而不是限制呈現(xiàn)的。相關(guān)領(lǐng)域技術(shù)人員應(yīng)該理解在不偏離如所附權(quán)利要求中限定的本發(fā)明的范圍下可以對其進(jìn)行各種形式和細(xì)節(jié)上的改變。應(yīng)該理解,本發(fā)明不局限于這些例子。本發(fā)明可應(yīng)用于如本文中描述操作的任何元件。因此,本發(fā)明的寬度和范圍不應(yīng)該由上述的示例性實施例中的任何一個限制,而只根據(jù)所附權(quán)利要求書和其等同物來定義。權(quán)利要求1.一種獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)元素的高效數(shù)據(jù)存取的計算機(jī)實現(xiàn)的方法,所述方法包括a、在所分配的存儲的預(yù)定連續(xù)空間中為數(shù)據(jù)庫的數(shù)據(jù)元素建立散列表;和b、在數(shù)據(jù)庫查詢操作過程中通過線性散列優(yōu)化所述散列表的利用,其中所述散列表的擴(kuò)展自動發(fā)生以增加所述散列表中的頁面數(shù)目,而沒有明顯中斷所述數(shù)據(jù)元素的數(shù)據(jù)存取。2.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,其中優(yōu)化進(jìn)一步包括監(jiān)控預(yù)定加載因子以識別何時自動增加所述散列表中的頁面數(shù)目。3.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,其中優(yōu)化進(jìn)一步包括在所述散列表中保留每個頁面的預(yù)定部分以防沖突。4.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,進(jìn)一步包括基于頁面標(biāo)識符在所述散列表中映射數(shù)據(jù)元素。5.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,進(jìn)一步包括根據(jù)需要在所述所分配的存儲之外的數(shù)據(jù)區(qū)中為所述散列表的溢出分配頁面。6.根據(jù)權(quán)利要求1所述的計算機(jī)實現(xiàn)的方法,其中建立進(jìn)一步包括利用單個命令語句來創(chuàng)建所述散列表。7.一種獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)元素的高效數(shù)據(jù)存取的計算機(jī)實現(xiàn)的方法,所述方法包括a、以單個命令語句在保留的連續(xù)存儲空間的預(yù)定分配中創(chuàng)建無索引散列表;b、在數(shù)據(jù)庫操作過程中根據(jù)需要基于加載因子在所述無索引散列表中增加條目;和C、在所述無索引散列表中通過數(shù)據(jù)列的散列將數(shù)據(jù)元素映射到精確頁面。8.根據(jù)權(quán)利要求7所述的計算機(jī)實現(xiàn)的方法,其中增加條目進(jìn)一步包括線性散列。9.根據(jù)權(quán)利要求7所述的計算機(jī)實現(xiàn)的方法,其中單個命令語句進(jìn)一步包括具有散列群集子句的創(chuàng)建表語句。10.根據(jù)權(quán)利要求7所述的計算機(jī)實現(xiàn)的方法,進(jìn)一步包括在所述無索引散列表中保留每個頁面的預(yù)定部分以防沖突。11.根據(jù)權(quán)利要求7所述的計算機(jī)實現(xiàn)的方法,進(jìn)一步包括根據(jù)需要在保留的連續(xù)存儲空間的預(yù)定分配之外的數(shù)據(jù)區(qū)中為所述無索引散列表的溢出分配頁面。12.—種獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中的數(shù)據(jù)元素的高效數(shù)據(jù)存取的系統(tǒng),所述系統(tǒng)包括a、存儲裝置;b、耦連到所述存儲裝置的處理裝置;和C、耦連到所述存儲裝置并由所述處理裝置控制的數(shù)據(jù)庫管理裝置,所述數(shù)據(jù)庫管理裝置在具有極大規(guī)模的所分配的存儲的預(yù)定連續(xù)空間中為數(shù)據(jù)庫的數(shù)據(jù)元素創(chuàng)建散列表,并在數(shù)據(jù)庫查詢操作中通過線性散列優(yōu)化所述散列表的利用,其中所述散列表的擴(kuò)展自動發(fā)生以增加所述散列表中頁面的數(shù)目,而不中斷所述數(shù)據(jù)元素的數(shù)據(jù)存取。13.根據(jù)權(quán)利要求12所述的系統(tǒng),其中優(yōu)化進(jìn)一步包括監(jiān)控預(yù)定加載因子以識別何時自動增加所述散列表中的頁面數(shù)目。14.根據(jù)權(quán)利要求12所述的系統(tǒng),其中優(yōu)化進(jìn)一步包括在所述散列表中保留每個頁面的預(yù)定部分以防沖突。15.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述數(shù)據(jù)庫管理裝置進(jìn)一步基于頁面標(biāo)識符在所述散列表中映射數(shù)據(jù)元素。16.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述數(shù)據(jù)庫管理進(jìn)一步根據(jù)需要在所述所分配的存儲之外的數(shù)據(jù)區(qū)中為所述散列表的溢出分配頁面。17.根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述數(shù)據(jù)庫管理裝置進(jìn)一步基于單個命令語句來創(chuàng)建所述散列表。18.—種包括計算機(jī)可用介質(zhì)的計算機(jī)程序產(chǎn)品,所述計算機(jī)可用介質(zhì)上記錄有使處理器能夠獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)元素的高效數(shù)據(jù)存取的計算機(jī)程序邏輯,所述計算機(jī)程序邏輯包括數(shù)據(jù)庫管理裝置,用于使處理器能夠在具有極大規(guī)模的所分配的存儲的預(yù)定連續(xù)空間中為數(shù)據(jù)庫的數(shù)據(jù)元素創(chuàng)建散列表,并在數(shù)據(jù)庫查詢操作過程中通過線性散列優(yōu)化所述散列表的利用,其中所述散列表的擴(kuò)展自動發(fā)生以增加所述散列表中頁面的數(shù)目,而不中斷所述數(shù)據(jù)元素的數(shù)據(jù)存取。19.根據(jù)權(quán)利要求18所述的計算機(jī)程序產(chǎn)品,其中所述散列表的創(chuàng)建進(jìn)一步包括由單個命令語句創(chuàng)建無索引的散列表。20.根據(jù)權(quán)利要求18所述的計算機(jī)程序產(chǎn)品,其中所述散列表的利用進(jìn)一步包括通過數(shù)據(jù)列的散列將數(shù)據(jù)元素映射到精確頁面。全文摘要本發(fā)明提供了用于獲得關(guān)系數(shù)據(jù)庫管理系統(tǒng)中數(shù)據(jù)元素的高效數(shù)據(jù)存取的各個方面。在計算機(jī)實現(xiàn)的方法方面,高效數(shù)據(jù)存取通過如下方式發(fā)生在所分配的存儲的預(yù)定連續(xù)空間中為數(shù)據(jù)庫的數(shù)據(jù)元素創(chuàng)建散列表,并在數(shù)據(jù)庫查詢操作過程中通過線性散列優(yōu)化散列表的利用,其中散列表的擴(kuò)展自動發(fā)生以增加散列表中頁面的數(shù)目,而沒有明顯中斷數(shù)據(jù)元素的數(shù)據(jù)存取。文檔編號G06F17/00GK102362273SQ201080013748公開日2012年2月22日申請日期2010年3月24日優(yōu)先權(quán)日2009年4月1日發(fā)明者周潘峰,寺田勝利,艷紅·王申請人:賽貝斯股份有限公司