本申請(qǐng)涉及數(shù)據(jù)庫(kù)
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)庫(kù)訪問方法和裝置。
背景技術(shù):
:SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)謂詞通常是指where分句中的條件表達(dá)式,SQL謂詞通過返回真或假的值判定一行數(shù)據(jù)是否需要返回給用戶。在處理一個(gè)數(shù)據(jù)庫(kù)訪問請(qǐng)求時(shí),通常需要執(zhí)行多個(gè)謂詞。相關(guān)技術(shù)中,各數(shù)據(jù)庫(kù)通常會(huì)預(yù)定義有謂詞的分類,并依據(jù)預(yù)設(shè)的分類順序依次執(zhí)行各類謂詞。比如:在IBM數(shù)據(jù)庫(kù)中,可以將謂詞分為stage1和stage2兩類,在執(zhí)行時(shí),首先執(zhí)行stage1謂詞,然后再執(zhí)行stage2謂詞。而針對(duì)某一類中的多個(gè)謂詞,可以按照用戶定義的順序(where條件中出現(xiàn)的先后順序)先后執(zhí)行。然而,在這樣的實(shí)現(xiàn)方案中,謂詞的執(zhí)行順序依賴數(shù)據(jù)庫(kù)預(yù)定義的規(guī)則,對(duì)執(zhí)行算子本身的代價(jià)(比如:執(zhí)行耗時(shí)等)并不敏感,在一些情況下無法達(dá)到代價(jià)最低的執(zhí)行順序。另一方面,謂詞的執(zhí)行順序還會(huì)依賴用戶的輸入順序,當(dāng)用戶想要修改謂詞的執(zhí)行順序時(shí),需要修改訪問請(qǐng)求本身,技術(shù)門檻高。此外,謂詞的執(zhí)行順序一旦確定,在執(zhí)行的過程中無法改變,當(dāng)數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)分布發(fā)生變化或數(shù)據(jù)傾斜時(shí),不能確保謂詞的執(zhí)行代價(jià)始終較低。技術(shù)實(shí)現(xiàn)要素:有鑒于此,本申請(qǐng)?zhí)峁┮环N數(shù)據(jù)庫(kù)訪問方法和裝置。具體地,本申請(qǐng)是通過如下技術(shù)方案實(shí)現(xiàn)的:一種數(shù)據(jù)庫(kù)訪問方法,所述方法包括:為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù);根據(jù)所述執(zhí)行結(jié)果參數(shù)判斷所述謂詞是否滿足順序更新條件;當(dāng)所述謂詞滿足順序更新條件時(shí),基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,繼續(xù)執(zhí)行根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)的過程。一種數(shù)據(jù)庫(kù)訪問方法,所述方法包括:為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的更新周期采集各謂詞的執(zhí)行結(jié)果參數(shù);基于采集到的所述執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,繼續(xù)執(zhí)行根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)的過程。一種數(shù)據(jù)庫(kù)訪問裝置,所述裝置包括:第一確定單元,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;第一采樣單元,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù);更新判斷單元,根據(jù)所述執(zhí)行結(jié)果參數(shù)判斷所述謂詞是否滿足順序更新條件;第一更新單元,當(dāng)所述謂詞滿足順序更新條件時(shí),基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并通知所述第一采樣單元處理。一種數(shù)據(jù)庫(kù)訪問裝置,所述裝置包括:第二確定單元,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;第二采樣單元,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的更新周期采集各謂詞的執(zhí)行結(jié)果參數(shù);第二更新單元,基于采集到的所述執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,繼續(xù)執(zhí)行根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)的過程。由以上描述可以看出,本申請(qǐng)?jiān)诨谒霎?dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,可以周期性地采集各謂詞在實(shí)際執(zhí)行時(shí)的執(zhí)行結(jié)果參數(shù),并在基于采集到的執(zhí)行結(jié)果參數(shù)確定所述謂詞滿足順序更新條件時(shí),更新謂詞的當(dāng)前執(zhí)行順序,從而可以根據(jù)真實(shí)的執(zhí)行總代價(jià)動(dòng)態(tài)調(diào)整謂詞的執(zhí)行順序,自適應(yīng)數(shù)據(jù)分布的變化,使得謂詞在整個(gè)執(zhí)行的過程中,始終保持執(zhí)行總代價(jià)最低,提高數(shù)據(jù)訪問的效率,節(jié)省系統(tǒng)的處理資源。附圖說明圖1是本申請(qǐng)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)訪問方法的流程圖。圖2是本申請(qǐng)一示例性實(shí)施例示出的一種根據(jù)執(zhí)行結(jié)果參數(shù)判斷各謂詞是否滿足順序更新條件的流程圖。圖3是本申請(qǐng)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)訪問方法的流程圖。圖4是本申請(qǐng)一示例性實(shí)施例示出的一種用于數(shù)據(jù)庫(kù)訪問裝置的一結(jié)構(gòu)框圖。圖5是本申請(qǐng)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)訪問裝置的框圖。圖6是本申請(qǐng)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)訪問裝置的框圖。具體實(shí)施方式這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。在本申請(qǐng)使用的術(shù)語是僅僅出于描述特定實(shí)施例的目的,而非旨在限制本申請(qǐng)。在本申請(qǐng)和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個(gè)或多個(gè)相關(guān)聯(lián)的列出項(xiàng)目的任何或所有可能組合。應(yīng)當(dāng)理解,盡管在本申請(qǐng)可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請(qǐng)范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時(shí)”或“當(dāng)……時(shí)”或“響應(yīng)于確定”。圖1是本申請(qǐng)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)訪問方法的流程圖。請(qǐng)參考圖1,所述數(shù)據(jù)庫(kù)訪問方法可以應(yīng)用在運(yùn)行有數(shù)據(jù)庫(kù)服務(wù)端程序的服務(wù)器中,包括有以下步驟:步驟101,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序。在本實(shí)施例中,一個(gè)數(shù)據(jù)庫(kù)訪問請(qǐng)求通常對(duì)應(yīng)有多個(gè)SQL謂詞(在本申請(qǐng)后續(xù)的描述中,簡(jiǎn)稱謂詞)。在本步驟中,在接收到數(shù)據(jù)庫(kù)訪問請(qǐng)求后,可以先確定所述數(shù)據(jù)庫(kù)訪問請(qǐng)求對(duì)應(yīng)的多個(gè)謂詞,然后可以根據(jù)各謂詞缺省的執(zhí)行結(jié)果確定當(dāng)前執(zhí)行順序,也就是確定各謂詞的初始執(zhí)行順序。其中,所述執(zhí)行結(jié)果通常包括兩個(gè)參考維度:選擇率和代價(jià)。其中,所述選擇率為執(zhí)行對(duì)應(yīng)謂詞后返回執(zhí)行結(jié)果參數(shù)是真的比率,可以理解的是,某個(gè)謂詞的選擇率越低說明該謂詞的過濾性越強(qiáng)。所述代價(jià)通常為對(duì)應(yīng)謂詞的執(zhí)行耗時(shí)等。在本實(shí)施例中,在確定各謂詞的初始執(zhí)行順序時(shí),可以依據(jù)合取范式以及析取范式確定所述初始執(zhí)行順序。舉例來說,假設(shè)所述數(shù)據(jù)庫(kù)訪問請(qǐng)求對(duì)應(yīng)有n個(gè)謂詞,分別為P1,P2,…,Pn,這N個(gè)謂詞的選擇率分別為F1,F(xiàn)2,…,F(xiàn)n,代價(jià)分別為C1,C2,…,Cn。則可以將合取范式P1andP2and…andPn的執(zhí)行總代價(jià)的計(jì)算公式設(shè)置為:N×(C1+F1×C2+F1×F2×C3+…+F1×F2×…×Fn-1×Cn)將析取范式的執(zhí)行總代價(jià)的計(jì)算公式設(shè)置為:N×(C1+(1-F1)×C2+(1-F1)×(1-F2)×C3+…+(1-F1)×(1-F2)×…×(1-Fn-1)×Cn)上述公式中,各謂詞的缺省代價(jià)C通常為預(yù)設(shè)的代價(jià),各謂詞的缺省選擇率F通常是基于系統(tǒng)針對(duì)不同謂詞的全局統(tǒng)計(jì)值(NDV或直方圖)得到。在本步驟中,可以遍歷各謂詞的所有可能執(zhí)行順序,然后根據(jù)上述公式,確定一個(gè)執(zhí)行總代價(jià)最小的執(zhí)行順序,作為初始執(zhí)行順序。步驟102,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)。在本實(shí)施例中,在確定各謂詞的當(dāng)前執(zhí)行順序后,可以基于所述當(dāng)前執(zhí)行順序依次執(zhí)行所述謂詞。在本步驟中,在執(zhí)行所述謂詞的過程中,可以根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)。其中,所述采樣周期可以由開發(fā)人員進(jìn)行設(shè)置,比如:1分鐘等,本申請(qǐng)對(duì)此不作特殊限制。所述執(zhí)行結(jié)果參數(shù)可以包括兩個(gè)維度:執(zhí)行代價(jià)和取值真假。其所述執(zhí)行代價(jià)通常為對(duì)應(yīng)謂詞的執(zhí)行耗時(shí)。所述取值真假為執(zhí)行對(duì)應(yīng)謂詞后得到的取值結(jié)果,包括:真值(T)和假值(F)。舉例來說,假設(shè)某謂詞的條件為C=100,則當(dāng)執(zhí)行該謂詞時(shí),如果數(shù)據(jù)庫(kù)某行存儲(chǔ)的數(shù)據(jù)為100,則該謂詞執(zhí)行后的取值為真。在本步驟中,可以在到達(dá)所述預(yù)設(shè)的采樣周期時(shí),針對(duì)所有訪問行,根據(jù)預(yù)設(shè)的采樣比例確定是否對(duì)各謂詞在所述訪問行的執(zhí)行結(jié)果參數(shù)進(jìn)行采集。其中,所述訪問行為本次訪問請(qǐng)求所要訪問的數(shù)據(jù)庫(kù)行,所述采樣比例可以由開發(fā)人員進(jìn)行設(shè)置,比如:10%,15%等,本申請(qǐng)對(duì)此不作特殊限制。舉例來說,假設(shè)本次數(shù)據(jù)庫(kù)訪問請(qǐng)求需要訪問10000行訪問行,所述采樣比例為10%,則在到達(dá)預(yù)設(shè)的采樣周期時(shí),可以從某訪問行開始,針對(duì)接下來的100行訪問行或者200行訪問行中每個(gè)訪問行,可以按照10%的比例確定是否對(duì)該訪問行進(jìn)行采樣,即是否對(duì)各謂詞在該訪問行的執(zhí)行結(jié)果參數(shù)進(jìn)行采集。也就是說,這100或200行訪問行中每個(gè)訪問行被采樣到的概率是10%。在本實(shí)施例中,為便于描述,可以將采集執(zhí)行結(jié)果參數(shù)的行稱為采樣行。可以理解的是,針對(duì)100行訪問行,如果按照10%的采樣比例進(jìn)行采樣,那么最終采集執(zhí)行結(jié)果參數(shù)的采樣行的數(shù)量可能為10行,也可能為8行、9行、11行、12行等。在本步驟中,在基于所述采樣周期采集到各謂詞的執(zhí)行結(jié)果參數(shù)后,還可以基于該執(zhí)行結(jié)果參數(shù)更新各謂詞缺省的執(zhí)行結(jié)果,以提高初始執(zhí)行順序確定的準(zhǔn)確性。步驟103,根據(jù)所述執(zhí)行結(jié)果參數(shù)判斷所述謂詞是否滿足順序更新條件。基于前述步驟102,在采集得到執(zhí)行結(jié)果參數(shù)后,可以根據(jù)所述執(zhí)行結(jié)果參數(shù)計(jì)算對(duì)應(yīng)采樣周期各謂詞的執(zhí)行結(jié)果樣本,然后針對(duì)每個(gè)謂詞,計(jì)算連續(xù)N個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為參考執(zhí)行結(jié)果,并所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果的變化超過預(yù)設(shè)的閾值時(shí),確定所述謂詞滿足順序更新條件。步驟104,當(dāng)所述謂詞滿足順序更新條件時(shí),基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并返回步驟102?;谇笆霾襟E103的判斷結(jié)果,當(dāng)所述謂詞滿足順序更新條件時(shí),可以基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序。比如:可以根據(jù)最新采集得到的執(zhí)行結(jié)果參數(shù)計(jì)算對(duì)應(yīng)的執(zhí)行結(jié)果樣本,并根據(jù)該執(zhí)行結(jié)果樣本,采用前述步驟101中提供的兩個(gè)執(zhí)行總代價(jià)的計(jì)算公式,重新確定各謂詞的當(dāng)前執(zhí)行順序。當(dāng)然,也可以根據(jù)前述步驟103中計(jì)算得到的參考執(zhí)行結(jié)果,采用前述步驟101中提供的兩個(gè)執(zhí)行總代價(jià)的計(jì)算公式,重新確定各謂詞的當(dāng)前執(zhí)行順序,本申請(qǐng)對(duì)此不作特殊限制。在本實(shí)施例中,在更新各謂詞的當(dāng)前執(zhí)行順序后,可以基于更新后的執(zhí)行順序繼續(xù)執(zhí)行各謂詞,并返回步驟102,繼續(xù)進(jìn)行采樣判斷的過程,直至本次數(shù)據(jù)庫(kù)訪問完畢。由以上描述可以看出,本申請(qǐng)?jiān)诨谒霎?dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,可以周期性地采集各謂詞在實(shí)際執(zhí)行時(shí)的執(zhí)行結(jié)果參數(shù),并在基于采集到的執(zhí)行結(jié)果參數(shù)確定所述謂詞滿足順序更新條件時(shí),更新謂詞的當(dāng)前執(zhí)行順序,從而可以根據(jù)真實(shí)的執(zhí)行總代價(jià)動(dòng)態(tài)調(diào)整謂詞的執(zhí)行順序,自適應(yīng)數(shù)據(jù)分布的變化,使得謂詞在整個(gè)執(zhí)行的過程中,始終保持執(zhí)行總代價(jià)最低,提高數(shù)據(jù)訪問的效率,節(jié)省系統(tǒng)的處理資源。圖2是本申請(qǐng)一示例性實(shí)施例示出的一種根據(jù)執(zhí)行結(jié)果參數(shù)判斷謂詞是否滿足順序更新條件的流程圖。請(qǐng)參考圖2,該實(shí)施例在前述圖1所示的實(shí)施例的基礎(chǔ)上,根據(jù)執(zhí)行結(jié)果參數(shù)判斷各謂詞是否滿足順序更新條件可以包括以下步驟:步驟201,根據(jù)采集到的執(zhí)行結(jié)果參數(shù)計(jì)算對(duì)應(yīng)采樣周期各謂詞的執(zhí)行結(jié)果樣本。在本實(shí)施例中,基于前述圖1所示的實(shí)施例,所示執(zhí)行結(jié)果參數(shù)包括兩個(gè)維度:執(zhí)行代價(jià)和取值真假。下面分別針對(duì)這兩個(gè)維度進(jìn)行描述:一、執(zhí)行代價(jià)。在本實(shí)施例中,假設(shè)所述執(zhí)行代價(jià)為執(zhí)行耗時(shí),則某個(gè)采樣周期,在采集得到各謂詞在每個(gè)采樣行的執(zhí)行耗時(shí)后,針對(duì)每個(gè)謂詞,可以計(jì)算采樣行的執(zhí)行耗時(shí)的均值,作為所述執(zhí)行結(jié)果樣本中代價(jià)參考維度的取值。舉例來說,假設(shè)本次采樣采集到各謂詞在9個(gè)采樣行的執(zhí)行耗時(shí),那么針對(duì)每個(gè)謂詞,可以分別計(jì)算其在這9個(gè)采樣行的執(zhí)行總耗時(shí),然后除以9以得到每行在執(zhí)行平均耗時(shí),作為該謂詞在“代價(jià)”這個(gè)參考維度的執(zhí)行結(jié)果樣本。二、取值真假。在本實(shí)施例中,在采集得到各謂詞在各采樣行的取值真假時(shí),可以根據(jù)所述取值真假生成真值表。舉例來說,仍假設(shè)在某采樣周期采集到各謂詞在9個(gè)采樣行的取值真假,則可以生成表1所示的真值表。采樣行謂詞1謂詞2謂詞3…謂詞n行1TFF…F行2TTT…F………………行9TTF…T表1請(qǐng)參考表1,其中采樣行為行1至行9,需要說明的是,行1至行9并不是這些采樣行在數(shù)據(jù)庫(kù)中的行號(hào),而是為了便于描述為各采樣行從1開始順序設(shè)置的編號(hào)。表中的“T”表示真值,“F”表示假值。在本實(shí)施例中,在生成所述真值表后,可以根據(jù)所述真值表計(jì)算該采樣周期各謂詞的選擇率,作為所述謂詞在“選擇率”這個(gè)參考維度的執(zhí)行結(jié)果樣本。仍以表1為例,針對(duì)謂詞1,假設(shè)在9個(gè)采樣行中,有6個(gè)采樣行的取值為真,3個(gè)采樣行的取值為假,則謂詞1的選擇率為6/9,等于66.7%,即謂詞1在該采樣周期在“選擇率”這個(gè)參考維度的執(zhí)行結(jié)果樣本為66.7%。同樣,可以計(jì)算出其他謂詞在該采樣周期的選擇率,本申請(qǐng)?jiān)诖瞬辉僖灰毁樖觥P枰f明的是,表1僅為示例性的說明,在實(shí)際應(yīng)用中,也可以不生成表1所示的真值表,本申請(qǐng)對(duì)此不作特殊限制。在步驟201中,針對(duì)每個(gè)采樣周期,在采集得到各謂詞的執(zhí)行結(jié)果參數(shù)后,都可以基于上述方式計(jì)算該采樣周期中各謂詞的在“代價(jià)”和“選擇率”這兩個(gè)參考維度的執(zhí)行結(jié)果樣本。步驟202,針對(duì)每個(gè)謂詞,計(jì)算連續(xù)N個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為參考執(zhí)行結(jié)果?;谇笆霾襟E201,在計(jì)算得到對(duì)應(yīng)采樣周期各謂詞的執(zhí)行結(jié)果樣本后,可以計(jì)算連續(xù)N個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值,作為這些采樣時(shí)段的參考執(zhí)行結(jié)果。舉例來說,假設(shè),在本步驟中,N的取值為5,則針對(duì)采樣周期1至5,可以計(jì)算這5個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為第一個(gè)參考執(zhí)行結(jié)果。接著,還可以針對(duì)采樣周期2至6,可以計(jì)算這5個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為第二個(gè)參考執(zhí)行結(jié)果。同樣,針對(duì)采樣周期3-7,可以計(jì)算這5個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為第三個(gè)參考執(zhí)行結(jié)果,依次類推,本申請(qǐng)?jiān)诖瞬辉僖灰毁樖觥.?dāng)然,在實(shí)際應(yīng)用中,在計(jì)算N個(gè)采樣周期的執(zhí)行結(jié)果樣本均值時(shí),也可以不對(duì)采樣周期進(jìn)行重復(fù)計(jì)算,比如:在針對(duì)采樣周期1至5,計(jì)算出這5個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為第一個(gè)參考執(zhí)行結(jié)果后,可以針對(duì)采樣周期6至10,計(jì)算這5個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為第二個(gè)參考執(zhí)行結(jié)果,依次類推。本申請(qǐng)對(duì)此不作特殊限制。需要說明的是,在本步驟中,在計(jì)算連續(xù)N個(gè)采樣周期執(zhí)行結(jié)果樣本的均值的時(shí)候,基于代價(jià)和選擇率這兩個(gè)參考維度分別計(jì)算,即所述參考執(zhí)行結(jié)果也包括兩個(gè)參考維度:代價(jià)和選擇率。步驟203,當(dāng)所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果的變化超過預(yù)設(shè)的閾值時(shí),確定所述謂詞滿足順序更新條件?;谇笆霾襟E202,在計(jì)算得到所述參考執(zhí)行結(jié)果后,可以判斷所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果的變化程度,當(dāng)變化程度超過預(yù)設(shè)的閾值時(shí),可以確定所述謂詞滿足順序更新條件。在本實(shí)施例中,所述緩存的執(zhí)行結(jié)果為確定所述謂詞當(dāng)前執(zhí)行順序的執(zhí)行結(jié)果。舉例來說,請(qǐng)參考前述步驟101,在接收到數(shù)據(jù)庫(kù)訪問請(qǐng)求后,基于各謂詞缺省的執(zhí)行結(jié)果確定各謂詞的初始執(zhí)行順序后,可以緩存所述缺省的執(zhí)行結(jié)果。也就是說,在一次數(shù)據(jù)庫(kù)訪問的過程中,初始緩存的執(zhí)行結(jié)果為確定各謂詞初始執(zhí)行順序的缺省執(zhí)行結(jié)果。后續(xù),在基于某執(zhí)行結(jié)果更新所述謂詞的執(zhí)行順序后,用該執(zhí)行結(jié)果更新已緩存的執(zhí)行結(jié)果。在本實(shí)施例中,所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果的變化程度可以為差值、增長(zhǎng)或下降的比率等,本申請(qǐng)對(duì)此不作特殊限制。需要說明的是,本申請(qǐng)參考執(zhí)行結(jié)果包括兩個(gè)參考維度,在本步驟中,當(dāng)參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果在代價(jià)和選擇率中至少一個(gè)參考維度的變化超過預(yù)設(shè)的閾值時(shí),即可確定所述謂詞滿足順序更新條件。此外,由于每個(gè)參考維度的參考執(zhí)行結(jié)果均包括所有謂詞的參考執(zhí)行結(jié)果,在實(shí)際應(yīng)用中,可以在一個(gè)或預(yù)設(shè)數(shù)量謂詞的參考執(zhí)行結(jié)果與緩存的對(duì)應(yīng)謂詞的執(zhí)行結(jié)果的變化程度大于預(yù)設(shè)閾值時(shí),確定所述維度滿足順序更新條件。舉例來說,假設(shè)與訪問請(qǐng)求相關(guān)的謂詞的數(shù)量為n,其中,n為大于1的自然數(shù),在本步驟中,當(dāng)這n個(gè)謂詞中存在m個(gè)謂詞在代價(jià)和選擇率中至少一個(gè)參考維度的參考執(zhí)行結(jié)果與緩存的對(duì)應(yīng)謂詞的執(zhí)行結(jié)果的變化超過對(duì)應(yīng)的預(yù)設(shè)閾值時(shí),可以確定所述謂詞滿足順序更新條件,m為大于等于1的自然數(shù)。m的取值和所述預(yù)設(shè)的閾值均可以由開發(fā)人員進(jìn)行設(shè)置,本申請(qǐng)對(duì)此不作特殊限制。基于圖1所示的實(shí)施例,在確定謂詞滿足順序更新條件時(shí),可以基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序。在更新搜索謂詞的當(dāng)前執(zhí)行順序時(shí),除了可以采用前述步驟104中描述的方式外,還可以采用本實(shí)施例步驟202中計(jì)算得到的參考執(zhí)行結(jié)果更新所述謂詞的當(dāng)前執(zhí)行順序,本申請(qǐng)對(duì)此不作特殊限制。在本實(shí)施例中,在更新所述謂詞的當(dāng)前執(zhí)行順序后,用確定所述當(dāng)前執(zhí)行順序的執(zhí)行結(jié)果更新已緩存的執(zhí)行結(jié)果,以作為下次進(jìn)行順序更新條件確定的基準(zhǔn)。在本實(shí)施例中,在確定所述謂詞不滿足順序更新條件時(shí),可以根據(jù)步驟202計(jì)算得到的下一個(gè)參考執(zhí)行結(jié)果繼續(xù)判斷所述謂詞是否滿足順序更新條件,直至本次數(shù)據(jù)庫(kù)訪問結(jié)束。圖3是本申請(qǐng)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)訪問方法的流程圖。請(qǐng)參考圖1,所述數(shù)據(jù)庫(kù)訪問方法可以應(yīng)用在服務(wù)器中,包括有以下步驟:步驟301,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序。在本實(shí)施例中,可以參考前述步驟101提供的技術(shù)方案實(shí)現(xiàn)本步驟,本申請(qǐng)?jiān)诖瞬辉僖灰毁樖?。步驟302,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的更新周期采集各謂詞的執(zhí)行結(jié)果參數(shù)。在本實(shí)施例中,在確定各謂詞的當(dāng)前執(zhí)行順序后,可以基于所述當(dāng)前執(zhí)行順序依次執(zhí)行所述謂詞。在本步驟中,在執(zhí)行所述謂詞的過程中,可以根據(jù)預(yù)設(shè)的更新周期采集各謂詞的執(zhí)行結(jié)果參數(shù)。其中,所述更新周期可以由開發(fā)人員進(jìn)行設(shè)置,該更新周期即為更新謂詞執(zhí)行順序的周期。其中,所述采集方式、所述執(zhí)行結(jié)果參數(shù)均可以參考前述圖1所示實(shí)施例中的描述,本申請(qǐng)?jiān)诖瞬辉僖灰毁樖?。步驟303,基于采集到的所述執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并返回步驟302?;谇笆霾襟E302,在采集得到各謂詞的執(zhí)行結(jié)果參數(shù)后,可以根據(jù)該執(zhí)行結(jié)果參數(shù)計(jì)算對(duì)應(yīng)的執(zhí)行結(jié)果,計(jì)算過程可以參考前述計(jì)算執(zhí)行結(jié)果樣本的過程。在計(jì)算得到對(duì)應(yīng)的執(zhí)行結(jié)果后,可以基于所述執(zhí)行結(jié)果更新所述謂詞的當(dāng)前執(zhí)行順序,并基于更新后的當(dāng)前執(zhí)行順序繼續(xù)執(zhí)行各謂詞,并返回步驟302,直至本次數(shù)據(jù)庫(kù)訪問完畢。由以上描述可以看出,本申請(qǐng)?jiān)诨谒霎?dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,可以周期性地采集各謂詞在實(shí)際執(zhí)行時(shí)的執(zhí)行結(jié)果參數(shù),并基于采集到的執(zhí)行結(jié)果參數(shù)更新謂詞的當(dāng)前執(zhí)行順序,從而可以根據(jù)真實(shí)的執(zhí)行總代價(jià)周期性地動(dòng)態(tài)調(diào)整謂詞的執(zhí)行順序,確保執(zhí)行總代價(jià)相對(duì)較低,提高數(shù)據(jù)訪問的效率,節(jié)省系統(tǒng)的處理資源。與前述數(shù)據(jù)庫(kù)訪問方法的實(shí)施例相對(duì)應(yīng),本申請(qǐng)還提供了數(shù)據(jù)庫(kù)訪問裝置的實(shí)施例。本申請(qǐng)數(shù)據(jù)庫(kù)訪問裝置的實(shí)施例可以應(yīng)用在服務(wù)器上。裝置實(shí)施例可以通過軟件實(shí)現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實(shí)現(xiàn)。以軟件實(shí)現(xiàn)為例,作為一個(gè)邏輯意義上的裝置,是通過其所在服務(wù)器的處理器將非易失性存儲(chǔ)器中對(duì)應(yīng)的計(jì)算機(jī)程序指令讀取到內(nèi)存中運(yùn)行形成的。從硬件層面而言,如圖4所示,為本申請(qǐng)數(shù)據(jù)庫(kù)訪問裝置所在服務(wù)器的一種硬件結(jié)構(gòu)圖,除了圖4所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲(chǔ)器之外,實(shí)施例中裝置所在的服務(wù)器通常根據(jù)該服務(wù)器的實(shí)際功能,還可以包括其他硬件,對(duì)此不再贅述。圖5是本申請(qǐng)一示例性實(shí)施例示出的一種數(shù)據(jù)庫(kù)訪問裝置的框圖。請(qǐng)參考圖5,所述數(shù)據(jù)庫(kù)訪問裝置500可以應(yīng)用在前述圖4所示的服務(wù)器中,包括有:第一確定單元501、第一采樣單元502、更新判斷單元503、第一更新單元504以及緩存更新單元505。其中,所述更新判斷單元503還可以包括:樣本計(jì)算子單元5031、參考計(jì)算子單元5032、更新確定子單元5033。其中,所述第一確定單元501,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;所述第一采樣單元502,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù);所述更新判斷單元503,根據(jù)所述執(zhí)行結(jié)果參數(shù)判斷所述謂詞是否滿足順序更新條件;所述第一更新單元504,當(dāng)所述謂詞滿足順序更新條件時(shí),基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并通知所述第一采樣單元處理。所述樣本計(jì)算子單元5031,根據(jù)采集到的所述執(zhí)行結(jié)果參數(shù)計(jì)算對(duì)應(yīng)采樣周期各謂詞的執(zhí)行結(jié)果樣本;所述參考計(jì)算子單元5032,針對(duì)每個(gè)謂詞,計(jì)算連續(xù)N個(gè)采樣周期的執(zhí)行結(jié)果樣本的均值作為參考執(zhí)行結(jié)果,N為大于1的自然數(shù);所述更新確定子單元5033,當(dāng)所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果的變化超過預(yù)設(shè)的閾值時(shí),確定所述謂詞滿足順序更新條件;其中,所述緩存的執(zhí)行結(jié)果為確定所述謂詞當(dāng)前執(zhí)行順序的執(zhí)行結(jié)果;所述緩存更新單元505,在基于采集得到的執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序后,用所述采集得到的執(zhí)行結(jié)果參數(shù)確定執(zhí)行結(jié)果后更新已緩存的執(zhí)行結(jié)果??蛇x的,所述執(zhí)行結(jié)果參數(shù)包括兩個(gè)維度:執(zhí)行代價(jià)和取值真假;所述執(zhí)行結(jié)果樣本和所述參考執(zhí)行結(jié)果均包括兩個(gè)參考維度:代價(jià)和選擇率,其中,所述選擇率由所述取值真假確定;所述更新確定子單元5033,在所述參考執(zhí)行結(jié)果與緩存的執(zhí)行結(jié)果在一個(gè)或者多個(gè)參考維度的變化超過預(yù)設(shè)的閾值時(shí),確定所述謂詞滿足順序更新條件。可選的,所述樣本計(jì)算子單元5031,在所述執(zhí)行結(jié)果參數(shù)為取值真假時(shí),根據(jù)采集到的取值真假生成真值表,所述真值表中記錄有各謂詞在各采樣行執(zhí)行后的取值,并根據(jù)所述真值表計(jì)算對(duì)應(yīng)采樣周期各謂詞的選擇率;在所述執(zhí)行結(jié)果參數(shù)為執(zhí)行代價(jià)時(shí),計(jì)算各謂詞在各采樣行的執(zhí)行代價(jià)均值,作為對(duì)應(yīng)采樣周期各謂詞的代價(jià)??蛇x的,所述第一確定單元501,在接收到數(shù)據(jù)庫(kù)訪問請(qǐng)求后,根據(jù)各謂詞缺省的執(zhí)行結(jié)果確定當(dāng)前執(zhí)行順序,并緩存所述缺省的執(zhí)行結(jié)果??蛇x的,所述第一采樣單元502,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,在到達(dá)預(yù)設(shè)的采樣周期時(shí),針對(duì)所有訪問行,根據(jù)預(yù)設(shè)的采樣比例確定是否對(duì)各謂詞在所述訪問行的執(zhí)行結(jié)果參數(shù)進(jìn)行采集。圖6是本申請(qǐng)一示例性實(shí)施例示出的另一種數(shù)據(jù)庫(kù)訪問裝置的框圖。請(qǐng)參考圖6,所述數(shù)據(jù)庫(kù)訪問裝置600可以應(yīng)用在前述圖4所示的服務(wù)器中,包括有:第二確定單元601、第二采樣單元602以及第二更新單元603。其中,所述第二確定單元601,為與數(shù)據(jù)庫(kù)訪問請(qǐng)求相關(guān)的謂詞確定當(dāng)前執(zhí)行順序;所述第二采樣單元602,在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,根據(jù)預(yù)設(shè)的更新周期采集各謂詞的執(zhí)行結(jié)果參數(shù);所述第二更新單元603,基于采集到的所述執(zhí)行結(jié)果參數(shù)更新所述謂詞的當(dāng)前執(zhí)行順序,并在基于所述當(dāng)前執(zhí)行順序執(zhí)行所述謂詞的過程中,繼續(xù)執(zhí)行根據(jù)預(yù)設(shè)的采樣周期采集各謂詞的執(zhí)行結(jié)果參數(shù)的過程。上述裝置中各個(gè)單元的功能和作用的實(shí)現(xiàn)過程具體詳見上述方法中對(duì)應(yīng)步驟的實(shí)現(xiàn)過程,在此不再贅述。對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本申請(qǐng)方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。以上所述僅為本申請(qǐng)的較佳實(shí)施例而已,并不用以限制本申請(qǐng),凡在本申請(qǐng)的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本申請(qǐng)保護(hù)的范圍之內(nèi)。當(dāng)前第1頁1 2 3