[發(fā)明專利]一種基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法有效
| 申請(qǐng)?zhí)枺?/td> | 201010112856.X | 申請(qǐng)日: | 2010-02-22 |
| 公開(公告)號(hào): | CN102163195A | 公開(公告)日: | 2011-08-24 |
| 發(fā)明(設(shè)計(jì))人: | 劉川;張海齊;鄧鵬飛 | 申請(qǐng)(專利權(quán))人: | 北京東方通科技股份有限公司 |
| 主分類號(hào): | G06F17/30 | 分類號(hào): | G06F17/30 |
| 代理公司: | 北京路浩知識(shí)產(chǎn)權(quán)代理有限公司 11002 | 代理人: | 胡小永 |
| 地址: | 100080 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 分布式 數(shù)據(jù)庫 統(tǒng)一 視圖 查詢 優(yōu)化 方法 | ||
1.一種基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,包括步驟:
S1:對(duì)所述統(tǒng)一視圖的SQL查詢語句按要查詢數(shù)據(jù)庫的物理表進(jìn)行有效分解,包括:
當(dāng)視圖對(duì)應(yīng)的物理表屬于同一數(shù)據(jù)庫時(shí),將所述對(duì)統(tǒng)一視圖SQL查詢語句分解為查詢所述物理表的一條關(guān)聯(lián)SQL查詢語句;
當(dāng)所述統(tǒng)一視圖對(duì)應(yīng)的物理表屬于多個(gè)異構(gòu)數(shù)據(jù)庫時(shí),將所述對(duì)統(tǒng)一視圖SQL查詢語句按單個(gè)數(shù)據(jù)庫的物理表獨(dú)立分解成各自的SQL查詢語句,包括兩種情況:
若所述單個(gè)數(shù)據(jù)庫中的部分物理表相互關(guān)聯(lián),則把所述獨(dú)立分解的SQL查詢語句組合成一條查詢相互關(guān)聯(lián)物理表的多表關(guān)聯(lián)SQL查詢語句;
若數(shù)據(jù)庫中的表A是和本數(shù)據(jù)庫中的其它表沒有關(guān)聯(lián),則對(duì)所述表A單獨(dú)構(gòu)成一條單表SQL查詢語句;
S2:用步驟S1中分解出的SQL查詢語句查詢對(duì)應(yīng)的物理表并返回結(jié)果數(shù)據(jù);
S3:將步驟S2中查詢物理表返回的結(jié)果數(shù)據(jù)進(jìn)行組合后,連同對(duì)應(yīng)的SQL查詢語句存儲(chǔ)到緩存區(qū)中。
2.如權(quán)利要求1所述的基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,所述步驟S2包括:
S21:查找緩存區(qū),找出緩存區(qū)中的SQL查詢語句,判斷當(dāng)前查詢的SQL查詢語句的查詢條件是否被所述緩存區(qū)中的SQL查詢語句的查詢條件所包含,若包含,則返回所述緩存區(qū)中與當(dāng)前查詢的SQL查詢語句的查詢條件對(duì)應(yīng)的查詢結(jié)果;
S22:若不包含,則對(duì)S1中分解出的SQL查詢語句進(jìn)行優(yōu)先級(jí)設(shè)置,然后按優(yōu)先級(jí)查詢對(duì)應(yīng)的物理表并返回查詢結(jié)果。
3.如權(quán)利要求2所述的基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,所述步驟S21中判斷原則為:
緩存區(qū)中的SQL查詢語句查詢的統(tǒng)一視圖和當(dāng)前SQL查詢語句要查詢的統(tǒng)一視圖相同,且當(dāng)前SQL查詢語句的查詢結(jié)果字段被包含在緩存區(qū)的SQL查詢語句查詢結(jié)果字段中;
判斷查詢條件的字段和值是否完全相同,如果完全相同,則返回所述緩存區(qū)中由該查詢條件得到的相應(yīng)的查詢結(jié)果;
判斷查詢條件的字段是否是緩存查詢條件的一個(gè)子集,如果是子集,并且條件值相同,則返回所述緩存區(qū)中由該查詢條件子集查詢得到的相應(yīng)的查詢結(jié)果;
判斷查詢條件的字段是否是緩存查詢條件的一個(gè)子集,如果是子集,但查詢條件值不相同,則判斷查詢條件的值是否是緩存查詢條件值的一個(gè)子集,如果是子集,則返回所述緩存區(qū)中由該查詢條件值的子集得到的相應(yīng)的查詢結(jié)果。
4.如權(quán)利要求2所述的基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,所述步驟S22中優(yōu)先級(jí)設(shè)置原則為:
包含查詢條件的多表關(guān)聯(lián)查詢優(yōu)先級(jí)最高;
其次是包含查詢條件的單表查詢;
然后是不帶條件的多表查詢;
最后是不帶條件的單表查詢。
5.如權(quán)利要求4任一所述的基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,所述步驟S22按優(yōu)先級(jí)查詢時(shí)將高優(yōu)先級(jí)的查詢結(jié)果集作為低優(yōu)先級(jí)查詢的條件集。
6.如權(quán)利要求1-5任一所述的基于分布式、異構(gòu)數(shù)據(jù)庫統(tǒng)一視圖的查詢優(yōu)化方法,其特征在于,所述步驟S1前還包括步驟:
為分布式、異構(gòu)數(shù)據(jù)庫配置供外部訪問的統(tǒng)一視圖,所述統(tǒng)一視圖包括JDBC和ODBC應(yīng)用開發(fā)接口,且支持基于SQL的數(shù)據(jù)查詢。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京東方通科技股份有限公司,未經(jīng)北京東方通科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201010112856.X/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F17-00 特別適用于特定功能的數(shù)字計(jì)算設(shè)備或數(shù)據(jù)處理設(shè)備或數(shù)據(jù)處理方法
G06F17-10 .復(fù)雜數(shù)學(xué)運(yùn)算的
G06F17-20 .處理自然語言數(shù)據(jù)的
G06F17-30 .信息檢索;及其數(shù)據(jù)庫結(jié)構(gòu)
G06F17-40 .數(shù)據(jù)的獲取和記錄
G06F17-50 .計(jì)算機(jī)輔助設(shè)計(jì)
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構(gòu)筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構(gòu)筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對(duì)象復(fù)制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲(chǔ)方法、裝置、電子設(shè)備及存儲(chǔ)介質(zhì)
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





