專利名稱:對列進行自動重新排序以減少對齊陷阱的制作方法
技術(shù)領(lǐng)域:
本申請總體上涉及計算機和軟件系統(tǒng)。更特別地,本申請涉及數(shù)據(jù)庫系統(tǒng)。
背景技術(shù):
商業(yè)智能(Bi)數(shù)據(jù)庫處理駐留于大規(guī)模并行處理(MPP)系統(tǒng)內(nèi)的許多盤上的大 量數(shù)據(jù)。為BI數(shù)據(jù)庫存儲的數(shù)據(jù)量正以顯著的速率增長,并且BI數(shù)據(jù)庫需要掃描越來越 多的數(shù)據(jù)。表數(shù)據(jù)被分割于許多盤上以實現(xiàn)表數(shù)據(jù)的并行掃描以及過濾。此外,隨著數(shù)據(jù) 的增加,添加了更多的盤,因此需要越來越快的掃描速率。
圖1是示出使用對齊緩沖器來處理對齊陷阱(alignment trap)的傳統(tǒng)方法的流 程圖。圖2是描繪根據(jù)本發(fā)明的實施例的執(zhí)行自動化重新排序以用于對齊陷阱減少的 方法的流程圖。圖3示出指定數(shù)據(jù)庫的數(shù)據(jù)行內(nèi)的字段(列)的邏輯排序的示例創(chuàng)建表語句。圖4示出根據(jù)本發(fā)明的實施例的對字段進行重新排序以物理存儲在盤上。圖5A是示出根據(jù)本發(fā)明的實施例的接收創(chuàng)建表語句和使用確定性方法以生成用 于將數(shù)據(jù)存儲在盤上的物理順序的流程圖。圖5B是示出根據(jù)本發(fā)明的實施例的接收數(shù)據(jù)庫查詢和重新計算用來從盤訪問數(shù) 據(jù)的物理順序的流程圖。圖5C示出指示根據(jù)本發(fā)明的實施例所測試的各種方案的路徑改進的實驗結(jié)果。圖6是描繪可以被配置成執(zhí)行根據(jù)本發(fā)明的實施例的方法的示例計算機裝置的 示意圖。
具體實施例方式需要在商業(yè)智能(Bi)數(shù)據(jù)庫中處理的數(shù)據(jù)量正以顯著的速率增長。因而,以高效 的方式掃描大量數(shù)據(jù)并且過濾出需要的數(shù)據(jù)行是BI數(shù)據(jù)庫所面對的主要挑戰(zhàn)。對數(shù)據(jù)掃 描的任何改進可以顯著地改進系統(tǒng)中所有查詢的總吞吐量??赡艿脑挘瑪?shù)據(jù)庫通常將掃描謂詞向下推到最低層,以減少在系統(tǒng)中到處復制最 終被丟棄的大量數(shù)據(jù)。為了高效地評估關(guān)于駐留于數(shù)據(jù)訪問管理器層內(nèi)的數(shù)據(jù)的掃描謂 詞,列值通常必須在它們的正確的字節(jié)邊界上。不在它們的正確的字節(jié)邊界上的數(shù)字列值導致所謂的對齊陷阱(對齊安排 (fix-up))。在對齊陷阱中,在評估之前需要將數(shù)據(jù)復制到對齊緩沖器。因此,對齊陷阱導致性能損失。構(gòu)成過濾謂詞的列越多,成本就越高,因為每個列被獨立地處理。在BI情形中,存在具有許多列的許多表,使得用戶進行的正確對齊將是非常耗時 的過程。理論上,BI顧客能夠定義他們的表,以使得盡可能地使列正確對齊,但是這假定顧 客在某種程度上知道底層布局以及每種列類型所需的正確對齊。此外,這假設(shè)可以依賴于 顧客來為每個所創(chuàng)建的表完成這樣的對齊努力,因為對于每個數(shù)據(jù)庫來說表定義很可能不 同。此外,如果在表中存在可變長度的字段,則用戶不能確保每個數(shù)據(jù)行將在對齊的邊界上 開始,因為僅該值中的實際數(shù)目的字節(jié)被存儲而不是最大長度。本申請涉及用于使列對齊到正確的字節(jié)邊界的技術(shù)。用于使列對齊到正確的字節(jié) 邊界的簡單技術(shù)將是以在創(chuàng)建表語句中所指定的順序?qū)R數(shù)據(jù)記錄內(nèi)的所有字段。然而, 這將隱含地需要在不同數(shù)據(jù)類型的列值之間添加填充(padding),并且因此將需要附加的 盤空間來允許表數(shù)據(jù)擴展和增長,從而容納額外的填充。另一種技術(shù)是具有用于所有字段的偏移陣列。該技術(shù)將所有字段保持處于表定義 中所指定的相同邏輯順序。該技術(shù)需要配置硬件或固件來檢測未對齊的數(shù)據(jù)并且將其正確 地對齊,或者配置數(shù)據(jù)訪問管理器層來檢測該未對齊并且校正它。用于使列對齊到正確字節(jié)邊界的另一種技術(shù)是將記錄的所有固定長度字段緊密 地打包(pack)在一起。隨后,在掃描謂詞評估期間,可以檢查指針來查看它是否在字段 的正確字節(jié)邊界上。如果該指針不在字段的正確字節(jié)邊界上,則將該數(shù)據(jù)復制到側(cè)緩沖器 (side buffer)以用于評估。在圖1中給出了該技術(shù)的流程圖。如圖1所示,做出關(guān)于列值 是否被對齊到正確的字節(jié)邊界的確定102。如果是,則列值可以被評估106。如果否,則需 要附加步驟,其中將列值復制104到對齊緩沖器(側(cè)緩沖器)。此后,可以評估106(現(xiàn)在在 對齊緩沖器中的)列值。必須在每個行中針對被評估的每個列進行確定102。本申請公開了一種用于使列對齊到正確的字節(jié)邊界的新技術(shù),在該新技術(shù)中以有 利的方式重新排序在表定義中所指定的列,以便減少對齊陷阱的出現(xiàn)。換句話說,為了改進 掃描謂詞評估,基于每個字段的正確字節(jié)對齊來重新排序在創(chuàng)建表語句內(nèi)所指定的列的邏 輯順序并且然后以該物理順序?qū)⑵浯鎯υ诒P上的數(shù)據(jù)記錄內(nèi)。在該表的創(chuàng)建期間以及當插 入、更新、刪除和掃描記錄時以自動化方式執(zhí)行字段的這種重新排序。因此,該技術(shù)改進了 列到正確的字節(jié)邊界的對齊而無需顧客手動執(zhí)行這樣的任務(wù)并且無需在列值之間進行附 加的隱含填充。圖2是描繪根據(jù)本發(fā)明的實施例的執(zhí)行自動化重新排序以用于對齊陷阱減少的 方法的流程圖。該方法確定要在計算機可讀介質(zhì)上(即盤上)存儲的物理排序。在接收到 創(chuàng)建表語句(見框201)之后執(zhí)行該方法,所述創(chuàng)建表語句為數(shù)據(jù)庫表指定或定義字段的邏 輯順序。按照常規(guī),列的物理順序通常與在創(chuàng)建表語句中所指定的邏輯順 序相同。相反,本 申請公開了列的自動化重新排序以使得存儲在盤上的列的物理順序可能與創(chuàng)建表語句中 所指定的邏輯順序顯著不同。在圖2中示出的步驟被用于對列(字段)進行重新排序以便 確定在盤上存儲的物理順序以及數(shù)據(jù)行內(nèi)的每個字段的固定偏移。要求字節(jié)對齊的固定長度字段是需要在評估之前對齊到正確的字節(jié)邊界的字段 (見上面關(guān)于圖1的討論)。例如,在正在討論的典型數(shù)據(jù)庫系統(tǒng)中,數(shù)字字段和整數(shù)字段 是要求字節(jié)對齊的固定長度字段。要求字節(jié)對齊的固定長度字段要求對齊到2N(2的N次冪)字節(jié)邊界,其中N是整數(shù)。在第一步驟206中,選擇具有最大(或者并列最大)字節(jié)對齊要求(即具有最大 的N)的固定長度字段。根據(jù)下一步驟208,按物理排序接著定位(打包)所選擇的字段。隨后,做出關(guān)于是否剩余(尚未選擇)具有到2N字節(jié)邊界的字節(jié)對齊要求的任何 字段的確定210。如果存在剩余(尚未選擇)的一個或多個這樣的字段,則按照步驟212選 擇這些剩余字段中的一個,并且該方法返回以便根據(jù)步驟208按物理排序接著定位(打包) 所選擇的字段。另一方面,如果確定210不再存在剩余的(尚未選擇的)具有到2N字節(jié)邊界的字 節(jié)對齊要求的字段,則可以做出關(guān)于N是否為零的進一步確定214。如果N不為零,則在步 驟216中將N遞減一,并且該方法返回步驟210以便基于遞減的N值來確定是否剩余具有 到2n字節(jié)邊界的字節(jié)對齊要求的任何字段。另一方面,如果確定214N是零,則不再剩余具有字節(jié)對齊要求的字段,所以該方 法繼續(xù)前進并且根據(jù)步驟220按它們的(如在創(chuàng)建表語句中所指定的)邏輯順序選擇可變 長度字段且按物理排序接著定位它們。在隨后的步驟230中,確定所需的管理空間。在每個數(shù)據(jù)記錄開始處的該管理空 間將被零填充,并且然后當創(chuàng)建數(shù)據(jù)記錄時添加適合的報頭信息。將(使用零填充)向外 擴展該管理空間以確保第一字段的正確對齊。此后,按照步驟240,該方法經(jīng)過(go through)重新排序的固定字段并且為它們 中的每一個分配偏移。這些重新排序的固定長度字段將全部被打包在一起,因為重新排序 從最大的對齊字段開始。然后,按照步驟250,該方法經(jīng)過可變長度字段并且為它們中的每一個分配在所有 固定長度字段偏移之后獲得的(pick up)偏移。最后,按照步驟260,所有字段的總長度被 擴展成適當大小,其中對于所述可變長度列采取最大的大小。注意,當插入或更新記錄時將在第一固定長度字段之前以及在數(shù)據(jù)記錄末端處添 加填充。圖3中示出了示例創(chuàng)建表語句。在圖3的示例語句中,定義被命名為⑶STOMER 的表。按邏輯順序?qū)⒃摫淼淖侄位蛄卸x為custKey、name、address、nationKey、phone、 acctBal、mktSeg 禾口 comment。創(chuàng)建表語句還為每個列定義了字段的類型。如圖3的示例所示CUStKey字段是 整數(shù)字段;name列是長度可以高達25個字節(jié)的可變字符字段;address列是長度可以高達 40個字節(jié)的可變字符字段;nationKey字段是整數(shù)字段;phone列是長度為15個字節(jié)的固 定字符字段;acctBal列是存儲在8個字節(jié)中的寬度為12并且有2個小數(shù)位的數(shù)字字段; mktSeg列是長度為10個字節(jié)的固定字符字段;以及comment列是長度高達117個字節(jié)的 可變字符字段。還可以在創(chuàng)建表語句中定義其他特性,包括該表的主關(guān)鍵字、默認值、以及 字段是否是可丟棄的。當然,為了討論的目的圖3僅示出了一個示例創(chuàng)建表語句。圖4示出了給定圖3的示例創(chuàng)建表語句并且使用上面關(guān)于圖2所描述的重新排序 方法的物理存儲在盤上的字段的順序。圖4的頂部部分示出了重新排序之后用于物理存儲 的列,并且底部部分示出該記錄中的對應(yīng)字節(jié)計數(shù)。 如圖4所示,重新排序的記錄中的開頭列是按照圖2的步驟230確定的空間中的在記錄開始處的固定大小開銷或者管理字節(jié)。在該示例中,F(xiàn)F是2字節(jié)字段,其值指示到 數(shù)據(jù)記錄中的第一固定長度字段的偏移或零(如果沒有的話),且BO是2字節(jié)字段,其值指 示到空位圖(在下面討論)的偏移(如果存在空位圖的話)或者零(如果沒有的話)。 可變長度字段僅存儲所使用的字節(jié)而不是最大數(shù)目的字節(jié)。因此,必須存儲每個 可變長度字段的實際長度。在這種情況下,鄰近每個可變長度字段的值并且在其之前存儲 長度。VOk字段指示到可變長度字段的偏移。在這種情況下,VO1是指示到第一可變長度字 段的偏移的2字節(jié)字段,VO2是指示到第二可變長度字段的偏移的2字節(jié)字段,且VO3是指 示到第三可變長度字段的偏移的2字節(jié)字段。Bitmap (位圖)字段是存儲上面提到的空位圖的4字節(jié)字段??瘴粓D包含每個字 段的空狀態(tài),其中每個可空(nullable)字段具有一個比特。在其他系統(tǒng)中,給定列值的空 指示符通常在該列值之前。這將去掉(throw off)列值的正確字節(jié)排序(無論該空指示符 是一個字節(jié)還是兩個字節(jié))。因此,根據(jù)本發(fā)明的實施例,給定列的空指示符被存儲在空位 圖字段中,其與實際列值分開存儲。注意,在bitmap字段之后,III指示在管理字節(jié)之后要被打包的填充(零填充)。 在該特定情況下,存在兩個字節(jié)的填充以使得在字節(jié)16(8字節(jié)邊界)上開始下一字段。這 里所需的填充量根據(jù)表中固定長度字段的邊界對齊要求而不同。在填充之后緊接著定位第一要求字節(jié)對齊的固定長度字段。在這種情況下,第一 要求字節(jié)對齊的固定長度字段是8字節(jié)(N = 3)acctBal數(shù)字字段,acctBal數(shù)字字段被首 先選擇,因為按照圖2的步驟206它是最長的固定長度字段。因為不存在具有8字節(jié)邊界 對齊要求的其他固定長度字段,所以按照圖2的步驟216將N從3遞減到2。在第一要求字節(jié)對齊的固定長度字段之后緊接著定位后續(xù)的要求字節(jié)對齊的固 定長度字段。在這種情況下,第二要求字節(jié)對齊的固定長度字段是4字節(jié)(N=2)CUStKey 整數(shù)字段,并且第三固定長度字段是4字節(jié)(同樣N = 2)nati0nKey整數(shù)字段。不存在具 有4字節(jié)邊界對齊要求的其他固定長度字段。此外,不存在具有2字節(jié)(N = 1)邊界對齊 要求的固定長度字段。接著,選擇具有1字節(jié)(N = 0)邊界對齊要求的固定長度字段并且按該排序來定 位它。例如,字符字段是具有1字節(jié)邊界對齊要求的固定長度字段。在這種情況下,下一列 是phone字段,其是15字節(jié)長的字符字段并且在字節(jié)號32開始,并且下面的列是mktSeg 字段,其是10字節(jié)長的字符字段并且在字節(jié)號47開始。此后,根據(jù)圖2的步驟220,按它們的邏輯順序選擇可變長度字段并且按該排序來 對其進行定位。在該實施例中,每個可變長度字段(在圖4中由I I表示)的第一部分是指 示存儲在該字段中的值的實際長度的兩個字節(jié)。此后,放置該可變長度值的實際字節(jié)。在這種情況下,第一可變長度字段是name字段并且在字節(jié)號57開始。之前討論了 在VO1字段的值中指示了用于第一可變長度字段到字節(jié)號57的這一偏移。如前面所提到的 那樣,該字段的前兩個字節(jié)指示實際長度,并且剩余的字節(jié)是存儲在該字段中的實際數(shù)據(jù)。 類似地,第二可變長度字段是在字節(jié)V2開始的address字段(所述字節(jié)V2根據(jù)在前的第一 可變長度字段的長度而變化),且第三可變長度字段是在字節(jié)V3開始的comment字段,(所 述字節(jié)V3根據(jù)在前的第一和第二可變長度字段的長度而變化)。注意,在存儲記錄時,如果必要的話將(由///表示的)填充字節(jié)添加到該記錄的末端,以便下一數(shù)據(jù)記錄以正確的對齊開始。在該實施方式中,可以存在1到3個這樣的末 端填充字節(jié),以使得下一記錄在4字節(jié)邊界上開始。每個記錄所使用的填充字節(jié)的數(shù)目被 存儲為第一固定偏移FF的一部分,即存儲在2個高比特中。 圖5A是示出根據(jù)本發(fā)明的實施例的接收創(chuàng)建表語句和使用確定性方法以生成用 于將數(shù)據(jù)存儲在盤上的物理順序的流程圖。如所示出的那樣,從用戶接收創(chuàng)建表語句(框 502)。該創(chuàng)建表語句定義數(shù)據(jù)庫表的列(字段)的邏輯順序。此后,使用上面討論的確定 性算法,創(chuàng)建不同于由所述創(chuàng)建表語句所指定的邏輯順序的物理順序(框504)。當將數(shù)據(jù) 記錄存儲在盤上時使用所述物理順序(框506)。有利地,從邏輯順序到物理順序的重新排序是確定性的。因此,關(guān)于實際物理排序 的信息不一定需要被保存并且可以在查詢計劃生成期間被重新計算。圖5B是示出根據(jù)本 發(fā)明的實施例的接收數(shù)據(jù)庫查詢和重新計算用來從盤訪問數(shù)據(jù)的物理順序的流程圖。如所 示,接收數(shù)據(jù)庫查詢(框512)。作為響應(yīng),生成查詢計劃(框514)。根據(jù)本發(fā)明的實施例, 作為查詢計劃生成的一部分,進行物理順序的重新計算(框516)。然后可以保存到每個列 值的偏移(框518)。然后可以在查詢執(zhí)行期間使用到該列值的偏移(框520)。圖5C示出指示根據(jù)本發(fā)明的實施例所測試的各種方案的路徑改進的實驗結(jié)果。 每個行(acXio032_b6_m、dwp2xl_b6_s等等)指示特定方案(即特定數(shù)據(jù)庫表定義)。該表示出沒有對齊(未對齊的)以及具有按照本申請的自動化對齊(對齊的)的 每小時查詢(QPH)。較高的QPH比較低的QPH要好。還示出了 QPH中的百分比增加(%變 化)。如所示,在按照本申請的自動化對齊的情況下,QPH增加范圍超過8%。該表還示出了沒有對齊(未對.齊的)以及具有按照本申請的自動化對齊(對齊 的)的每個查詢所使用的CPU秒(每個查詢的CPU秒)。較低的每個查詢的CPU秒比較高 的每個查詢的CPU秒要好。還示出了每個查詢的CPU秒的百分比減小(%變化)。如所示, 在按照本申請的自動化對齊的情況下,百分比減小范圍超過。圖6是描繪可以被配置成執(zhí)行根據(jù)本發(fā)明的實施例的方法的示例計算機裝置的 示意圖。在該示例中,該計算機裝置包括大規(guī)模并行處理系統(tǒng)。在一個實施例中,該計算機 裝置可以被配置成具有緊密集成到對稱多處理(SMP)節(jié)點606中的多個處理器602。每個 SMP節(jié)點606中的處理器可以被連接到存儲器604的公共部分?;ミB網(wǎng)絡(luò)606連接SMP節(jié) 點606。可以在可替換實施例中使用計算機裝置的其他體系結(jié)構(gòu)。根據(jù)本發(fā)明的實施例,上面所討論的步驟被實施為存儲在計算機可讀介質(zhì)上的或 者存儲在計算機可讀存儲器中的處理器可執(zhí)行指令。例如,這些處理器可執(zhí)行指令可以例 如在比如圖6所描繪的計算機裝置上運行。在上面的描述中,給出了許多特定細節(jié)以提供對本發(fā)明實施例的完全理解。然而, 上面對所說明的本發(fā)明實施例的描述不打算是窮舉的或者將本發(fā)明限制成所公開的確切 形式。相關(guān)領(lǐng)域的技術(shù)人員將會認識到可以在沒有一個或多個特定細節(jié)的情況下或者利用 其他方法、部件等等實踐本發(fā)明。在其他情況中,為了避免使本發(fā)明的各方面晦澀難懂,沒 有詳細示出或者描述公知的結(jié)構(gòu)或操作。盡管為了說明的目的而在本文中描述了本發(fā)明的 特定實施例和本發(fā)明的示例,但是如相關(guān)領(lǐng)域技術(shù)人員將會認識到的那樣,在本發(fā)明的范 圍內(nèi)各種等同的修改是可能的。根據(jù)上面的詳細描述可以對本發(fā)明做出這些修改。在下面的權(quán)利要求中所使用的術(shù)語不應(yīng)該被解釋為將本發(fā)明限制成在說明書和權(quán)利要求中所公開的特定實施例。 相反, 本發(fā)明的范圍由下面的權(quán)利要求確定,其中根據(jù)所建立的權(quán)利要求闡釋的原則來解釋所述 權(quán)利要求。
權(quán)利要求
一種用于使列值對齊到正確的字節(jié)邊界以在并行處理數(shù)據(jù)庫系統(tǒng)中進行快速掃描的自動化方法,所述方法包括接收具有字段的邏輯順序的表定義;以及重新排序所述字段以創(chuàng)建字段的物理順序,其中所述字段的物理順序使具有相同字節(jié)對齊要求的固定長度字段按從最大大小到最小大小的降序彼此鄰近定位,并且其中所述物理順序中的第一固定長度被對齊在正確的字節(jié)邊界上。
2.根據(jù)權(quán)利要求1所述的方法,其中字節(jié)對齊要求需要將字段的開始對齊到2N字節(jié)邊 界,其中N是整數(shù)。
3.根據(jù)權(quán)利要求1所述的方法,其中管理字段被定位在記錄的開始處,并且在存儲記 錄時,對其添加零填充以對齊所述第一固定長度字段。
4.根據(jù)權(quán)利要求1所述的方法,其中在具有字節(jié)對齊要求的最后的固定長度字段之后 定位可變長度字段。
5.根據(jù)權(quán)利要求5所述的方法,其中在存儲記錄時,如果需要的話,在最后的可變長度 字段之后添加零填充,以便使下一記錄對齊在正確的字節(jié)邊界上。
6.一種用于存儲計算機可讀指令的計算機可讀介質(zhì),所述計算機可讀指令被配置成使 列值對齊到正確的字節(jié)邊界以在并行處理數(shù)據(jù)庫系統(tǒng)中進行快速掃描,所述介質(zhì)包括被配置成接收具有字段的邏輯順序的表定義的計算機可讀指令;以及被配置成重新排序所述字段以創(chuàng)建字段的物理順序的計算機可讀指令,其中所述字段的物理順序使具有相同字節(jié)對齊要求的固定長度字段按從最大大小到 最小大小的降序彼此鄰近定位,并且其中所述物理順序中的第一固定長度字段被對齊在正 確的字節(jié)邊界上。
7.根據(jù)權(quán)利要求6所述的介質(zhì),其中字節(jié)對齊要求需要將字段的開始對齊到2N字節(jié)邊 界,其中N是整數(shù)。
8.根據(jù)權(quán)利要求6所述的介質(zhì),其中管理字段被定位在記錄的開始處,并且在存儲記 錄時,對其添加零填充以對齊所述第一固定長度字段。
9.根據(jù)權(quán)利要求6所述的介質(zhì),其中在具有字節(jié)對齊要求的最后的固定長度字段之后 定位可變長度字段。
10.根據(jù)權(quán)利要求6所述的介質(zhì),其中在存儲記錄時,如果需要的話,在最后的可變長 度字段之后添加零填充,以便使下一記錄對齊在正確的字節(jié)邊界上。
11.一種被配置成使列值對齊到正確的字節(jié)邊界以在并行處理數(shù)據(jù)庫系統(tǒng)中進行快速 掃描的計算機裝置,所述裝置包括用于執(zhí)行計算機可讀指令的多個處理器;以及被配置成存儲所述計算機可讀指令和數(shù)據(jù)的存儲器,其中所述計算機可讀指令被配置成接收具有字段的邏輯順序的表定義并且重新排序 所述字段以創(chuàng)建字段的物理順序,此外所述字段的物理順序使具有相同字節(jié)對齊要求的固定長度字段按從最大大小到 最小大小的降序彼此鄰近定位,并且其中所述物理順序中的第一固定長度字段被對齊在正 確的字節(jié)邊界上。
12.根據(jù)權(quán)利要求11所述的計算機裝置,其中字節(jié)對齊要求需要將字段的開始對齊到 2N字節(jié)邊界,其中N是整數(shù)。
13.根據(jù)權(quán)利要求11所述的計算機裝置,其中管理字段被定位在記錄的開始處,并且 在存儲記錄時,對其添加零填充以對齊所述第一固定長度字段。
14.根據(jù)權(quán)利要求11所述的計算機裝置,其中在具有字節(jié)對齊要求的最后的固定長度 字段之后定位可變長度字段。
15.根據(jù)權(quán)利要求14所述的計算機裝置,其中在存儲記錄時,如果需要的話,在最后的 可變長度字段之后添加零填充,以便使下一記錄對齊在正確的字節(jié)邊界上。
全文摘要
一種用于使列值對齊到正確的字節(jié)邊界以在并行處理數(shù)據(jù)庫系統(tǒng)中進行快速掃描的自動化方法。接收(201)具有字段的邏輯順序的表定義。重新排序(206-220)所述字段以創(chuàng)建字段的物理順序。字段的物理順序使具有相同字節(jié)對齊要求的固定長度字段按從最大大小到最小大小的降序彼此鄰近定位,并且其中所述物理順序中的第一固定長度字段被對齊在正確的字節(jié)邊界上。還公開了其他實施例、方面和特征。
文檔編號G06F9/44GK101868782SQ200880116980
公開日2010年10月20日 申請日期2008年11月13日 優(yōu)先權(quán)日2007年11月21日
發(fā)明者A·沙馬, B·S·維克里, V·蘇布拉馬尼安 申請人:惠普開發(fā)有限公司