The present application provides a database access method and apparatus. The method includes: with database access request the relevant predicates to determine the current execution order; the order of execution in the current process of executing the predicate based on the sampling period, according to the results of the implementation of the acquisition of predicate inputs; according to the execution results of the parameters to judge whether a predicate satisfies the sequential update when conditions; the predicate update satisfies the sequential condition, based on the obtained results of the implementation of the parameter updating the current predicate execution order, and in the process of the execution order of the execution of the predicate based on the process, continue to implement according to the sampling period of each predicate acquisition results of the implementation of the preset parameters. This application can be executed according to the total cost of the dynamic adjustment of execution order predicate true, adaptive data distribution, the predicate in the whole process of the implementation of the implementation of the minimum cost, maintain and improve the efficiency of data access, save resource processing system.
【技術實現步驟摘要】
數據庫訪問方法和裝置
本申請涉及數據庫
,尤其涉及一種數據庫訪問方法和裝置。
技術介紹
SQL(StructuredQueryLanguage,結構化查詢語言)謂詞通常是指where分句中的條件表達式,SQL謂詞通過返回真或假的值判定一行數據是否需要返回給用戶。在處理一個數據庫訪問請求時,通常需要執行多個謂詞。相關技術中,各數據庫通常會預定義有謂詞的分類,并依據預設的分類順序依次執行各類謂詞。比如:在IBM數據庫中,可以將謂詞分為stage1和stage2兩類,在執行時,首先執行stage1謂詞,然后再執行stage2謂詞。而針對某一類中的多個謂詞,可以按照用戶定義的順序(where條件中出現的先后順序)先后執行。然而,在這樣的實現方案中,謂詞的執行順序依賴數據庫預定義的規則,對執行算子本身的代價(比如:執行耗時等)并不敏感,在一些情況下無法達到代價最低的執行順序。另一方面,謂詞的執行順序還會依賴用戶的輸入順序,當用戶想要修改謂詞的執行順序時,需要修改訪問請求本身,技術門檻高。此外,謂詞的執行順序一旦確定,在執行的過程中無法改變,當數據庫中存儲的數據分布發生變化或數據傾斜時,不能確保謂詞的執行代價始終較低。
技術實現思路
有鑒于此,本申請提供一種數據庫訪問方法和裝置。具體地,本申請是通過如下技術方案實現的:一種數據庫訪問方法,所述方法包括:為與數據庫訪問請求相關的謂詞確定當前執行順序;在基于所述當前執行順序執行所述謂詞的過程中,根據預設的采樣周期采集各謂詞的執行結果參數;根據所述執行結果參數判斷所述謂詞是否滿足順序更新條件;當所述謂詞滿足順序更新條件時, ...
【技術保護點】
一種數據庫訪問方法,其特征在于,所述方法包括:為與數據庫訪問請求相關的謂詞確定當前執行順序;在基于所述當前執行順序執行所述謂詞的過程中,根據預設的采樣周期采集各謂詞的執行結果參數;根據所述執行結果參數判斷所述謂詞是否滿足順序更新條件;當所述謂詞滿足順序更新條件時,基于采集得到的執行結果參數更新所述謂詞的當前執行順序,并在基于所述當前執行順序執行所述謂詞的過程中,繼續執行根據預設的采樣周期采集各謂詞的執行結果參數的過程。
【技術特征摘要】
1.一種數據庫訪問方法,其特征在于,所述方法包括:為與數據庫訪問請求相關的謂詞確定當前執行順序;在基于所述當前執行順序執行所述謂詞的過程中,根據預設的采樣周期采集各謂詞的執行結果參數;根據所述執行結果參數判斷所述謂詞是否滿足順序更新條件;當所述謂詞滿足順序更新條件時,基于采集得到的執行結果參數更新所述謂詞的當前執行順序,并在基于所述當前執行順序執行所述謂詞的過程中,繼續執行根據預設的采樣周期采集各謂詞的執行結果參數的過程。2.根據權利要求1所述的方法,其特征在于,所述根據所述執行結果參數判斷所述謂詞是否滿足順序更新條件,包括:根據采集到的所述執行結果參數計算對應采樣周期各謂詞的執行結果樣本;針對每個謂詞,計算連續N個采樣周期的執行結果樣本的均值作為參考執行結果,N為大于1的自然數;當所述參考執行結果與緩存的執行結果的變化超過預設的閾值時,確定所述謂詞滿足順序更新條件;其中,所述緩存的執行結果為確定所述謂詞當前執行順序的執行結果;所述方法還包括:在基于采集得到的執行結果參數更新所述謂詞的當前執行順序后,用所述采集得到的執行結果參數確定執行結果后更新已緩存的執行結果。3.根據權利要求2所述的方法,其特征在于,所述執行結果參數包括兩個維度:執行代價和取值真假;所述執行結果樣本和所述參考執行結果均包括兩個參考維度:代價和選擇率,其中,所述選擇率由所述取值真假確定;所述當所述參考執行結果與緩存的執行結果的變化超過預設的閾值時,確定所述謂詞滿足順序更新條件,包括:當所述參考執行結果與緩存的執行結果在一個或者多個參考維度的變化超過預設的閾值時,確定所述謂詞滿足順序更新條件。4.根據權利要求3所述的方法,其特征在于,所述根據采集到的所述執行結果參數計算對應采樣周期各謂詞的執行結果樣本,包括:當所述執行結果參數為取值真假時,根據采集到的取值真假生成真值表,所述真值表中記錄有各謂詞在各采樣行執行后的取值;根據所述真值表計算對應采樣周期各謂詞的選擇率;當所述執行結果參數為執行代價時,計算各謂詞在各采樣行的執行代價均值,作為對應采樣周期各謂詞的代價。5.根據權利要求2所述的方法,其特征在于,所述為與數據庫訪問請求相關的謂詞確定當前執行順序,包括:在接收到數據庫訪問請求后,根據各謂詞缺省的執行結果確定當前執行順序;緩存所述缺省的執行結果。6.根據權利要求1所述的方法,其特征在于,所述根據預設的采樣周期采集各謂詞的執行結果參數,包括:在到達預設的采樣周期時,針對所有訪問行,根據預設的采樣比例確定是否對各謂詞在所述訪問行的執行結果參數進行采集。7.一種數據庫訪問方法,其特征在于,所述方法包括:為與數據庫訪問請求相關的謂詞確定當前執行順序;在基于所述當前執行順序執行所述謂詞的過程中,根據預設的更新周期采集各謂詞的執行結果參數;基于采集到的所述執行結果參數更新所述謂詞的當前執行順序,并在基于所述當前執行順序執行所述謂詞的過程中,繼續執...
【專利技術屬性】
技術研發人員:陳萌萌,
申請(專利權)人:阿里巴巴集團控股有限公司,
類型:發明
國別省市:開曼群島,KY
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。