国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于檢索的方法和裝置的制造方法

      文檔序號:8258861閱讀:705來源:國知局
      用于檢索的方法和裝置的制造方法
      【技術領域】
      [0001] 本發(fā)明實施例涉及數(shù)據(jù)庫檢索領域,并且更具體地,涉及一種用于檢索的方法和 裝置。
      【背景技術】
      [0002] 在數(shù)據(jù)庫的檢索過程中,通常采用索引來提高檢索速度,例如,最常用的索引為B+ 樹索引。在索引字段上進行查詢的時候,查詢速度往往能夠得到很大的提升。但是,在索引 字段上包括函數(shù)的情況下,索引很難發(fā)揮作用,基本上只能采用順序掃描而無法使用索引 掃描。在實際的業(yè)務場景中,在索引字段上往往都包括函數(shù),例如,判斷兩個日期在5天之 內(ABS(tl-t2)〈5),或者判斷是不是2014年的時間(Year (tl) =2014)等,在這些情況下, 索引往往無法發(fā)揮其作用,影響了檢索速度。
      [0003]目前,為了解決這個問題,提出了函數(shù)索引技術,即針對檢索的函數(shù)建立對應的 函數(shù)索引,如針對ename字段上建substr的索引,create index emp_ename_substr on eemp(substr(ename, 1,2))。但是,在數(shù)據(jù)更新的情況下,由于索引字段本身的值和函數(shù)計 算之后的值并沒有直接的對應關系,函數(shù)索引的維護代價很高,導致實際使用的場合很少。

      【發(fā)明內容】

      [0004] 本發(fā)明實施例提供一種用于檢索的方法和裝置,能夠有效提尚檢索的效率。
      [0005] 第一方面提供了一種用于檢索的方法,該方法包括:
      [0006] 獲取檢索表達式,該檢索表達式用于在數(shù)據(jù)庫中進行檢索;
      [0007] 根據(jù)該檢索表達式的變量及操作符,從預設的表達式集中選取該檢索表達式的匹 配表達式;
      [0008] 從該檢索表達式的變量中選取目標變量,該目標變量在該數(shù)據(jù)庫中建有索引;
      [0009] 根據(jù)該匹配表達式以及該目標變量,將該檢索表達式轉換成等價的Sargable表 達式;
      [0010] 根據(jù)該Sargable表達式,通過該索引,在該數(shù)據(jù)庫中進行檢索。
      [0011] 結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,根據(jù)該匹配表達式以及 該目標變量,將該檢索表達式轉換成等價的Sargable表達式,包括:
      [0012] 根據(jù)該匹配表達式以及該目標變量,通過預設的映射表,確定對應的Sargable表 達式,其中,該映射表中記錄有該表達式集中的各表達式、該各表達式中的建立有索引的變 量以及Sargable表達式的映射關系。
      [0013] 結合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的 實現(xiàn)方式中,從該檢索表達式的變量中選取目標變量,包括:
      [0014] 根據(jù)該數(shù)據(jù)庫的索引信息,從該檢索表達式的變量中選取目標變量,其中,該數(shù)據(jù) 庫的索引信息中記錄有在該數(shù)據(jù)庫中建立有索引的變量。
      [0015] 結合第一方面或第一方面的第一種或第二種可能的實現(xiàn)方式,在第一方面的第三 種可能的實現(xiàn)方式中,根據(jù)該匹配表達式以及該目標變量,將該檢索表達式轉換成等價的Sargable表達式,包括:
      [0016] 在該檢索表達式為函數(shù)表達式或操作表達式的情況下,根據(jù)該匹配表達式以及該 目標變量,將該檢索表達式轉換成等價的Sargable表達式;
      [0017] 該方法還包括:
      [0018] 在該檢索表達式為條件表達式的情況下,根據(jù)該檢索表達式,在該數(shù)據(jù)庫中進行 檢索。
      [0019] 結合第一方面或第一方面的第一種至第三種可能的實現(xiàn)方式中的人一種可能的 實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,該檢索表達式為連接場景下的或者查 詢場景下的檢索表達式。
      [0020] 第二方面,提供一種用于檢索的裝置,該裝置包括:
      [0021] 獲取模塊,用于獲取檢索表達式,該檢索表達式用于在數(shù)據(jù)庫中進行檢索;
      [0022] 第一選取模塊,用于根據(jù)該獲取模塊獲取的該檢索表達式的變量及操作符,從預 設的表達式集中選取該檢索表達式的匹配表達式;
      [0023] 第二選取模塊,用于從該獲取模塊獲取的該檢索表達式的變量中選取目標變量, 該目標變量在該數(shù)據(jù)庫中建有索引;
      [0024] 轉換模塊,用于根據(jù)該第一選取模塊選取的該匹配表達式以及該第二選取模塊選 取的該目標變量,將該檢索表達式轉換成等價的Sargable表達式;
      [0025] 第一檢索模塊,用于根據(jù)該轉換模塊轉換所得的該Sargable表達式,通過該索 弓丨,在該數(shù)據(jù)庫中進行檢索。
      [0026] 結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,該轉換模塊具體用于, 根據(jù)該匹配表達式以及該目標變量,通過預設的映射表,確定對應的Sargab 1 e表達式,其 中,該映射表中記錄有該表達式集中的各表達式、該各表達式中的建立有索引的變量以及 Sargable表達式的映射關系。
      [0027] 結合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的 實現(xiàn)方式中,該第二選取模塊具體用于,根據(jù)該數(shù)據(jù)庫的索引信息,從該檢索表達式的變量 中選取目標變量,其中,該數(shù)據(jù)庫的索引信息中記錄有在該數(shù)據(jù)庫中建立有索引的變量。
      [0028] 結合第一方面或第一方面的第一種或第二種可能的實現(xiàn)方式,在第一方面的第三 種可能的實現(xiàn)方式中,該轉換模塊具體用于,在該檢索表達式為函數(shù)表達式或操作表達式 的情況下,根據(jù)該匹配表達式以及該目標變量,將該檢索表達式轉換成等價的Sargable表 達式;
      [0029] 該裝置還包括:
      [0030] 第二檢索模塊,用于在該檢索表達式為條件表達式的情況下,根據(jù)該檢索表達式, 在該數(shù)據(jù)庫中進行檢索。
      [0031] 結合第一方面或第一方面的第一種至第三種可能的實現(xiàn)方式中的人一種可能的 實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,該檢索表達式為連接場景下的或者查 詢場景下的檢索表達式。
      [0032] 基于上述技術方案,本發(fā)明實施例提供的用于檢索的方法和裝置,通過將檢索表 達式轉換為Sargable表達式,能夠實現(xiàn)索引檢索,能夠有效提高檢索的效率。
      【附圖說明】
      [0033] 為了更清楚地說明本發(fā)明實施例的技術方案,下面將對實施例或現(xiàn)有技術描述中 所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實 施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附 圖獲得其他的附圖。
      [0034] 圖1示出了本發(fā)明實施例提供的用于檢索的方法的示意性流程圖。
      [0035] 圖2示出了本發(fā)明實施例提供的用于檢索的方法的另一示意性流程圖。
      [0036] 圖3示出了本發(fā)明實施例提供的用于檢索的方法的再一示意性流程圖。
      [0037] 圖4示出了本發(fā)明實施例提供的用于檢索的方法的再一示意性流程圖。
      [0038] 圖5示出了本發(fā)明實施例提供的用于檢索的裝置的示意性框圖。
      [0039] 圖6示出了本發(fā)明實施例提供的用于檢索的裝置的另一示意性框圖。
      【具體實施方式】
      [0040] 下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。
      [0041] 為了方便理解本發(fā)明實施例,首先在此介紹幾個相關的概念:
      [0042] 1)數(shù)據(jù)庫管理系統(tǒng)
      [0043] 數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱為"DBMS")是一種操縱和管 理數(shù)據(jù)庫的大型軟件,用于建立、使用和維護數(shù)據(jù)庫。它對數(shù)據(jù)庫進行統(tǒng)一的管理和控制, 以保證數(shù)據(jù)庫的安全性和完整性。
      [0044] 2)關系數(shù)據(jù)庫
      [0045] 關系數(shù)據(jù)庫是建立在關系數(shù)據(jù)庫模型基礎上的數(shù)據(jù)庫。
      [0046] 關系型數(shù)據(jù)庫的重要元素包括數(shù)據(jù)表和表連接,借助各種類型的表連接,可以將 平鋪直敘的信息加以組裝拼接。
      [0047]3)索引
      [0048] 索引是對記錄集的多個字段進行排序的方法,在一張表中為一個字段創(chuàng)建一個索 弓丨,將創(chuàng)建另外一個數(shù)據(jù)結構,包含字段數(shù)值以及指向相關記錄的指針,然后對這個索引結 構進行排序,允許在該數(shù)據(jù)上進行二分法排序。
      [0049] 索引的目的是在可能的情況下加速查詢,所以索引應該建立在主鍵列、惟一約束 列、條件語句常用列。
      [0050] 4) Sargable 表達式
      [0051] 在關系數(shù)據(jù)庫中,如果數(shù)據(jù)庫管理系統(tǒng)(Database Management System,簡稱為 "DBMS")能夠利用索引對查詢中的某個表達式的檢索進行加速,該表達式被稱為Sargable 表達式,該術語來源于Search Argument Able的縮寫,也可稱之為可SARG的表達式。
      [0052] Sargable表達式通常是指列和常量的比較。如果一個檢索表達式是sargable (可 SARG)表達式,意味著它能利用索引加速查詢的完成。
      [0053] 如果一個檢索表達式是不可SARG的,意味著該檢索表達式不能利用索引(至少部 分不能利用)來執(zhí)行全表或索引掃描,會引起查詢性能的下降。下列表達式,均為不可SARG 的表達式:
      [0054] "is null","! = NOT",',Not Exist",',Not in",',Not Like","Like500%"。此外,在列上使用包含函數(shù)的的表達式、表達式兩邊都使用相同列的 表達式,以及,和不同列(非常量)比較的表達式,都不是可SARG的表達式。
      [0055] 圖1示出了本發(fā)明實施例的用于檢索的方法100,該方法100包括:
      [0056] S110,獲取檢索
      當前第1頁1 2 
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1