本公開一般與改進(jìn)涉及函數(shù)的查詢的查詢執(zhí)行相關(guān)。特定實(shí)施方式涉及重寫查詢作為查詢優(yōu)化的一部分,以使用逆函數(shù)代替查詢中指定的函數(shù),其中逆函數(shù)諸如由用戶注冊(cè)在系統(tǒng)中注冊(cè)。
背景技術(shù):
1、許多軟件應(yīng)用,特別是企業(yè)級(jí)軟件應(yīng)用,與諸如關(guān)系數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)存儲(chǔ)中的數(shù)據(jù)交互。數(shù)據(jù)以不同格式存儲(chǔ)并不罕見。例如,由軟件應(yīng)用使用的數(shù)據(jù)對(duì)象可以將特定類型的數(shù)據(jù)以一種數(shù)據(jù)類型存儲(chǔ),而由關(guān)系數(shù)據(jù)庫使用的物理數(shù)據(jù)對(duì)象可以將該特定類型的數(shù)據(jù)以不同的數(shù)據(jù)類型存儲(chǔ)。作為簡單的示例,考慮可以由軟件應(yīng)用表示為三位數(shù)的數(shù)值數(shù)據(jù),但是其中數(shù)據(jù)作為五位數(shù)存儲(chǔ)在物理數(shù)據(jù)庫對(duì)象中??赡苄枰D(zhuǎn)換來在由應(yīng)用使用的數(shù)據(jù)類型與由數(shù)據(jù)庫使用的數(shù)據(jù)類型之間相互轉(zhuǎn)換。這些轉(zhuǎn)換操作在計(jì)算上可能是昂貴的,包括因?yàn)樗鼈兛赡苄枰槍?duì)包含大量記錄(諸如數(shù)千或甚至數(shù)百萬行)的結(jié)果集來逐行執(zhí)行。因此,存在改進(jìn)的空間。
技術(shù)實(shí)現(xiàn)思路
1、提供本
技術(shù)實(shí)現(xiàn)要素:
是為了以簡化的形式介紹一些概念,這些概念將在下面的具體實(shí)施方式中進(jìn)一步描述。本發(fā)明內(nèi)容不旨在標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護(hù)的主題的范圍。
2、提供了用于使用逆函數(shù)來改進(jìn)查詢性能的技術(shù)和解決方案。通常,函數(shù)用于執(zhí)行諸如數(shù)據(jù)類型轉(zhuǎn)換的操作。這些函數(shù)的使用可能是資源密集型的,諸如如果需要對(duì)特定關(guān)系數(shù)據(jù)庫表的所有行執(zhí)行轉(zhuǎn)換。本公開允許注冊(cè)可以使用或至少考慮使用的逆函數(shù),來代替函數(shù)。給定的逆函數(shù)可以使用諸如維護(hù)映射信息或使用特定命名約定的技術(shù)與其函數(shù)相關(guān)聯(lián)。提供用于指定和創(chuàng)建逆函數(shù)的特定語法。
3、在一個(gè)方面,本公開提供了一種優(yōu)化查詢的過程,其包括用逆函數(shù)替換函數(shù)。如將描述的,在至少一些情況下,與使用函數(shù)相比,使用逆函數(shù)可以提供改進(jìn)的查詢性能。接收函數(shù)的函數(shù)定義。從客戶端接收逆函數(shù)的逆函數(shù)定義,其中逆函數(shù)是函數(shù)的逆函數(shù)。接收查詢,其中查詢包括對(duì)函數(shù)的調(diào)用。確定逆函數(shù)可用于該函數(shù)。準(zhǔn)備包括代替函數(shù)的逆函數(shù)的查詢執(zhí)行計(jì)劃。
4、本公開還包括計(jì)算系統(tǒng)和有形的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其被配置為執(zhí)行或包括用于執(zhí)行上述方法的指令。如本文所述,可以根據(jù)需要將各種其他特征和優(yōu)點(diǎn)結(jié)合到技術(shù)中。
1.一種計(jì)算系統(tǒng),包括:
2.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),所述操作還包括:
3.根據(jù)權(quán)利要求2所述的計(jì)算系統(tǒng),其中,確定所述逆函數(shù)可用于所述函數(shù)包括:確定所述逆函數(shù)與所述函數(shù)的標(biāo)識(shí)符相關(guān)聯(lián)。
4.根據(jù)權(quán)利要求2所述的計(jì)算系統(tǒng),其中,所述映射被存儲(chǔ)在映射表中,所述映射表具有被配置為存儲(chǔ)函數(shù)標(biāo)識(shí)符的第一屬性和被配置為存儲(chǔ)對(duì)應(yīng)于給定函數(shù)的逆函數(shù)的標(biāo)識(shí)符的第二屬性。
5.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,確定所述逆函數(shù)可用于所述函數(shù)包括:使用針對(duì)函數(shù)和逆函數(shù)定義的命名約定。
6.根據(jù)權(quán)利要求5所述的計(jì)算系統(tǒng),其中,所述逆函數(shù)和所述函數(shù)共享所述函數(shù)的標(biāo)識(shí)符的至少一部分,并且其中,所述逆函數(shù)的標(biāo)識(shí)符包括指示所述逆函數(shù)用作逆函數(shù)的令牌。
7.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,準(zhǔn)備包括代替所述函數(shù)的所述逆函數(shù)的查詢執(zhí)行計(jì)劃包括:基于查詢優(yōu)化器的規(guī)則來選擇所述逆函數(shù)代替所述函數(shù)。
8.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,準(zhǔn)備包括代替所述函數(shù)的所述逆函數(shù)的查詢執(zhí)行計(jì)劃包括:
9.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述查詢包括對(duì)多個(gè)函數(shù)的調(diào)用,所述多個(gè)函數(shù)包括所述函數(shù),所述操作還包括:
10.根據(jù)權(quán)利要求9所述的計(jì)算系統(tǒng),其中,由查詢優(yōu)化器使用的規(guī)則指定當(dāng)針對(duì)給定函數(shù)定義逆函數(shù)時(shí),逆函數(shù)總是用于函數(shù)。
11.根據(jù)權(quán)利要求9所述的計(jì)算系統(tǒng),其中,針對(duì)所述多個(gè)函數(shù)中的每個(gè)函數(shù),基于將使用給定函數(shù)的查詢執(zhí)行成本與使用代替所述給定函數(shù)的相應(yīng)的逆函數(shù)的查詢執(zhí)行成本進(jìn)行比較,確定所述相應(yīng)的逆函數(shù)是否應(yīng)當(dāng)被用于所述給定函數(shù)。
12.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述函數(shù)和逆函數(shù)在數(shù)據(jù)格式之間轉(zhuǎn)換數(shù)據(jù)。
13.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),其中,所述查詢包括在所述查詢的選擇條件中使用的值,并且所述函數(shù)在數(shù)據(jù)格式之間轉(zhuǎn)換所述值。
14.根據(jù)權(quán)利要求13所述的計(jì)算系統(tǒng),其中,所述數(shù)據(jù)格式中的第一數(shù)據(jù)格式是由虛擬數(shù)據(jù)模型的對(duì)象使用的格式,并且所述數(shù)據(jù)格式中的第二格式由數(shù)據(jù)庫對(duì)象使用。
15.根據(jù)權(quán)利要求14所述的計(jì)算系統(tǒng),其中所述逆函數(shù)將所述選擇條件中的所述值轉(zhuǎn)換為由所述數(shù)據(jù)庫對(duì)象使用的數(shù)據(jù)格式,并且所述函數(shù)將所述數(shù)據(jù)庫對(duì)象的值轉(zhuǎn)換為所述虛擬數(shù)據(jù)模型的所述對(duì)象的所述格式。
16.根據(jù)權(quán)利要求1所述的計(jì)算系統(tǒng),所述操作還包括:
17.根據(jù)權(quán)利要求16所述的計(jì)算系統(tǒng),其中,所述執(zhí)行所述第二查詢執(zhí)行計(jì)劃和所述比較是響應(yīng)于所述查詢中提供的命令而執(zhí)行的。
18.一種在計(jì)算系統(tǒng)中實(shí)現(xiàn)的方法,所述計(jì)算系統(tǒng)包括至少一個(gè)存儲(chǔ)器和耦合到所述至少一個(gè)存儲(chǔ)器的至少一個(gè)硬件處理器,所述方法包括:
19.根據(jù)權(quán)利要求18所述的方法,其中,確定所述逆函數(shù)可用于所述函數(shù)包括:
20.一種或多種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括: