TWI773297B - 用於資料庫查詢效率改善的電腦實行系統以及方法 - Google Patents
用於資料庫查詢效率改善的電腦實行系統以及方法 Download PDFInfo
- Publication number
- TWI773297B TWI773297B TW110116021A TW110116021A TWI773297B TW I773297 B TWI773297 B TW I773297B TW 110116021 A TW110116021 A TW 110116021A TW 110116021 A TW110116021 A TW 110116021A TW I773297 B TWI773297 B TW I773297B
- Authority
- TW
- Taiwan
- Prior art keywords
- query
- database
- test
- value
- resource utilization
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/221—Column-oriented storage; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24557—Efficient disk access during query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
- G06F16/285—Clustering or classification
- G06F16/287—Visualization; Browsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本發明揭露用於資料庫查詢效率改善的方法及系統。在一
個實施例中,方法包含:將主資料庫鏡像至輔助資料庫;創建包括綱目的測試資料庫;接收查詢;在測試資料庫上運行查詢;以及藉由以下步驟來評估查詢:識別查詢中的述詞;藉由查詢輔助資料庫來判定每一行名稱的最常見值;為每一行名稱創建包括最常見值中的至少一者的列表;創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞;創建包括一或多個測試述詞的測試查詢;藉由在輔助資料庫上運行測試查詢中的每一者來判定查詢的資源利用率;以及當資源利用率超出臨限值時,向使用者介面提供效率改善建議以供顯示。
Description
本揭露大體上是關於用於資料庫查詢效率改善的電腦化系統及方法。特定而言,本揭露的實施例是關於一種分析資料庫查詢的系統。系統測試查詢以用於在測試資料庫上恰當起作用。若查詢成功,則系統創建查詢的變化且在離線資料庫上運行變化以測試查詢效率。系統在查詢運行於產品資料庫上之前,在離線資料庫上運行多個查詢情境。以此方式,潛在的查詢低效和過量資源使用的風險在降低使用者體驗之前被識別。
大型資料庫儲存速度及可存取性的進步已使得開發者能夠增強使用者網站體驗。舉例而言,當使用者電子在商務網站上檢視產品時,網站之下的腳本可運行多個自動化資料庫查詢以獲得隨後併入至網站中的產品資訊。在一些情況下,開發者可用查詢結構對網站進行程式設計,所述查詢結構隨後在伺服器資料庫上運行之前用使用者搜尋術語完成。開發者亦可創建進行自動化資料庫查詢及分析(諸如用於即時串流儲備量度、流量規劃、轉接更新、運動得分以及類似者)的程式。
對於具有簡單查詢的較小使用者基底,現代資料庫架構甚至可在有限地損害使用者體驗的情況下快速處理低效的查詢。然而,當資料庫查詢變得複雜時,或當應用程式具有較大使用者基底時,即使很小的資料庫低效亦會倍增對使用者體驗的重大損害。此可能使得網站及應用程式運行緩慢,從而導致失去客戶或交易。
然而,開發者常常在其識別及校正低效查詢的能力方面受到限制。通常,直至在使用者體驗及(在多數情況下)報告問題之後,才識別因低效查詢產生的資料庫滯後。當在競爭性的環境中將服務或產品提供至大量使用者基底時,可能永遠不會報告此等問題。若使用者僅報告緩慢的網站,則識別低效資料庫查詢可為費時且資源密集的。且,即使開發者判定低效查詢為網站緩慢的原因,校正查詢以有效提供相同功能性亦可能為費時的。
因此,需要在部署之前在測試環境中自動地偵測及校正低效查詢,因此限制對使用者體驗的不利影響的系統及方法。
本揭露的一個態樣是針對一種用於資料庫查詢效率改善的電腦實行系統。系統包括:記憶體,儲存指令;以及至少一個處理器,經組態以執行指令以進行操作。操作包括:將主資料庫鏡像至輔助資料庫,輔助資料庫包括綱目;創建包括綱目的測試資料庫;接收查詢;在測試資料庫上運行查詢;以及回應於在測試資料庫上成功地完成查詢,藉由以下步驟來評估查詢:識別查詢中的述詞,每一述詞包括行名稱;藉由查詢輔助資料庫來判定每一行名稱的最常見值;為每一行名稱創建包括最常見值中的至少一者的列
表;創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞;創建包括一或多個測試述詞的測試查詢;藉由在輔助資料庫上運行測試查詢中的每一者來判定查詢的資源利用率;以及當資源利用率超出臨限值時,向使用者介面提供效率改善建議以供顯示。
本揭露的另一態樣是針對一種用於資料庫查詢效率改善的電腦實行方法。方法包含以下步驟:將主資料庫鏡像至輔助資料庫,輔助資料庫包括綱目;創建包括綱目的測試資料庫;接收查詢;在測試資料庫上運行查詢;以及回應於在測試資料庫上成功地完成查詢,藉由以下步驟來評估查詢:識別查詢中的述詞,每一述詞包括行名稱;藉由查詢輔助資料庫來判定每一行名稱的最常見值;為每一行名稱創建包括最常見值中的至少一者的列表;創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞;創建包括一或多個測試述詞的測試查詢;藉由在輔助資料庫上運行測試查詢中的每一者來判定查詢的資源利用率;以及當資源利用率超出臨限值時,向使用者介面提供效率改善建議以供顯示。
本揭露的另一態樣是針對一種用於資料庫查詢效率改善的電腦實行方法。方法包含以下步驟:將主資料庫鏡像至輔助資料庫,輔助資料庫包括綱目;創建包括綱目的測試資料庫;接收查詢;在測試資料庫上運行查詢;以及若在測試資料庫上成功地完成查詢,則藉由以下來步驟評估查詢:識別查詢中的述詞,每一述詞包括唯一行名稱;藉由查詢輔助資料庫來判定每一行名稱的最常見值;藉由查詢查詢儲存區來判定每一行名稱的最常見查詢值;為每一行名稱創建包括最常見值中的至少一者及最常見查詢值中的
至少一者的列表;創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞;創建包括測試述詞的組合的測試查詢;藉由在輔助資料庫上運行測試查詢中的每一者來判定查詢處理時間;以及當查詢處理時間的最大值小於臨限值時,在主資料庫上運行查詢。
本文亦論述其他系統、方法以及電腦可讀媒體。
100:系統
102:伺服器
104:主資料庫
106:輔助資料庫
108:測試資料庫
110:查詢儲存區
112:電腦網路
114:查詢測試系統
116:處理器
118:輸入/輸出裝置
120:記憶體
122:用戶端裝置
200:過程
202、204、206、208、210、212、214、216、218、220、222、224、226、228、230、232:步驟
302:所接收的查詢
304:第一述詞
306:第二述詞
308、310:表
312、314:測試述詞
316:測試查詢
圖1示出與所揭露的實施例一致的包含用戶端及資料庫的網路。
圖2為與所揭露的實施例一致的資料庫查詢效率改善過程的流程圖。
圖3示出與所揭露的實施例一致的查詢變化的創建。
以下詳細描述參考隨附圖式。在任何有可能之處,在圖式及以下描述中使用相同附圖標號來指代相同或類似部分。儘管本文中描述若干說明性實施例,但修改、調適以及其他實施方式是可能的。舉例而言,可對圖式中所示出的組件及步驟做出替代、添加或修改,且可藉由替代、重新排序、移除步驟或將步驟添加至所揭露方法來修改本文中所描述的說明性方法。因此,以下詳細描述不限於所揭露的實施例及實例。實情為,本發明的適當範圍由所附申請專利範圍界定。
本揭露的實施例是針對用於虛擬伺服器資源使用度量分級的系統及方法。
圖1繪示與所揭露的實施例一致的包含用戶端及資料庫的系統100。系統100的組件可藉由電腦網路112通信。電腦網路112可包含以下中的一或多者的任何組合:網際網路、內部網路、區域網路(Local-Area Network;LAN)、廣域網路(Wide-Area Network;WAN)、都會區域網路(Metropolitan-Area Network;MAN)、虛擬專用網路(virtual private network;VPN)、無線網路(例如,與IEEE 802.11a/b/g/n相容)、有線網路、租用線路、蜂巢式資料網路或使用藍牙連接、紅外連接或近場通信(Near-Field Communication;NFC)連接的網路。
系統100可包含多個資料庫,諸如主資料庫104、輔助資料庫106、測試資料庫108以及查詢儲存區110。資料庫104至資料庫110可包含例如NoSQL資料庫,諸如海貝斯(HBase)、盲狗DBTM(MongoDBTM)或卡珊德拉TM(CassandraTM)。替代地,資料庫104至數據庫110可包含諸如甲骨文(Oracle)、MySQL以及微軟SQL(Microsoft SQL)伺服器的關連式資料庫。在一些實施例中,資料庫104至資料庫110可採取伺服器、虛擬伺服器、通用電腦、大型電腦或此等組件的任何組合的形式。任何數目的主資料庫104、輔助資料庫106、測試資料庫108或查詢儲存區110可包含於系統100中。
主資料庫104可回應於由用戶端裝置122作出的網站請求而將資料提供至伺服器102。主資料庫104亦可稱為產品資料庫。換言之,用戶端可與儲存於主資料庫104上的資料交互。儲存
於主資料庫上的資料可包含用以滿足用戶端需要的真實世界資料,且可由各種安全特徵保護。舉例而言,資料可包含要求安全連接及存取權限的銀行帳戶資訊或個人可識別資訊。伺服器102可管理存取權限。
輔助資料庫106可含有自主資料庫104複製的資料。可對資料進行清理使得儲存於輔助資料庫上的資訊不受限制性權限要求保護。舉例而言,當主資料庫104不忙於回應使用者請求時,輔助資料庫106可自特用主資料庫104複製資料。輔助資料庫106亦可週期性地或按需求複製資訊,諸如每幾個小時、每晚、每隔一晚、每週等。在一些實施例中,使用者並不與儲存於輔助資料庫106上的資料交互。實情為,輔助資料庫106上的資料可用於在不對主資料庫104進行任務分配且潛在地中斷使用者請求的情況下測試查詢。輔助資料庫106可稱為離線資料庫。
測試資料庫108可含有儲存於主資料庫104中的資料的子集。可對資料進行清理以移除真實世界資料,同時維持與主資料庫相同的資料結構。舉例而言,若主資料庫104儲存對應於賬戶所有者姓名的銀行帳戶資訊的表,則測試資料庫108可儲存對應於虛構姓名的隨機數表。開發者可使用儲存於測試資料庫108上的資料以確定查詢是否起作用。換言之,測試資料庫108具有與主資料庫104或輔助資料庫106相同的資料結構,但可具有與主資料庫104及輔助資料庫106不同的資料及/或少於主資料庫104及輔助資料庫106的資料。
查詢儲存區110可儲存由使用者運行的查詢記錄。當自使用者接收請求時,伺服器102可填充查詢儲存區110。作為電子
商務的實例,使用者可提交線上商店鞋子及外套的庫存的請求。當作出請求時,伺服器102可產生查詢以獲得其中物件類型為「鞋子」的庫存條目。伺服器102亦可更新儲存於查詢儲存區110中的日誌,所述日誌繪示使用者觸發對標記為「庫存」的行中的「鞋子」的查詢。來自查詢儲存區110的資料可用於查詢效率測試。
系統100亦可包含伺服器102。伺服器102可儲存資訊,諸如HTML碼、圖形、指令碼以及連接協定,以便將網站、應用以及類似者提供至用戶端裝置122。伺服器102可擷取及處理由資料庫104至資料庫110中的一者提供的資訊以填充網站。在一些實施例中,伺服器102可在不進行處理的情況下將來自資料庫104至資料庫110中的一者的原始資料提供至用戶端裝置122。另外,伺服器102可處理來自用戶端裝置122的資料以建構查詢,將查詢提交至資料庫,分析或格式化結果,以及將結果提供至用戶端裝置122。伺服器102亦可將資料上載至資料庫104至資料庫110中的任一者或自資料庫104至資料庫110中的任一者下載資料。在一些實施例中,伺服器102亦可藉由複製資料、修改資料、分配儲存區、配置冗餘數據儲存區以及控制一或多個資料庫104至資料庫110中的資料存取來管理資料庫104至資料庫110。
用戶端裝置122可為膝上型電腦、獨立電腦、行動電話、平板電腦、穿戴式裝置(例如智慧型手錶)以及類似者。用戶端裝置122可能與使用由網站提供的服務或產品的網站客戶相關聯。替代地或另外,用戶端裝置122可能與開發者相關聯。舉例而言,開發者可寫入網站之下的程式碼,且經由用戶端裝置122將程式碼上載至伺服器102。
系統100可更包含查詢測試系統114。查詢測試系統114可在查詢併入至於伺服器102上運行的程式碼中之前協調查詢的測試。因此,開發者可經由用戶端裝置122利用查詢測試系統114以測試查詢錯誤及效率。查詢測試系統114可包含至少一個處理器116、允許傳輸資料的輸入/輸出(input/output;I/O)裝置118以及至少一個記憶體120。記憶體120可儲存用於操作查詢測試的程式。記憶體120亦可儲存用於圖形使用者介面(graphical user interface;GUI)的指令。查詢測試系統114亦可具有使用者輸入裝置及顯示裝置(未繪示)。伺服器102、用戶端裝置122以及資料庫104至資料庫110亦可包含處理器、I/O裝置、記憶體、程式以及使用者介面。在一些實施例中,用戶端裝置122提供使用者輸入及顯示功能性以允許開發者與查詢測試系統114交互。
此外,處理器116可為能夠操縱或處理資訊的通用或專用電子裝置。舉例而言,處理器可包含以下各者中的一或多者:中央處理單元(或「central processing unit;CPU」)、圖形處理單元(或「graphics processing unit;GPU」)、光學處理器、可程式化邏輯控制器、微控制器、微處理器、數位信號處理器、智慧財產權(intellectual property;IP)核心、可程式化邏輯陣列(Programmable Logic Array;PLA)、可程式化陣列邏輯(Programmable Array Logic;PAL)、通用陣列邏輯(Generic Array Logic;GAL)、複合可程式化邏輯裝置(Complex Programmable Logic Device;CPLD)、場可程式化閘陣列(Field-Programmable Gate Array;FPGA)、系統單晶片(System On Chip;SoC)、特殊應用積體電路(Application-Specific Integrated Circuit;ASIC)以及能夠進行資料處理的任何
類型的電路。處理器亦可為虛擬處理器,其可包含分佈在經由網路耦接的多個機器或裝置上的一或多個處理器。
記憶體120可為能夠儲存可由處理器116(例如經由匯流排,未繪示)存取的程式碼及資料的通用或專用電子裝置。舉例而言,記憶體120可包含以下中各者的一或多者:隨機存取記憶體(random-access memory;RAM)、唯讀記憶體(read-only memory;ROM)、光碟、磁碟、硬驅動機、固態驅動機、快閃驅動機、安全數位(security digital;SD)卡、記憶棒、緊湊型快閃(compact flash;CF)卡或任何類型的儲存裝置。程式碼可包含作業系統(operating system;OS)及/或用於特定任務的一或多個應用程式(或「application programs;app」)。記憶體120亦可為虛擬記憶體,其可包含分佈在經由網路耦接的多個機器或裝置上的一或多個記憶體。
在一些實施例中,查詢測試系統114、伺服器102及/或資料庫104至資料庫110的任何組合可組合成單一裝置。舉例而言,伺服器102可執行查詢測試系統114的功能,且含有查詢儲存區110的資料,或查詢測試系統114可管理資料庫104至資料庫110中的任一者。個別裝置亦可經複製或劃分。舉例而言,主資料庫104可具有多個備用資料庫以確保在發生故障的情況下連續操作,或記憶體120上的程式可儲存於單獨的未繪示資料庫中。此外,裝置可實施為虛擬伺服器。
圖2繪示與所揭露的實施例一致的資料庫查詢效率改善過程200的流程圖。查詢測試系統114可使用儲存於資料庫104至資料庫110上的資料進行過程200。用於執行過程200的指令可
儲存於記憶體120上且由查詢測試系統114的處理器實施。過程200可包含以下步驟,所述步驟將在適當時藉由參考圖3來示出以有助於步驟的理解。
在步驟202處,查詢測試系統114將主資料庫104鏡面至輔助資料庫106,輔助資料庫包括綱目。換言之,查詢測試系統114將主資料庫104複製至輔助資料庫106。包含諸如行名稱及每一行名稱的資料類型的資訊的綱目或資料結構可與主資料庫104的綱目相同。鏡像可為部分的,諸如儲存於主資料庫104上的隨機選定的資料的子集。查詢測試系統114可以隨機間隔執行步驟202,例如每當主資料庫104具有剩餘處理能力、週期性地或由於諸如當開發者點擊按鈕以自資料庫複製資訊時的事件時。當初始化或第一次設置鏡像時,查詢測試系統114可複製主資料庫104的資料綱目。後續更新接著可在不更新綱目的情況下在輔助資料庫106中編輯資料(例如添加、修改或刪除資料)。
在步驟204處,查詢測試系統114創建包括綱目的測試資料庫108。雖然測試資料庫108中的資料可包括與主資料庫104及輔助資料庫106相同的綱目,但測試資料庫108可包含合成資料,或換言之,產生為占位資訊的人工「填充」資料。開發者可藉由相對於測試資料庫108運行查詢及確保查詢不會由於錯誤、遺漏行以及類似者而失敗來對查詢進行除錯。因此,由於測試資料庫108可用於測試查詢的基本功能性,故測試資料庫108可能不需要含有與主資料庫104或輔助資料庫106相同的資訊或資料數量。替代地,在一些實施例中,測試資料庫108可含有與主資料庫104及/或輔助資料庫106相同的資訊。
在步驟206處,查詢測試系統114接收查詢,且在步驟208處在測試資料庫108上運行查詢。運行查詢可包含將查詢提交至資料庫,其中資料庫尋找查詢的資訊匹配準則且返回資料。開發者可經由用戶端裝置122將查詢提交至查詢測試系統114。查詢測試系統114可代管網頁介面,從而允許開發者相對於用於將資料儲存於主資料庫104中的相同綱目而起草及提交查詢以用於測試功能性。
在步驟210處,查詢測試系統114可判定是否在測試資料庫108上成功地完成查詢。當查詢測試系統114藉由例如偵測來自測試資料庫108的錯誤訊息的存在或不存在來判定查詢已失敗時,步驟210為否,且查詢測試系統114可行進至步驟212以返回查詢失敗的警告。查詢測試系統114可提供錯誤報告以有助於開發者判定查詢測試失敗的原因。然而,當查詢測試系統114判定查詢已成功地運行時,步驟210為是,且查詢測試系統114可行進至步驟214。查詢測試系統114可將查詢成功的指示提供至開發者,且請求同意繼續過程200的下一個步驟。
在步驟214處,查詢測試系統114識別查詢中的述詞,每一述詞包括行名稱。述詞可包含例如資料庫查詢的元素,所述元素指示必須選擇的條目的條件。舉例而言,若查詢為SQL查詢,則述詞可為指定資料庫行的值的查詢WHERE敍述的條件。
繪示與所揭露的實施例一致的查詢變化的創建的圖3進一步示出步驟214的使用。圖3首先繪示所接收的查詢302,所述查詢302可為SQL查詢。圖3的所接收的查詢302為由開發者提供的測試查詢,且是指儲存於具有與產品資料庫相同的資料庫綱
目的測試資料庫中的人工資料。舉例而言,姓名「湯姆(Tom)」可作為人工條目出現在測試資料庫中,但不會出現在具有真實資料的產品資料庫中。所接收的查詢302含有兩個述詞。第一述詞304為「姓名=『湯姆』」,且第二述詞306為「購買=『米』」。第一述詞304因此是指行「姓名」,且第二述詞306是指行「購買」。在此實例中,由於查詢中的資料為人工的,故可丟棄第一述詞304及第二述詞306的值。
為了識別述詞,步驟214可包括相對於查詢文字運行正規表式腳本、識別及提取字元圖案的方法,以識別述詞且進一步識別每一述詞的行名稱及值。腳本可包含模糊匹配技術以識別與由腳本評估的圖案略微不同的述詞。在一些實施例中,可省略模糊匹配述詞(其有助於發現含有來自圖案的較小變化的匹配)及數學測試(諸如比較數目)。亦可處理述詞以標準化述詞資料,諸如藉由移除標點及白空間。此外,在一些情境中,開發者可用包括相同行名稱的多個述詞來起草查詢。查詢測試系統114亦可藉由行名稱對述詞進行去重,使得自查詢導出的行名稱的列表不具有重複值。步驟214可藉由查詢的行名稱的集合來得出結論。舉例而言,在圖3中,示出為所接收的查詢302的簡單SQL查詢將由步驟214處理以判定行名稱「姓名」及「購買」。
返回至圖2,在步驟216處,查詢測試系統114藉由查詢輔助資料庫106來判定每一行名稱的最常見值。查詢測試系統114可建構查詢以按出現次數對行中的條目進行聚集、計數以及排序。以此方式,查詢測試系統114判定對應於行名稱的行中的每一值的計數。如圖3中所示出,可進一步理解此步驟。在自所接收的查
詢302識別行名稱「姓名」及「購買」之後,查詢測試系統114審查離線資料庫的行「姓名」及行「購買」中的條目。舉例而言,離線資料庫可具有10列條目。在彼等十列中,「姓名」行記錄「約翰(John)」五次,「克里斯(Chris)」三次以及「艾倫(Allen)」兩次,如表308中所繪示。類似地,為值「墨西哥卷餅」、「三明治」以及「湯」的「購買」行建構表310。舉例而言,表中的最常見值可判定為前兩個條目。因此,「約翰」及「克里斯」為表308的最常見值,且「墨西哥卷餅」及「三明治」為表310的最常見值。
為了容納主資料庫104中因為條目的刪除或添加而引起的總條目的改變數目,查詢測試系統114可藉由針對每一值相對於行中的條目的總數目計算對應於經判定計數的分數來發現每一行的最常見值。最常見值是指行中的更頻繁出現在行中的值。因此,例如,出現在行中大於預定臨限值次數的值可為特定行的最常見值。舉例而言,衣服物件的資料庫可包含記錄資料庫中每一物件的衣服類型的值的行。若資料庫具有10個鞋子條目、50個外套的條目以及40個襯衫條目,則查詢測試系統114可計算鞋子的值為0.1(例如10/100)、外套的值為0.5以及襯衫的值為0.4。查詢測試系統114接著可基於對應於值的各別經計算分數來對所述值排序。因此,繼續衣服實例,查詢測試系統114將判定以下的次序:外套、襯衫、鞋子。查詢測試系統114接著可分析列表且迭代地選擇具有最高對應分數的未選定值,直至對應於選定值的分數的總和超出分數臨限值。臨限值可由開發者在提交查詢時設定,例如或可在查詢測試系統114的程式碼中預設。在衣服實例中,若臨限值設定為0.4,則查詢測試系統114將以外套開始,將外套(0.5)
的分數與臨限值(0.4)進行比較,且判定外套僅為步驟216的「最常見值」。替代地,若臨限值設定為0.7(亦即指示選定查詢必須構成所有條目的70%),則查詢測試系統114將以外套(0.5)開始,且判定外套構成小於條目的臨限值0.7。查詢測試系統114將行進至下一個最高條目,亦即襯衫,且判定外套及襯衫一起構成所有條目的0.9(0.5+0.4)。由於0.9大於0.7,故查詢測試系統將「外套」及「襯衫」識別為資料庫中最常見值。
在步驟218處,為每一行名稱查詢測試系統114創建包括最常見值中的至少一者的列表。列表可包含在步驟216處識別的值的所有或子集。舉例而言,可基於隨機選擇的值或n個最常見值來識別子集,n為整數。繼續外套、襯衫以及鞋子實例,在步驟218中,查詢系統114可形成包含外套及襯衫的列表。作為額外實例,如前所陳述,圖3的表308繪示「名稱」行中的每一條目的計數。在此實例中,查詢測試系統114設定為選擇前兩個最常見值,且創建「『約翰』、『克里斯』」的列表(在此n=2)。類似地,舉例如,「購買」行的列表將包含「『墨西哥卷餅』、『三明治』」。
列表亦可包括由方法識別的額外值。舉例而言,查詢測試系統114可存取包括主資料庫的歷史查詢的查詢儲存區110,且判定每一行名稱的最常見查詢值。如先前所論述,查詢儲存區110可在經由伺服器102存取網站、應用程式或類似者時記錄由主資料庫104的用戶端裝置122進行的歷史查詢。查詢儲存區110可提供具有繪示行名稱中的每一值出現在產品查詢中的次數的計數的查詢測試系統114。每一值出現在生產查詢中的行名稱中的次數可稱為查詢值。查詢測試系統114亦可以與步驟216中所揭露的判
定最常見值的方式類似的方式分析此等值,以判定哪個為最常查詢值。
查詢測試系統114可在步驟218處將最常見查詢值及最常見值組合至列表中,以稍後用於在後續步驟中創建查詢變化。在一些實施例中,列表可由最常見查詢值及最常見值的交集構成。舉例而言,若最常見值為鞋子、襯衫以及外套,且最常見查詢值為褲子、鞋子以及帽子,則查詢測試系統114可在步驟218處創建包含鞋子的列表,所述列表為所述值的兩個集合之間的共用值。
在一些情境中,開發者可使用具有數學比較的述詞來創建查詢,諸如發現小於50美元的所有物件。查詢測試系統114可識別此等類型的查詢的最常見數值。替代地或另外,查詢測試系統114可識別行名稱的最包含性範圍。舉例而言,查詢可搜尋小於50美元的物件。查詢測試系統114可判定名稱為「物件價格」的行包含多至250美元的物件。當在後續步驟中創建測試述詞及查詢時,查詢測試系統114接著可使用250美元。
返回至圖2,在步驟220處,查詢測試系統114創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞。可針對列表中的每一值及查詢中的每一行名稱重複步驟220。若在步驟206處接收的查詢含有具有行名稱價格、類別以及產品名稱且每一行名稱具有四個最常見值的三個述詞,則查詢測試系統114可創建總共十二個測試述詞。此步驟示出於圖3中。在查詢測試系統114自表308及表310選擇前兩個最常見值之後,查詢測試系統114為每一行名稱/共用值對創建測試述詞。因此,測試述詞312包含「姓名=『約翰』」及「姓名=『克里斯』」但無「姓名=『艾倫』」,
此是由於「艾倫」不包含於前兩個最常見條目中。類似地,測試述詞314包含「購買=『墨西哥卷餅』」及「購買=『三明治』」。
返回至圖2,接著在步驟222處,查詢測試系統114創建包括來自步驟220的一或多個測試述詞的測試查詢。測試查詢可基於所接收的查詢,且查詢測試系統114可用測試查詢的述詞替代所接收的查詢的述詞。圖3示出可在步驟222處創建的多個測試查詢316。測試查詢316基於測試述詞312及測試述詞314的組合,以及所接收的查詢302的結構。因此,雖然所接收的查詢302的結構可存留於測試查詢316(諸如選擇及資料庫識別)中,但測試查詢316可用含有真實及最常見值的述詞替代具有所接收的查詢302的假值的述詞。此外,測試述詞312中的每一者可與測試述詞314中的每一者組合,從而產生四個測試查詢。
查詢測試系統114亦可修改所接收的查詢以移除或添加對處理時間或資源使用量具有標準或可忽略的影響且不受改變的述詞影響的子句,諸如保存查詢結果的指令。此可提供測試查詢與共用基線的更快比較。
在步驟224處,查詢測試系統114在輔助資料庫106上運行測試查詢中的每一者,且在步驟226處,判定查詢的資源利用率。可在輔助資料庫106上運行測試查詢,以在不妨礙主資料庫104將資料提供至用戶端的情況下分析真實世界資料。查詢的資源利用率可為表示測試查詢的累積、最大值或平均資源消耗的度量。在一些實施例中,資源利用可包括經分析的列、處理時間以及記憶體使用量中的至少一者。若部署查詢以供用戶端使用,則經判定資源利用率可有助於開發者識別具有消耗主資料庫104的過
多資源的可能性的風險查詢。換言之,由於測試查詢使用資料庫中的最常見值擷取條目的資料,故測試查詢很可能表示所接收的查詢的最多資源密集型應用程式。開發者可避免部署具有資源密集型應用程式的顯著似然性的查詢。另外,若測試查詢含有自查詢儲存區110導出的值,則如由真實世界用戶端交互告知,測試查詢將表示最可能使用情況。以此方式,查詢測試系統114可藉由查詢最常見值來估計最壞情況情境資源利用率,且藉由查詢最常見查詢值來估計最可能資源使用。在一些實施例中,查詢測試系統114亦可藉由查詢兩個值類型的交集來估計最可能、最壞情況情境資源利用率。此可允許更有針對性的且因此更快的查詢效率測試,所述查詢效率測試可適用於具有大量最常見值及述詞的情境。查詢測試系統114亦可基於含有最常見值的查詢的歷史頻率來計算最壞情況情境的似然性或資源使用量的期望值。
在步驟228處,查詢測試系統114判定資源利用率是否超出臨限值。臨限值可反映公司策略,諸如查詢可能不要求大於1毫秒來完成的策略。臨限值亦可變化且基於似然性,使得在99.999%的情境下,查詢必須在小於5毫秒內完成,或在99%的情境下,查詢必須在小於2毫秒內完成。
若資源利用率小於臨限值,則步驟228為否。由於對用戶端的影響的風險足夠低,故查詢測試系統114接著可行進至步驟230處在主資料庫上運行查詢。此可提供相對於真實世界資料的查詢的額外測試。藉由量測主資料庫104上的查詢的資源消耗,查詢測試系統可判定主資料庫104與輔助資料庫106之間的差異(諸如來自許多並行查詢的安全設定或衝突)引起對用戶端體驗的
不可接受的影響。以此方式,開發者可逐漸測試查詢資源消耗,首先測試基本功能性,隨後測試最壞情況情境,且最後測試真實世界效能,利用保障措施來識別高風險查詢且防止其進入可發生危害的環境。此外,在一些實施例中,查詢系統114可基於與查詢相關聯的資源利用率較低(例如小於臨限值資源利用率)的判定允許所接收的查詢加載至伺服器102上且進入生產。
替代地,若資源使用量大於臨限值,則步驟228為是,且查詢測試系統114行進至步驟232以向使用者介面提供效率改善建議以供顯示。查詢測試系統114可基於由開發者提供的試探法計算效率改善建議。舉例而言,開發者可向查詢測試系統114提供用於改良查詢效能的建議,建議對應於資源利用率範圍,使得針對極低效查詢提供難以實施的改變,且針對具有較小低效的查詢提供較小改變。試探法可包含由開發者觀測到的提高查詢效率的方法,諸如避免巢套查詢。作為額外實例,查詢測試系統114可分析資料庫以判定資料庫的區段是否已分類,使得在資料庫的某些區段中發現查詢結果。舉例而言,資料庫可由物件名稱而字母化。查詢測試系統114接著可判定以字母「s」開始的物件在資料庫的列1787處開始,且提供包括將索引添加至查詢使得查詢開始在列1787處搜尋的效率改善建議。
在一些實施例中,查詢測試系統114可自動地創建包括建議的查詢,使得開發者可將原始效能與經修改查詢效能進行比較。在此情況下,資源利用率可為第一資源利用率,且評估查詢可包含額外步驟。查詢測試系統114可基於效率改善建議來修改查詢,例如藉由添加索引。查詢測試系統114接著可運行經修改查
詢。在一些實施例中,此可包含基於經修改查詢重複步驟222至步驟226。查詢測試系統114可判定經修改查詢的第二資源利用率,且向使用者介面提供第一資源利用率與第二資源利用率之間的資源利用率差以供顯示。查詢測試系統114亦可在主資料庫104上運行經修改查詢。
過程200可藉由繪示與所揭露的實施例一致的查詢變化的創建的圖3中所展示的圖式來進一步理解。圖3提供過程200的步驟206與步驟222之間的資料進程中的一些的實例。
作為本揭露的例示性實施例,一種用於資料庫查詢效率改善的電腦實行方法包含:將主資料庫鏡像至輔助資料庫,輔助資料庫包括綱目;創建包括綱目的測試資料庫;接收查詢;以及在測試資料庫上運行查詢。若在測試資料庫上成功地完成查詢,則方法進一步藉由以下步驟來評估查詢:識別查詢中的述詞,每一述詞包括唯一行名稱;藉由查詢輔助資料庫來判定每一行名稱的最常見值;藉由查詢查詢儲存區來判定每一行名稱的最常見查詢值;以及為每一行名稱創建包括最常見值中的至少一者及最常見查詢值中的至少一者的列表。方法進一步藉由以下步驟來分析查詢:創建包括行名稱中的一者及對應於行名稱的列表的條目的測試述詞;創建包括測試述詞的組合的測試查詢;藉由在輔助資料庫上運行測試查詢中的每一者來判定查詢處理時間;以及當查詢處理時間的最大值小於臨限值時,在主資料庫上運行查詢。
雖然已參考本揭露的特定實施例繪示及描述本揭露,但應理解,可在不修改的情況下在其他環境中實踐本揭露。已出於說明的目的呈現前述描述。前述描述並不詳盡且不限於所揭露的精
確形式或實施例。修改及調適對所屬技術領域中具有通常知識者而言將自本說明書的考量及所揭露實施例的實踐顯而易見。另外,儘管將所揭露的實施例的態樣描述為儲存於記憶體中,但所屬技術領域中具有通常知識者應瞭解,此等態樣亦可儲存於其他類型的電腦可讀媒體上,諸如輔助儲存裝置,例如硬碟或CD ROM,或其他形式的RAM或ROM、USB媒體、DVD、藍光,或其他光學驅動機媒體。
基於寫入描述及所揭露方法的電腦程式在有經驗的開發者的技能內。各種程式或程式模組可使用所屬技術領域中具有通常知識者已知的技術中的任一者來創建或可結合現有軟體來設計。舉例而言,程式區段或程式模組可以或藉助於.Net框架(.Net Framework)、.Net緊密型框架(.Net Compact Framework)(及相關語言,諸如視覺培基(Visual Basic)、C等)、爪哇(Java)、C++、目標-C(Objective-C)、HTML、HTML/AJAX組合、XML或包含爪哇小程式的HTML來設計。
此外,儘管本文中已描述說明性實施例,但所屬技術領域中具有通常知識者將基於本揭露瞭解具有等效元件、修改、省略、組合(例如,各種實施例中的態樣的)組合、調適及/或更改的任何及所有實施例的範圍。申請專利範圍中的限制應基於申請專利範圍中所採用的語言廣泛地解釋,且不限於本說明書中所描述或在本申請案的審查期間的實例。實例應視為非排他性的。此外,所揭露方法的步驟可包含藉由對步驟重新排序及/或插入或刪除步驟的任何方式修改。因此,希望僅將本說明書及實例視為說明性的,其中真實範圍及精神由以下申請專利範圍及其等效物的完整範圍
來指示。
100:系統
102:伺服器
104:主資料庫
106:輔助資料庫
108:測試資料庫
110:查詢儲存區
112:電腦網路
114:查詢測試系統
116:處理器
118:輸入/輸出裝置
120:記憶體
122:用戶端裝置
Claims (20)
- 一種用於資料庫查詢效率改善的電腦實行系統,所述系統包括:記憶體,儲存指令;以及至少一個處理器,經組態以執行所述指令以進行包括以下的操作:將主資料庫鏡像至輔助資料庫,所述輔助資料庫包括綱目;創建包括所述綱目的測試資料庫;接收查詢;在所述測試資料庫上運行所述查詢;以及回應於在所述測試資料庫上成功地完成所述查詢,藉由以下步驟來評估所述查詢:識別所述查詢中的述詞,每一述詞包括行名稱;藉由查詢所述輔助資料庫來判定每一行名稱的最常見值;為每一行名稱創建包括所述最常見值中的至少一者的列表;創建包括所述行名稱中的一者及對應於所述行名稱的所述列表的條目的測試述詞;創建包括一或多個測試述詞的測試查詢;藉由在所述輔助資料庫上運行所述測試查詢中的每一者來判定所述查詢的資源利用率;以及當所述資源利用率超出臨限值時,向使用者介面提供效率改善建議以供顯示。
- 如請求項1所述的系統,其中所述列表更包括藉由查詢包括所述主資料庫的歷史查詢的查詢儲存區所判定的每一行 名稱的最常見查詢值。
- 如請求項2所述的系統,其中所述列表由所述最常見查詢值及所述最常見值的交集組成。
- 如請求項2所述的系統,其中所述列表包括n個最常見值。
- 如請求項1所述的系統,其中所述效率改善建議包括將索引添加至所述查詢。
- 如請求項1所述的系統,其中所述資源利用率為第一資源利用率,且評估所述查詢更包括:基於所述效率改善建議來修改所述查詢;判定經修改的所述查詢的第二資源利用率;以及向所述使用者介面提供所述第一資源利用率與所述第二資源利用率之間的資源利用率差以供顯示。
- 如請求項1所述的系統,其中藉由查詢所述輔助資料庫來判定每一行名稱的最常見值包括:判定對應於所述行名稱的行中的每一值的計數;針對每一值,相對於條目的總數目來計算對應於經判定的所述計數的分數;基於對應於所述值的各別所計算分數對所述值進行排序;以及迭代地選擇未選定值,所述未選定值中的每一者具有最高對應分數,直至對應於選定值的分數的總和超出分數臨限值。
- 如請求項1所述的系統,其中所述操作更包括當所述資源利用率小於所述臨限值時,在所述主資料庫上運行所述查 詢。
- 如請求項1所述的系統,其中所述資源利用率包括所分析的列、處理時間以及記憶體使用量中的至少一者。
- 如請求項1所述的系統,其中所述操作更包括藉由行名稱對述詞進行去重。
- 一種用於資料庫查詢效率改善的電腦實行方法,包括:將主資料庫鏡像至輔助資料庫,所述輔助資料庫包括綱目;創建包括所述綱目的測試資料庫;接收查詢;在所述測試資料庫上運行所述查詢;以及回應於在所述測試資料庫上成功地完成所述查詢,藉由以下步驟來評估所述查詢:識別所述查詢中的述詞,每一述詞包括行名稱;藉由查詢所述輔助資料庫來判定每一行名稱的最常見值;為每一行名稱創建包括所述最常見值中的至少一者的列表;創建包括所述行名稱中的一者及對應於所述行名稱的所述列表的條目的測試述詞;創建包括一或多個測試述詞的測試查詢;藉由在所述輔助資料庫上運行所述測試查詢中的每一者來判定所述查詢的資源利用率;以及當所述資源利用率超出臨限值時,向使用者介面提供效率改善建議以供顯示。
- 如請求項11所述的方法,其中所述列表更包括藉由 查詢包括所述主資料庫的歷史查詢的查詢儲存區所判定的每一行名稱的最常見查詢值。
- 如請求項12所述的方法,其中所述列表由所述最常見查詢值及所述最常見值的交集組成。
- 如請求項12所述的方法,其中所述列表包括n個最常見值。
- 如請求項11所述的方法,其中所述效率改善建議包括將索引添加至所述查詢。
- 如請求項11所述的方法,其中所述資源利用率為第一資源利用率,且評估所述查詢更包括:基於所述效率改善建議來修改所述查詢;判定經修改的所述查詢的第二資源利用率;以及向所述使用者介面提供所述第一資源利用率與所述第二資源利用率之間的資源利用率差以供顯示。
- 如請求項11所述的方法,其中藉由查詢所述輔助資料庫來判定每一行名稱的最常見值包括:判定對應於所述行名稱的行中的每一值的計數;針對每一值,相對於條目的總數目來計算對應於經判定的所述計數的分數;基於對應於所述值的各別所計算分數對所述值進行排序;以及迭代地選擇未選定值,所述未選定值中的每一者具有最高對應分數,直至對應於選定值的分數的總和超出分數臨限值。
- 如請求項11所述的方法,其中所述方法更包括當所 述資源利用率小於所述臨限值時,在所述主資料庫上運行所述查詢。
- 如請求項11所述的方法,其中所述資源利用率包括所分析的列、處理時間以及記憶體使用量中的至少一者。
- 一種用於資料庫查詢效率改善的電腦實行方法,包括:將主資料庫鏡像至輔助資料庫,所述輔助資料庫包括綱目;創建包括所述綱目的測試資料庫;接收查詢;在所述測試資料庫上運行所述查詢;以及若在所述測試資料庫上成功地完成所述查詢,則藉由以下步驟來評估所述查詢:識別所述查詢中的述詞,每一述詞包括唯一行名稱;藉由查詢所述輔助資料庫來判定每一行名稱的最常見值;藉由查詢查詢儲存區來判定每一行名稱的最常見查詢值;為每一行名稱創建包括所述最常見值中的至少一者及所述最常見查詢值中的至少一者的列表;創建包括所述行名稱中的一者及對應於所述行名稱的所述列表的條目的測試述詞;創建包括測試述詞的組合的測試查詢;藉由在所述輔助資料庫上運行所述測試查詢中的每一者來判定查詢處理時間;以及當所述查詢處理時間的最大值小於臨限值時,在所述主資料庫上運行所述查詢。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/950,342 US10963438B1 (en) | 2020-11-17 | 2020-11-17 | Systems and methods for database query efficiency improvement |
| US16/950,342 | 2020-11-17 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202221526A TW202221526A (zh) | 2022-06-01 |
| TWI773297B true TWI773297B (zh) | 2022-08-01 |
Family
ID=75164273
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110116021A TWI773297B (zh) | 2020-11-17 | 2021-05-04 | 用於資料庫查詢效率改善的電腦實行系統以及方法 |
| TW111124787A TWI898148B (zh) | 2020-11-17 | 2021-05-04 | 用於資料庫查詢效率改善的電腦實行系統以及方法 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111124787A TWI898148B (zh) | 2020-11-17 | 2021-05-04 | 用於資料庫查詢效率改善的電腦實行系統以及方法 |
Country Status (3)
| Country | Link |
|---|---|
| US (2) | US10963438B1 (zh) |
| TW (2) | TWI773297B (zh) |
| WO (1) | WO2022106878A1 (zh) |
Families Citing this family (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11860871B2 (en) * | 2021-03-11 | 2024-01-02 | Rockset, Inc. | Continuous delivery of database queries for applications based on named and versioned parameterized database queries |
| CN117529714A (zh) * | 2021-06-19 | 2024-02-06 | 华为技术有限公司 | 用于为迁移rdbms推荐存储格式的方法和系统 |
| US20230034257A1 (en) * | 2021-07-28 | 2023-02-02 | Micro Focus Llc | Indexes of vertical table columns having a subset of rows correlating to a partition range |
| US11665106B2 (en) * | 2021-09-07 | 2023-05-30 | Hewlett Packard Enterprise Development Lp | Network-aware resource allocation |
| US12423306B1 (en) * | 2021-12-10 | 2025-09-23 | Amazon Technologies, Inc | Dynamically partition data |
| KR102815485B1 (ko) * | 2022-06-30 | 2025-06-02 | 쿠팡 주식회사 | 데이터 제공 방법 및 그 장치 |
| US12086146B2 (en) * | 2022-11-30 | 2024-09-10 | Intuit Inc. | Tables time zone adjuster |
| KR102800580B1 (ko) * | 2023-12-26 | 2025-04-28 | 쿠팡 주식회사 | 대상 프로그램을 테스트하는 방법, 장치 및 기록매체 |
| CN119558397B (zh) * | 2025-01-24 | 2025-09-16 | 众合云科信息技术集团有限公司 | 一种基于大模型的知识库管理系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140282697A1 (en) * | 2012-12-28 | 2014-09-18 | Turner Broadcasting System, Inc. | Method and system for providing synchronized advertisements and services |
| US20170102678A1 (en) * | 2013-03-04 | 2017-04-13 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics |
| US20180157978A1 (en) * | 2016-12-02 | 2018-06-07 | International Business Machines Corporation | Predicting Performance of Database Queries |
| TW202025770A (zh) * | 2018-07-02 | 2020-07-01 | 大陸商北京字節跳動網絡技術有限公司 | 查找表的使用 |
Family Cites Families (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4506326A (en) * | 1983-02-28 | 1985-03-19 | International Business Machines Corporation | Apparatus and method for synthesizing a query for accessing a relational data base |
| US6826562B1 (en) * | 1999-11-29 | 2004-11-30 | International Business Machines Corporation | Method of simplifying and optimizing scalar subqueries and derived tables that return exactly or at most one tuple |
| US6529896B1 (en) * | 2000-02-17 | 2003-03-04 | International Business Machines Corporation | Method of optimizing a query having an existi subquery and a not-exists subquery |
| WO2002031625A2 (en) * | 2000-10-13 | 2002-04-18 | Cytaq, Inc. | A system and method of translating a universal query language to sql |
| EP1211610A1 (en) * | 2000-11-29 | 2002-06-05 | Lafayette Software Inc. | Methods of organising data and processing queries in a database system |
| EP1217541A1 (en) * | 2000-11-29 | 2002-06-26 | Lafayette Software Inc. | Method of processing queries in a database system, and database system and software product for implementing such method |
| US7213012B2 (en) * | 2003-05-09 | 2007-05-01 | Oracle International Corporation | Optimizer dynamic sampling |
| US7376638B2 (en) | 2003-12-24 | 2008-05-20 | International Business Machines Corporation | System and method for addressing inefficient query processing |
| US7707219B1 (en) * | 2005-05-31 | 2010-04-27 | Unisys Corporation | System and method for transforming a database state |
| US8504999B2 (en) | 2006-10-05 | 2013-08-06 | Palo Alto Research Center Incorporated | System and method for transferring code to a data producer |
| US7689549B2 (en) * | 2006-10-05 | 2010-03-30 | Oracle International Corporation | Flashback support for domain index queries |
| US7634505B2 (en) * | 2006-12-19 | 2009-12-15 | Salesforce.Com, Inc. | Methods and procedures to provide complete test copy environment of hosted applications |
| US8135738B2 (en) * | 2008-08-20 | 2012-03-13 | International Business Machines Corporation | Efficient predicate evaluation via in-list |
| US8037108B1 (en) * | 2009-07-22 | 2011-10-11 | Adobe Systems Incorporated | Conversion of relational databases into triplestores |
| US8458191B2 (en) * | 2010-03-15 | 2013-06-04 | International Business Machines Corporation | Method and system to store RDF data in a relational store |
| CN103177046B (zh) | 2011-12-26 | 2016-06-29 | 中国移动通信集团公司 | 一种基于行存储数据库的数据处理方法和设备 |
| US20140230070A1 (en) * | 2013-02-14 | 2014-08-14 | Microsoft Corporation | Auditing of sql queries using select triggers |
| US9336533B2 (en) | 2013-03-13 | 2016-05-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a similar command with a predictive query interface |
| JP6374680B2 (ja) * | 2013-12-13 | 2018-08-15 | 東京応化工業株式会社 | 貼付方法 |
| CN104090901B (zh) | 2013-12-31 | 2017-06-13 | 腾讯数码(天津)有限公司 | 一种对数据进行处理的方法、装置及服务器 |
| US10325032B2 (en) | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
| KR101628097B1 (ko) | 2014-12-31 | 2016-06-09 | 주식회사 시큐아이 | 데이터베이스 관리 시스템 및 데이터베이스 관리 방법 |
| CN105787387B (zh) | 2016-03-07 | 2018-09-14 | 南京邮电大学 | 一种数据库加密方法及该加密数据库查询方法 |
| KR101747262B1 (ko) * | 2016-04-25 | 2017-06-28 | 주식회사 티맥스데이터 | 동적인 알고리즘 변경을 통하여 쿼리 처리 시간을 축소시키기 위한 방법, 장치 및 컴퓨터-판독가능 매체 |
| KR101951999B1 (ko) * | 2016-08-31 | 2019-05-10 | 재단법인대구경북과학기술원 | 낮은 데이터 중복으로 빠른 쿼리 처리를 지원하는 관계형 데이터베이스 저장 시스템, 저장 방법 및 관계형 데이터베이스 저장 방법에 기초한 쿼리를 처리하는 방법 |
| US10241896B2 (en) | 2016-11-08 | 2019-03-26 | Salesforce, Inc. | Formation and manipulation of test data in a database system |
| KR101758219B1 (ko) | 2017-01-24 | 2017-07-14 | 김훈 | 수치정보 검색이 가능한 수치정보 관리장치 |
| WO2018170276A2 (en) | 2017-03-15 | 2018-09-20 | Fauna, Inc. | Methods and systems for a database |
| US10997180B2 (en) * | 2018-01-31 | 2021-05-04 | Splunk Inc. | Dynamic query processor for streaming and batch queries |
| US11321314B2 (en) * | 2020-05-22 | 2022-05-03 | International Business Machines Corporation | Query content-based data generation |
-
2020
- 2020-11-17 US US16/950,342 patent/US10963438B1/en active Active
- 2020-11-30 WO PCT/IB2020/061282 patent/WO2022106878A1/en not_active Ceased
-
2021
- 2021-02-22 US US17/181,272 patent/US12013826B2/en active Active
- 2021-05-04 TW TW110116021A patent/TWI773297B/zh active
- 2021-05-04 TW TW111124787A patent/TWI898148B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140282697A1 (en) * | 2012-12-28 | 2014-09-18 | Turner Broadcasting System, Inc. | Method and system for providing synchronized advertisements and services |
| US20170102678A1 (en) * | 2013-03-04 | 2017-04-13 | Fisher-Rosemount Systems, Inc. | Distributed industrial performance monitoring and analytics |
| US20180157978A1 (en) * | 2016-12-02 | 2018-06-07 | International Business Machines Corporation | Predicting Performance of Database Queries |
| TW202025770A (zh) * | 2018-07-02 | 2020-07-01 | 大陸商北京字節跳動網絡技術有限公司 | 查找表的使用 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW202242674A (zh) | 2022-11-01 |
| WO2022106878A1 (en) | 2022-05-27 |
| TW202221526A (zh) | 2022-06-01 |
| US10963438B1 (en) | 2021-03-30 |
| US20220156237A1 (en) | 2022-05-19 |
| TWI898148B (zh) | 2025-09-21 |
| US12013826B2 (en) | 2024-06-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI773297B (zh) | 用於資料庫查詢效率改善的電腦實行系統以及方法 | |
| US11921715B2 (en) | Search integration | |
| US9785989B2 (en) | Determining a characteristic group | |
| US10872090B2 (en) | Generating test data based on data value rules of linked data nodes | |
| US20210200748A1 (en) | Quality control test transactions for shared databases of a collaboration tool | |
| US20150058334A1 (en) | Presentation of items based on a theme | |
| US20130060755A1 (en) | Applying screening information to search results | |
| WO2018028099A1 (zh) | 搜索质量评估方法及装置 | |
| KR102411806B1 (ko) | 데이터베이스 쿼리 효율 향상을 위한 시스템 및 방법 | |
| US20170039128A1 (en) | Testing software enhancements in database applications | |
| US10838952B2 (en) | Resource offloading process using machine learning for database | |
| Hammond et al. | Cloud based predictive analytics: text classification, recommender systems and decision support | |
| CN112651781A (zh) | 竞品分析方法和装置 | |
| US10339035B2 (en) | Test DB data generation apparatus | |
| US9760611B2 (en) | Identifying element relationships in a document | |
| CN114969457A (zh) | 产品检索方法、装置、电子设备及可读介质 | |
| JP7224392B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
| CN119961033B (zh) | 故障诊断方法和装置 | |
| CN115147191A (zh) | 商品列表内容丰富度评估方法、装置、存储介质及设备 | |
| CN114490600A (zh) | 数据质量检测方法及装置 | |
| WO2012104991A1 (ja) | プログラムテスト方法、プログラムテストシステム及びプログラム | |
| WO2025239972A1 (en) | Automated workflow creation using large language models | |
| CN110297578B (zh) | 批量处理海量数据中部分数据的方法、装置及电子设备 | |
| CN118740662A (zh) | 异常请求检测方法、装置、计算机设备和存储介质 | |
| JP2018028776A (ja) | ソフトウェア資産管理装置、ソフトウェア資産管理方法、および、ソフトウェア資産管理プログラム |