[發明專利]優化視圖上的查詢的系統和方法有效
| 申請號: | 201680003292.1 | 申請日: | 2016-03-17 |
| 公開(公告)號: | CN107077512B | 公開(公告)日: | 2020-10-16 |
| 發明(設計)人: | 尼雅瑪拉·斯瑞坎塔雅;迪尼普·庫馬爾;庫馬爾·拉吉夫·拉絲拓吉 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F16/242 | 分類號: | G06F16/242 |
| 代理公司: | 北京同達信恒知識產權代理有限公司 11291 | 代理人: | 李欣 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 優化 視圖 查詢 系統 方法 | ||
本發明公開了一種優化視圖上查詢的系統和方法。本發明提供一種用于處理查詢的數據處理系統,所述數據處理系統包括:耦合至存儲器的處理器,所述存儲器存儲多個指令用于指示所述處理器接收包括視圖上一部分查詢的查詢;基于所述視圖上一部分查詢檢查系統表,其中,所述系統表包括指示所述視圖的所述編譯的與所述視圖關聯的狀態;以及如果在所述系統表中發現所述視圖上一部分查詢,提取共享對象文件,所述共享對象文件存儲與所述視圖上一部分查詢關聯的至少一個編譯函數;將編所述譯函數用作一部分查詢執行計劃;以及執行所述查詢執行計劃以顯示結果。
技術領域
本文描述的主題大體上涉及數據庫管理系統,具體而言,涉及一種通過優化視圖上的查詢提高查詢執行的性能的系統和方法。
背景技術
數據庫系統通常用于應答請求所存儲的數據庫中信息的查詢。一個查詢可定義為對數據庫中表示的數據和數據關系的一個邏輯表達,以及能夠確定數據庫中子集。
任何順序查詢語言(sequential query language,SQL)語句由RDBMS處理,步驟如下所示:
1、解析(語法檢查):RDBMS解析SQL語句語法并且判斷是否符合標準。
2、分析:RDBMS檢查SQL語句中使用的對象(表、列等)是否存在于數據庫中。該階段會提取任何綁定變量(如有)。
3、優化:RDBMS基于成本選擇最佳的查詢執行計劃。
4、執行:RDBMS執行前一步驟生成的最佳計劃并返回結果。
在數據庫理論(來源:維基)中,一個視圖是存儲的對數據的查詢的結果集合,數據庫用戶可以查詢該數據,就像他們在永久性數據庫收集對象中查詢一樣。這種預先設定的查詢命令保存在數據庫字典中。與關系數據庫中的普通基表不同,視圖不構成物理模式的一部分:作為結果集合,視圖是一個虛擬表,當請求訪問該視圖時根據數據庫中的數據動態計算或校對。應用于相關基礎表中的數據的更改在后續調用該視圖所示出的數據中反映出來。
出于實用目的,視圖可以被視為臨時表。這確保視圖具有固定模式并且能以類似表的方式優化。
在一些NoSQL數據庫中,視圖是查詢數據的唯一方式。相比于表,視圖有以下優勢:
視圖可以表示表中包含的數據的子集。因此,視圖可以限制基礎表暴露在外部世界的程度:給定用戶可能有權限查詢該視圖,而拒絕訪問其余基表。
視圖可以將多個表結合到并簡化為單個虛擬表。
視圖可以充當合計表,其中數據庫引擎合計數據(求和、求平均值等)并將計算的結果呈現為一部分數據。
視圖可以隱藏數據的復雜性。例如,視圖可以呈現為Sales2000或Sales2001,從而透明地劃分實際基礎表。
存儲視圖所需的空間很?。粩祿熘话晥D的定義,而不是呈現數據庫的所有數據的副本。
根據所使用的SQL引擎,視圖可以提供額外的安全性。
正如(程序中的)函數可以提供抽象,數據庫視圖也可以。數據庫用戶可以操控嵌套視圖,視圖可以像函數一樣嵌套調用,因此一個視圖可以合計來自其它視圖的數據。在沒有使用視圖的情況下,第二范式之上的數據庫的規范化將變得更加困難。視圖可以更易于創建無損連接分解。
視圖上的查詢執行:視圖上的傳統查詢執行(非物化)涉及3個步驟:
通過擴展視圖定義重寫查詢
優化完整查詢
執行完整查詢
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201680003292.1/2.html,轉載請聲明來源鉆瓜專利網。





