本發(fā)明涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種優(yōu)化查詢執(zhí)行計(jì)劃的方法和計(jì)劃優(yōu)化裝置。
背景技術(shù):
:通常,結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)是一種數(shù)據(jù)庫查詢和編程語言。用戶輸入的SQL語句通過執(zhí)行器在關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem,RDBMS)上執(zhí)行。該執(zhí)行器通常能夠執(zhí)行大范圍的查詢,這些查詢包括但不限于聯(lián)合操作、分組操作、觸發(fā)操作、查詢條件中的函數(shù)執(zhí)行等。該執(zhí)行器包括執(zhí)行SQL語句使用的多個(gè)查詢執(zhí)行計(jì)劃。通常,多個(gè)查詢執(zhí)行計(jì)劃中的每個(gè)包括計(jì)劃時(shí)間和執(zhí)行時(shí)間。計(jì)劃時(shí)間是指計(jì)劃或創(chuàng)建用于執(zhí)行SQL語句的查詢執(zhí)行計(jì)劃所需的時(shí)間。執(zhí)行時(shí)間為執(zhí)行針對SQL語句的查詢執(zhí)行計(jì)劃所需的時(shí)間?;谟?jì)劃時(shí)間和/或執(zhí)行時(shí)間,執(zhí)行器在用于執(zhí)行SQL語句的多個(gè)查詢執(zhí)行計(jì)劃中選擇最佳計(jì)劃。在傳統(tǒng)方法中,所選查詢執(zhí)行計(jì)劃的計(jì)劃時(shí)間和/或執(zhí)行時(shí)間有時(shí)是巨大的。特別地,創(chuàng)建查詢執(zhí)行計(jì)劃用以執(zhí)行具有更多數(shù)量的聯(lián)合操作的SQL語句所需的計(jì)劃時(shí)間要求更多時(shí)間且涉及到復(fù)雜性。在這種情況下,執(zhí)行過程必須等到查詢執(zhí)行計(jì)劃完全計(jì)劃好或創(chuàng)建好。換言之,直到查詢執(zhí)行計(jì)劃創(chuàng)建好才開始執(zhí)行。因此,由于等待查詢執(zhí)行計(jì)劃的創(chuàng)建和執(zhí)行而延長了SQL語句的執(zhí)行。有時(shí),計(jì)劃時(shí)間能比執(zhí)行查詢的執(zhí)行時(shí)間長。在另一傳統(tǒng)方法中,在執(zhí)行查詢執(zhí)行計(jì)劃的同時(shí)改善查詢執(zhí)行計(jì)劃存在挑戰(zhàn)。因?yàn)楦纳撇樵儓?zhí)行計(jì)劃需要重新創(chuàng)建查詢執(zhí)行計(jì)劃,這導(dǎo)致時(shí)間和資源浪費(fèi)。另外,查詢執(zhí)行計(jì)劃的創(chuàng)建始終涉及到計(jì)劃時(shí)間,但不一定涉及到執(zhí)行時(shí)間。例如,在執(zhí)行時(shí)間達(dá)到‘X’前創(chuàng)建好或計(jì)劃好查詢執(zhí)行計(jì)劃存在挑戰(zhàn)。因此,傳統(tǒng)方法在計(jì)劃查詢執(zhí)行計(jì)劃時(shí)缺乏靈活性。技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的是管理計(jì)劃時(shí)間和/或執(zhí)行時(shí)間以管理查詢執(zhí)行。本發(fā)明的另一目的是優(yōu)化所述計(jì)劃時(shí)間和/或所述執(zhí)行時(shí)間以及優(yōu)化查詢執(zhí)行計(jì)劃。執(zhí)行所述優(yōu)化,直到根據(jù)優(yōu)化的計(jì)劃時(shí)間和/或執(zhí)行時(shí)間生成優(yōu)化的查詢執(zhí)行計(jì)劃。本發(fā)明涉及一種優(yōu)化查詢執(zhí)行計(jì)劃的方法。所述方法包括:從用戶設(shè)備接收一個(gè)或多個(gè)優(yōu)化參數(shù)用于優(yōu)化查詢執(zhí)行計(jì)劃,其中,所述查詢執(zhí)行計(jì)劃是用于執(zhí)行一個(gè)或多個(gè)查詢的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃;以及通過迭代所述查詢執(zhí)行計(jì)劃的優(yōu)化直到所述優(yōu)化滿足所述一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃。本發(fā)明的各實(shí)施例還公開了所述一個(gè)或多個(gè)優(yōu)化參數(shù)包括查詢語句、計(jì)劃時(shí)間和計(jì)劃執(zhí)行時(shí)間中的至少一個(gè)。所述方法包括:當(dāng)使用所述查詢執(zhí)行計(jì)劃執(zhí)行所述一個(gè)或多個(gè)查詢的時(shí)長大于執(zhí)行所述一個(gè)或多個(gè)查詢需要的預(yù)定義時(shí)間段時(shí),接收所述一個(gè)或多個(gè)優(yōu)化參數(shù)。在一實(shí)施例中,所述查詢執(zhí)行計(jì)劃存儲在關(guān)聯(lián)到所述計(jì)劃優(yōu)化裝置的存儲器中。所述方法還包括將所述優(yōu)化的查詢執(zhí)行計(jì)劃作為最新計(jì)劃存儲在所述計(jì)劃優(yōu)化裝置的所述存儲器中,用于執(zhí)行所述一個(gè)或多個(gè)查詢。在一實(shí)施例中,所述一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃在從所述用戶設(shè)備接收計(jì)劃創(chuàng)建請求后生成。所述計(jì)劃創(chuàng)建請求包括查詢語句、查詢和所述一個(gè)或多個(gè)優(yōu)化參數(shù)中的至少一個(gè)。一種計(jì)劃優(yōu)化裝置在本發(fā)明中公開,用于優(yōu)化查詢執(zhí)行計(jì)劃。所述計(jì)劃優(yōu)化裝置包括接收模塊、計(jì)劃優(yōu)化模塊、存儲器、計(jì)劃生成模塊和更新模塊。所述接收模塊用于從用戶設(shè)備接收一個(gè)或多個(gè)優(yōu)化參數(shù)用于優(yōu)化查詢執(zhí)行計(jì)劃。所述一個(gè)或多個(gè)優(yōu)化參數(shù)包括查詢語句、計(jì)劃時(shí)間和計(jì)劃執(zhí)行時(shí)間。當(dāng)使用所述查詢執(zhí)行計(jì)劃執(zhí)行所述一個(gè)或多個(gè)查詢的時(shí)長大于執(zhí)行所述一個(gè)或多個(gè)查詢需要的預(yù)定義時(shí)間段時(shí),所述接收模塊接收所述一個(gè)或多個(gè)優(yōu)化參數(shù)。所述查詢執(zhí)行計(jì)劃是用于執(zhí)行一個(gè)或多個(gè)查詢的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃。所述一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃由所述計(jì)劃生成模塊在從所述用戶設(shè)備接收計(jì)劃創(chuàng)建請求后生成。所述計(jì)劃創(chuàng)建請求包括查詢語句、查詢和所述一個(gè)或多個(gè)優(yōu)化參數(shù)。所述存儲器存儲所述接收的計(jì)劃創(chuàng)建請求。所述計(jì)劃優(yōu)化模塊用于,通過迭代所述查詢執(zhí)行計(jì)劃的優(yōu)化直到所述優(yōu)化滿足所述一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃。所述更新模塊用于將所述優(yōu)化的查詢執(zhí)行計(jì)劃作為最新計(jì)劃存儲在所述計(jì)劃優(yōu)化裝置的所述存儲器中,以用于執(zhí)行所述一個(gè)或多個(gè)查詢。本發(fā)明涉及一種非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì),所述介質(zhì)包括存儲在其上的操作,當(dāng)所述操作由至少一個(gè)處理單元處理時(shí),使得計(jì)劃優(yōu)化裝置通過執(zhí)行以下行為執(zhí)行一個(gè)或多個(gè)動作:從用戶設(shè)備接收一個(gè)或多個(gè)優(yōu)化參數(shù)用于優(yōu)化查詢執(zhí)行計(jì)劃,其中,所述查詢執(zhí)行計(jì)劃是用于執(zhí)行一個(gè)或多個(gè)查詢的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃;以及通過迭代所述查詢執(zhí)行計(jì)劃的優(yōu)化直到所述優(yōu)化滿足所述一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃。本發(fā)明公開了一種在計(jì)劃優(yōu)化裝置上的執(zhí)行一個(gè)或多個(gè)動作的計(jì)算機(jī)程序。所述計(jì)算機(jī)程序包括用于從用戶設(shè)備接收一個(gè)或多個(gè)優(yōu)化參數(shù)用于優(yōu)化查詢執(zhí)行計(jì)劃的代碼段。所述查詢執(zhí)行計(jì)劃是用于執(zhí)行一個(gè)或多個(gè)查詢的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃。所述計(jì)算機(jī)程序包括用于通過迭代所述查詢執(zhí)行計(jì)劃的優(yōu)化直到所述優(yōu)化滿足所述一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃的代碼段。在一實(shí)施例中,本發(fā)明的優(yōu)點(diǎn)是優(yōu)化所述查詢執(zhí)行計(jì)劃,包括優(yōu)化計(jì)劃時(shí)間和/或執(zhí)行時(shí)間。本發(fā)明提供所述查詢執(zhí)行計(jì)劃的優(yōu)化直到滿足所述計(jì)劃時(shí)間和/或所述執(zhí)行時(shí)間。特別地,在所述計(jì)劃時(shí)間和/或所述執(zhí)行時(shí)間期滿之前,當(dāng)前用于執(zhí)行所述查詢的所述查詢執(zhí)行計(jì)劃進(jìn)一步得到改善。這樣,無需重新創(chuàng)建新計(jì)劃,從而節(jié)省了時(shí)間。相反,舊計(jì)劃本身得到了改善,一直改善到最佳查詢執(zhí)行計(jì)劃生成。因此,時(shí)間不會浪費(fèi)在重新創(chuàng)建查詢執(zhí)行計(jì)劃上,還創(chuàng)建了最佳查詢執(zhí)行計(jì)劃來快速、高效且沒有延遲地執(zhí)行所述查詢。此外,本發(fā)明減少了計(jì)劃時(shí)間和/或執(zhí)行時(shí)間,從而減少了執(zhí)行所述查詢的時(shí)長。前述
發(fā)明內(nèi)容只是說明性的,并非旨在以任何方式進(jìn)行限制。除了上述說明性方面和特征,參照附圖和下文詳細(xì)描述,其它方面和特征將顯而易見。附圖說明本發(fā)明的新穎特點(diǎn)和特征在所附權(quán)利要求中進(jìn)行闡述。但是本發(fā)明自身的實(shí)施例、優(yōu)選的使用方式,及其其它目的和優(yōu)勢可以通過參考以下說明性實(shí)施例的詳細(xì)說明結(jié)合附圖得到最好的理解?,F(xiàn)參照附圖僅通過示例描述一個(gè)或更多的實(shí)施例。圖1所示為根據(jù)本發(fā)明一些實(shí)施例的圖示具有處理器和存儲器的計(jì)劃優(yōu)化裝置的示例性方框圖;圖2所示為根據(jù)本發(fā)明一些實(shí)施例的圖示具有用于優(yōu)化查詢執(zhí)行計(jì)劃的各種數(shù)據(jù)和模塊的計(jì)劃優(yōu)化裝置的示例性方框圖;圖3示出了根據(jù)本發(fā)明一些實(shí)施例的優(yōu)化查詢執(zhí)行計(jì)劃的方法的流程圖;以及圖4示出了實(shí)施符合本發(fā)明的各實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)的方框圖。這些附圖描繪了本發(fā)明的實(shí)施例,僅用于說明目的。本領(lǐng)域技術(shù)人員將很容易從以下描述中意識到本文中示出的結(jié)構(gòu)和方法的替代性實(shí)施例可以在不脫離本文所描述的本發(fā)明的原理的情況下采用。具體實(shí)施方式上文相當(dāng)寬泛地概述了本發(fā)明的特征和技術(shù)優(yōu)點(diǎn),目的是讓人能更好地理解下文對本發(fā)明的詳細(xì)描述。下文中將描述本發(fā)明的額外特征和優(yōu)點(diǎn),其形成本發(fā)明的權(quán)利要求書的主題。本領(lǐng)域的技術(shù)人員應(yīng)了解,所公開的概念和具體方面可容易地用作修改或設(shè)計(jì)用于實(shí)現(xiàn)本發(fā)明的相同目的的其他結(jié)構(gòu)的基礎(chǔ)。本領(lǐng)域的技術(shù)人員還應(yīng)意識到,此類等效構(gòu)造不脫離所附權(quán)利要求書中所闡述的本發(fā)明的范圍。根據(jù)以下描述結(jié)合附圖內(nèi)容可以更好地理解被視為本發(fā)明的特點(diǎn),無論是關(guān)于其組成還是操作方法,的新穎特征以及其它目的和優(yōu)勢。但是,應(yīng)明確了解,提供的每個(gè)圖僅用于說明性和描述性目的,并非旨在對本發(fā)明進(jìn)行限制。本發(fā)明各實(shí)施例涉及查詢執(zhí)行計(jì)劃的優(yōu)化。接收計(jì)劃創(chuàng)建請求以創(chuàng)建一個(gè)查詢執(zhí)行計(jì)劃以執(zhí)行由用戶輸入的查詢。計(jì)劃創(chuàng)建請求與查詢一起接收。每當(dāng)輸入一個(gè)新查詢,生成一個(gè)查詢執(zhí)行計(jì)劃。查詢執(zhí)行計(jì)劃是一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中最近生成用于優(yōu)化查詢執(zhí)行的一個(gè)最新計(jì)劃。特別地,相繼創(chuàng)建一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃,用于優(yōu)化查詢執(zhí)行。因此,最近使用的查詢執(zhí)行計(jì)劃被認(rèn)為是一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃。使用查詢語句、計(jì)劃時(shí)間和執(zhí)行時(shí)間執(zhí)行優(yōu)化。計(jì)劃時(shí)間是指計(jì)劃查詢執(zhí)行計(jì)劃的優(yōu)化需要的時(shí)間。執(zhí)行時(shí)間是指執(zhí)行優(yōu)化的查詢執(zhí)行計(jì)劃需要的時(shí)間。迭代查詢執(zhí)行計(jì)劃的優(yōu)化以創(chuàng)建優(yōu)化的查詢執(zhí)行計(jì)劃,直到滿足計(jì)劃時(shí)間和/或執(zhí)行時(shí)間。這樣,創(chuàng)建了最佳的優(yōu)化的查詢執(zhí)行計(jì)劃以優(yōu)化查詢執(zhí)行。此后,本發(fā)明各實(shí)施例借助示例性圖和一個(gè)或多個(gè)示例進(jìn)行解釋。然而,這類示例性圖和示例用于說明性目的,以便更好地理解本發(fā)明,而不應(yīng)解釋為對本發(fā)明范圍的限制。圖1所示為根據(jù)本發(fā)明一些實(shí)施例的圖示具有處理器104和存儲器108的計(jì)劃優(yōu)化裝置102的示例性方框圖。計(jì)劃優(yōu)化裝置102用于優(yōu)化查詢執(zhí)行計(jì)劃。在一實(shí)施例中,計(jì)劃優(yōu)化裝置102以通信方式連接至用戶設(shè)備100和一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器110a、110b……110n(統(tǒng)稱為110)。在一個(gè)實(shí)施方式中,用戶設(shè)備100可以在諸如膝上型電腦、臺式電腦、筆記本、工作站、大型計(jì)算機(jī)、服務(wù)器、網(wǎng)絡(luò)服務(wù)器等各種計(jì)算系統(tǒng)中實(shí)施。用戶設(shè)備100可以由用戶使用,用戶可包括人或能夠執(zhí)行由用戶執(zhí)行的那些動作的設(shè)備本身。用戶包括但不限于管理員、開發(fā)員、測試員、管理器、編輯器、信息技術(shù)(InformationTechnology,IT)人員、商業(yè)智能(BusinessIntelligence,BI)專家、數(shù)據(jù)專家等。在一實(shí)施例中,用戶設(shè)備100使用戶能夠輸入一個(gè)或多個(gè)查詢,以及一個(gè)或多個(gè)優(yōu)化參數(shù)。用戶設(shè)備100包括用戶界面(未示出),用以顯示用于一個(gè)或多個(gè)查詢中一個(gè)查詢的查詢執(zhí)行計(jì)劃的執(zhí)行結(jié)果。用戶可以通過用戶界面輸入一個(gè)或多個(gè)查詢和一個(gè)或多個(gè)優(yōu)化參數(shù)。另外,用戶界面顯示用于創(chuàng)建優(yōu)化的查詢執(zhí)行計(jì)劃的查詢執(zhí)行計(jì)劃的優(yōu)化迭代。出于說明目的,圖1僅示出了一個(gè)用戶設(shè)備100。然而,本領(lǐng)域技術(shù)人員將理解,可以存在“n”個(gè)連接至計(jì)劃優(yōu)化裝置102的用戶設(shè)備。一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器110關(guān)聯(lián)到一個(gè)或多個(gè)數(shù)據(jù)庫,這些數(shù)據(jù)庫用于為從用戶設(shè)備100接收的一個(gè)或多個(gè)查詢提供查詢結(jié)果。在一示例性實(shí)施例中,一個(gè)或多個(gè)數(shù)據(jù)庫包括但不限于關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem,RDBMS)數(shù)據(jù)庫、基于結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)的數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫(NotOnlySQL,NoSQL)。在一實(shí)施例中,一個(gè)或多個(gè)數(shù)據(jù)庫用于使用一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器110的執(zhí)行器(未示出)提取查詢結(jié)果。計(jì)劃優(yōu)化裝置102可包括至少一個(gè)中央處理器(centralprocessingunit,CPU或者“處理器”)104、輸入/輸出(input/output,I/O)界面106和存儲器108。在一實(shí)施例中,I/O界面106是分別接收和提供一個(gè)或多個(gè)輸入數(shù)據(jù)和輸出數(shù)據(jù)的界面。I/O界面106用于從用戶設(shè)備100接收一個(gè)或多個(gè)查詢。I/O界面106用于提供執(zhí)行查詢的查詢執(zhí)行計(jì)劃的執(zhí)行結(jié)果以供顯示。I/O界面106用于向用戶設(shè)備100提供從一個(gè)或多個(gè)數(shù)據(jù)庫提取的查詢結(jié)果或查詢數(shù)據(jù)。此外,I/O界面106用于從用戶設(shè)備100或從計(jì)劃優(yōu)化裝置102本身接收一個(gè)或多個(gè)優(yōu)化參數(shù)。查詢執(zhí)行計(jì)劃優(yōu)化的迭代結(jié)果和優(yōu)化的查詢執(zhí)行計(jì)劃一起通過I/O界面106發(fā)送到用戶設(shè)備100顯示。在一實(shí)施例中,查詢執(zhí)行計(jì)劃的執(zhí)行結(jié)果、優(yōu)化的查詢執(zhí)行計(jì)劃以及查詢執(zhí)行計(jì)劃優(yōu)化的迭代結(jié)果可以提供給關(guān)聯(lián)到計(jì)劃優(yōu)化裝置102的用戶界面以供顯示。在一實(shí)施例中,I/O界面106耦合至處理器104。處理器104可包括用于執(zhí)行程序組件的至少一個(gè)數(shù)據(jù)處理器,該程序組件用于執(zhí)行用戶或設(shè)備生成的查詢并且優(yōu)化參數(shù)。處理器104用于執(zhí)行通過I/O界面106接收的一個(gè)或多個(gè)查詢。在一實(shí)施例中,處理器104用于:使用查詢執(zhí)行計(jì)劃執(zhí)行查詢,通過一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器110從一個(gè)或多個(gè)數(shù)據(jù)庫提取查詢結(jié)果。處理器104用于基于計(jì)劃創(chuàng)建請求生成查詢執(zhí)行計(jì)劃。處理器104還用于優(yōu)化稱為最新計(jì)劃的查詢執(zhí)行計(jì)劃,該最新計(jì)劃是一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中最近生成的計(jì)劃。具體而言,處理器104用于使用一個(gè)或多個(gè)優(yōu)化參數(shù)優(yōu)化查詢執(zhí)行計(jì)劃,即最新計(jì)劃。處理器104用于迭代查詢執(zhí)行計(jì)劃的優(yōu)化,直到滿足一個(gè)或多個(gè)優(yōu)化參數(shù)。在一個(gè)實(shí)施方式中,處理器104可以優(yōu)化一個(gè)以上查詢執(zhí)行計(jì)劃。在一實(shí)施例中,處理器104通過使用一個(gè)或多個(gè)數(shù)據(jù)以及實(shí)施和執(zhí)行一個(gè)或多個(gè)模塊來執(zhí)行優(yōu)化。存儲器108以通信方式耦合至處理器104。存儲器108存儲處理器可執(zhí)行指令,其在執(zhí)行時(shí)使得處理器104執(zhí)行查詢執(zhí)行計(jì)劃即最新計(jì)劃,的優(yōu)化。存儲器108存儲由處理器104創(chuàng)建的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃。存儲器108將優(yōu)化的查詢執(zhí)行計(jì)劃存儲為最新計(jì)劃,即用于執(zhí)行一個(gè)或多個(gè)查詢的下一個(gè)最新計(jì)劃。此外,存儲器108存儲一個(gè)或多個(gè)數(shù)據(jù)和一個(gè)或多個(gè)模塊,這些將在本發(fā)明的以下描述中進(jìn)行詳細(xì)解釋。圖2所示為根據(jù)本發(fā)明一些實(shí)施例的具有用于優(yōu)化查詢執(zhí)行計(jì)劃的一個(gè)或多個(gè)數(shù)據(jù)200和一個(gè)或多個(gè)模塊212的計(jì)劃優(yōu)化裝置102的示例性方框圖。在一實(shí)施例中,一個(gè)或多個(gè)數(shù)據(jù)200可包括從用戶設(shè)備100接收的查詢信息202、查詢語句數(shù)據(jù)204、計(jì)劃時(shí)間數(shù)據(jù)206、計(jì)劃執(zhí)行時(shí)間數(shù)據(jù)208和其它數(shù)據(jù)210,用以優(yōu)化查詢執(zhí)行計(jì)劃。查詢信息202包括查詢和查詢語句的詳細(xì)內(nèi)容,它們在從用戶設(shè)備100接收查詢時(shí)接收。查詢信息202可包括含有查詢和查詢語句數(shù)據(jù)204的用于創(chuàng)建查詢的查詢執(zhí)行計(jì)劃的計(jì)劃創(chuàng)建請求。例如,假設(shè)用戶提出查詢‘Q’。在用戶設(shè)備100提出查詢‘Q’后,計(jì)劃優(yōu)化裝置102接收到用于為查詢‘Q’創(chuàng)建查詢執(zhí)行計(jì)劃的計(jì)劃創(chuàng)建請求。在一實(shí)施例中,計(jì)劃創(chuàng)建請求包括查詢,例如‘Q’,以及定義查詢‘Q’的查詢語句。例如,處理器104基于計(jì)劃創(chuàng)建請求為查詢‘Q’創(chuàng)建查詢執(zhí)行計(jì)劃‘P1’。六個(gè)表聯(lián)合的查詢語句標(biāo)準(zhǔn)的示例如下所示:SELECTn_name,sum(l_extendedprice*(1-l_discount))asrevenueFROMcustomer,orders,lineitem,supplier,nation,regionwherec_custkey=o_custkeyandl_orderkey=o_orderkeyandl_suppkey=s_suppkeyandc_nationkey=s_nationkeyands_nationkey=n_nationkeyandn_regionkey=r_regionkeyandr_name='abc'/*':1'*/ando_orderdate>=timenow()ando_orderdate<timenow()+interval'1year'groupbyn_nameorderbyrevenuedesc;在一實(shí)施例中,計(jì)劃創(chuàng)建請求還可包括計(jì)劃時(shí)間和執(zhí)行時(shí)間。計(jì)劃時(shí)間是指為查詢‘Q’計(jì)劃或創(chuàng)建優(yōu)化的查詢執(zhí)行計(jì)劃的時(shí)間,或者計(jì)劃查詢執(zhí)行計(jì)劃優(yōu)化需要的時(shí)間。執(zhí)行時(shí)間是指執(zhí)行用于執(zhí)行查詢‘Q’的優(yōu)化的查詢執(zhí)行計(jì)劃的時(shí)間。在一實(shí)施例中,查詢執(zhí)行計(jì)劃‘P1’被認(rèn)為是一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的最新計(jì)劃或次優(yōu)計(jì)劃。相繼創(chuàng)建一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃,用于優(yōu)化查詢‘Q’的執(zhí)行。查詢執(zhí)行計(jì)劃‘P1’為最新計(jì)劃或次優(yōu)計(jì)劃。在一實(shí)施例中,可以只使用查詢和查詢語句創(chuàng)建查詢執(zhí)行計(jì)劃。使用計(jì)劃時(shí)間和執(zhí)行時(shí)間來創(chuàng)建查詢執(zhí)行計(jì)劃是可選的。數(shù)據(jù)200包括優(yōu)化參數(shù)數(shù)據(jù)(未示出),其用作優(yōu)化查詢執(zhí)行計(jì)劃的一個(gè)或多個(gè)優(yōu)化參數(shù)。優(yōu)化參數(shù)數(shù)據(jù)包括查詢語句數(shù)據(jù)204、計(jì)劃時(shí)間數(shù)據(jù)206和計(jì)劃執(zhí)行時(shí)間數(shù)據(jù)208。查詢語句數(shù)據(jù)204是指查詢的查詢語句。例如,假設(shè)查詢執(zhí)行計(jì)劃‘P1’包含編程指令的100個(gè)語句。鑒于查詢執(zhí)行計(jì)劃‘P1’的執(zhí)行結(jié)果,假設(shè)執(zhí)行所花的時(shí)長大于預(yù)定義時(shí)間段。該預(yù)定義時(shí)間段是執(zhí)行必須完成的時(shí)間段。例如,預(yù)定義時(shí)間段可認(rèn)為是一個(gè)小時(shí)。特別地,最初通過查看,執(zhí)行查詢執(zhí)行計(jì)劃‘P1’的第14個(gè)語句時(shí)所花的時(shí)長更長。因此,針對查詢‘Q’,用戶設(shè)備100想要從編程指令的第14個(gè)語句優(yōu)化查詢執(zhí)行計(jì)劃‘P1’。因此,用戶設(shè)備100指定查詢語句如下所示:EnhancePlan(14,30m,15m)-----------------------------(1)計(jì)劃時(shí)間數(shù)據(jù)206是指用于創(chuàng)建或計(jì)劃查詢執(zhí)行計(jì)劃‘P1’的優(yōu)化,即用于創(chuàng)建從‘P1’到‘P1*’的優(yōu)化的查詢執(zhí)行計(jì)劃,的時(shí)間。例如,用戶設(shè)備100通過從第14個(gè)語句開始優(yōu)化查詢執(zhí)行計(jì)劃‘P1’來指定創(chuàng)建優(yōu)化的查詢執(zhí)行計(jì)劃為‘P1*’的計(jì)劃時(shí)間為30分鐘。在30分鐘內(nèi)為查詢‘Q’創(chuàng)建改善或優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的示例性指令如下所述:EnhancePlan(14,30m)-----------------------------(2)啟動并執(zhí)行從查詢執(zhí)行計(jì)劃‘P1’的第14個(gè)語句開始的優(yōu)化,直到30分鐘的計(jì)劃時(shí)間期滿。此外,重復(fù)地迭代該優(yōu)化,直到產(chǎn)生依據(jù)滿足計(jì)劃時(shí)間的最佳執(zhí)行計(jì)劃的優(yōu)化結(jié)果。計(jì)劃執(zhí)行時(shí)間數(shù)據(jù)208是指執(zhí)行查詢‘Q’的優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的時(shí)間。例如,執(zhí)行時(shí)間指定為15分鐘用于執(zhí)行為‘P1*’的優(yōu)化的查詢執(zhí)行計(jì)劃。優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的執(zhí)行從第14個(gè)語句開始。在15分鐘的計(jì)劃執(zhí)行時(shí)間內(nèi)執(zhí)行查詢‘Q’的改善或優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的示例性指令如下所述:EnhancePlan(14,30m,15m)-----------------------------(3)啟動并執(zhí)行從優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的第14個(gè)語句開始的執(zhí)行,直到15分鐘的計(jì)劃執(zhí)行時(shí)間期滿。此外,重復(fù)地迭代該優(yōu)化,直到產(chǎn)生依據(jù)滿足計(jì)劃執(zhí)行時(shí)間的最佳執(zhí)行計(jì)劃的優(yōu)化結(jié)果。在一實(shí)施例中,可以執(zhí)行優(yōu)化,直到計(jì)劃時(shí)間和計(jì)劃執(zhí)行時(shí)間中的任一或兩者期滿。其它數(shù)據(jù)210可指能用于查詢執(zhí)行計(jì)劃‘P1’的優(yōu)化的此類數(shù)據(jù)。在一實(shí)施例中,存儲器108中的一個(gè)或多個(gè)數(shù)據(jù)200由計(jì)劃優(yōu)化裝置102的一個(gè)或多個(gè)模塊212處理。一個(gè)或多個(gè)模塊212可存儲在如圖2所示的存儲器108內(nèi)。在一示例中,以通信方式耦合至處理器104的一個(gè)或多個(gè)模塊212還可存在于存儲器108的外部。特別地,存儲器108中包括一個(gè)或多個(gè)優(yōu)化參數(shù)的一個(gè)或多個(gè)數(shù)據(jù)200由一個(gè)或多個(gè)模塊212使用。如本文使用的術(shù)語模塊是指專用集成電路(applicationspecificintegratedcircuit,ASIC)、電子電路、(共享、專用或群組)處理器和存儲器(它們執(zhí)行一個(gè)或多個(gè)軟件或固件程序)、組合的邏輯電路和/或提供所描述功能的其它合適組件。一個(gè)或多個(gè)模塊212可包括,例如接收模塊214、計(jì)劃生成模塊216、計(jì)劃優(yōu)化模塊218和輸出模塊220。模塊212中包括執(zhí)行查詢執(zhí)行計(jì)劃優(yōu)化的各種各樣功能的其它模塊222。將了解,上述這些模塊可表示為單個(gè)模塊或不同模塊的組合。接收模塊212用于接收一個(gè)或多個(gè)查詢。下面的(4)示出了為查詢例如‘Q’創(chuàng)建查詢執(zhí)行計(jì)劃‘P1’的計(jì)劃創(chuàng)建請求語句:Prepare(querystmt,“query”,planningtime,planexecutiontime)--------------------(4)計(jì)劃生成模塊216用于為查詢‘Q’生成查詢執(zhí)行計(jì)劃‘P1’。計(jì)劃優(yōu)化模塊218通過迭代查詢執(zhí)行計(jì)劃‘P1’的優(yōu)化直到優(yōu)化滿足一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’。例如,假設(shè)‘P1’是用作執(zhí)行查詢‘Q’的最新計(jì)劃或次優(yōu)計(jì)劃的查詢執(zhí)行計(jì)劃。假設(shè)查詢執(zhí)行計(jì)劃‘P1’包含編程指令的100個(gè)語句。鑒于查詢執(zhí)行計(jì)劃‘P1’的執(zhí)行結(jié)果,假設(shè)執(zhí)行所花的時(shí)長大于必須完成該執(zhí)行的預(yù)定義時(shí)間段。特別地,最初通過查看,執(zhí)行查詢執(zhí)行計(jì)劃‘P1’的第14個(gè)語句時(shí)所花的時(shí)長更長。因此,用戶想要從14個(gè)語句開始優(yōu)化執(zhí)行查詢‘Q’的計(jì)劃和計(jì)劃執(zhí)行時(shí)間。所以,用戶設(shè)備100指定優(yōu)化參數(shù)如下所示:EnhancePlan(querystmt,planningtime,planexecutiontime)-------------------(5)在一實(shí)施例中,計(jì)劃優(yōu)化裝置102使用模擬的退火技術(shù)和/或通用技術(shù)來優(yōu)化查詢執(zhí)行計(jì)劃‘P1’。因此,通過迭代查詢執(zhí)行‘P1’的優(yōu)化直到計(jì)劃時(shí)間和/或執(zhí)行時(shí)間期滿或直到創(chuàng)建最佳計(jì)劃,生成優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’。在一實(shí)施例中,優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’存儲在存儲器108中。特別地,優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’作為最新計(jì)劃存儲在存儲器108中,用以在下一循環(huán)或下一執(zhí)行過程中執(zhí)行一個(gè)或多個(gè)查詢。輸出模塊220用于提供一個(gè)或多個(gè)輸出數(shù)據(jù)以供顯示。輸出數(shù)據(jù)包括但不限于查詢執(zhí)行計(jì)劃‘P1’的執(zhí)行結(jié)果、優(yōu)化的查詢執(zhí)行‘P1*’的生成和用以創(chuàng)建優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’的查詢執(zhí)行計(jì)劃‘P1’優(yōu)化的迭代。圖3示出了根據(jù)本發(fā)明的一些實(shí)施例的優(yōu)化查詢執(zhí)行計(jì)劃‘P1’的方法300的流程圖。如圖3所示,方法300包括用于優(yōu)化查詢執(zhí)行計(jì)劃的一個(gè)或多個(gè)方框。方法300可以在計(jì)算機(jī)可執(zhí)行指令的一般上下文中進(jìn)行描述。通常,計(jì)算機(jī)可執(zhí)行指令包括例行程序、編制程序、對象、組件、數(shù)據(jù)結(jié)構(gòu)、流程、模塊和功能,它們執(zhí)行特定功能或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型。描述方法300的順序并不旨在解釋為限制,任何數(shù)量的所描述的方法方框可以以任何順序組合來實(shí)施方法300。另外,可以在不偏離本文所描述主題的范圍的情況下從方法300中刪除各個(gè)方框。此外,方法300可以在任何合適的硬件、軟件、固件或它們的組合中實(shí)施。在方框302處,開始一個(gè)或多個(gè)查詢的執(zhí)行過程。在方框304處,使用過去創(chuàng)建的一個(gè)或多個(gè)查詢執(zhí)行計(jì)劃中的查詢執(zhí)行計(jì)劃‘P1’執(zhí)行從用戶設(shè)備100接收的一個(gè)或多個(gè)查詢。在一實(shí)施例中,基于一個(gè)或多個(gè)查詢的計(jì)劃創(chuàng)建請求創(chuàng)建查詢執(zhí)行計(jì)劃‘P1’。例如,假設(shè)‘P1’是為查詢‘Q’創(chuàng)建的查詢執(zhí)行計(jì)劃。而且假設(shè)查詢執(zhí)行計(jì)劃‘P1’是最近或當(dāng)前在執(zhí)行查詢‘Q’中使用的最新查詢執(zhí)行計(jì)劃。在方框306處,檢查一條件:查詢執(zhí)行計(jì)劃的執(zhí)行所花的時(shí)間是否大于該執(zhí)行應(yīng)完成的預(yù)定義時(shí)間段。例如,假設(shè)查詢執(zhí)行計(jì)劃‘P1’包含編程指令的100個(gè)語句。鑒于查詢執(zhí)行計(jì)劃‘P1’的執(zhí)行結(jié)果,例如,假設(shè)執(zhí)行時(shí)間為1小時(shí)30分鐘,而執(zhí)行的預(yù)定義時(shí)間段應(yīng)為1個(gè)小時(shí)。特別地,最初通過查看,執(zhí)行查詢執(zhí)行計(jì)劃‘P1’的第14個(gè)語句時(shí)所花的時(shí)長更長。如果查詢執(zhí)行計(jì)劃的執(zhí)行時(shí)長不大于預(yù)定義時(shí)間段,那么該過程通過‘否’進(jìn)入方框308,其中不執(zhí)行優(yōu)化的過程,而以傳統(tǒng)方式執(zhí)行查詢。如果查詢執(zhí)行計(jì)劃的執(zhí)行時(shí)長大于預(yù)定義時(shí)間段,那么該過程通過‘是’進(jìn)入方框310。在方框310處,從用戶設(shè)備100接收包括查詢語句、計(jì)劃時(shí)間和計(jì)劃執(zhí)行時(shí)間的一個(gè)或多個(gè)優(yōu)化參數(shù),用以優(yōu)化查詢執(zhí)行計(jì)劃‘P1’。例如,將一個(gè)或多個(gè)優(yōu)化參數(shù)用于查詢執(zhí)行計(jì)劃‘P1’上,以優(yōu)化查詢執(zhí)行計(jì)劃‘P1’。具體地,采用一個(gè)或多個(gè)優(yōu)化參數(shù)以從查詢執(zhí)行計(jì)劃‘P1’的編程指令的第14個(gè)語句開始優(yōu)化查詢執(zhí)行計(jì)劃‘P1’。在方框312處,通過迭代查詢執(zhí)行計(jì)劃‘P1’的優(yōu)化直到優(yōu)化滿足一個(gè)或多個(gè)優(yōu)化參數(shù)來生成優(yōu)化的查詢執(zhí)行計(jì)劃‘P1*’。從檢查執(zhí)行條件開始啟動迭代。例如,從查詢執(zhí)行計(jì)劃‘P1’的編程指令的第14個(gè)語句開始啟動迭代。在一實(shí)施例中,執(zhí)行迭代,直到生成最佳執(zhí)行計(jì)劃。在一實(shí)施例中,執(zhí)行迭代,直到計(jì)劃時(shí)間和/或計(jì)劃執(zhí)行時(shí)間期滿。計(jì)算機(jī)系統(tǒng)圖4示出了實(shí)施符合本發(fā)明的實(shí)施例的示例性計(jì)算機(jī)系統(tǒng)400的方框圖。在一實(shí)施例中,計(jì)算機(jī)系統(tǒng)400用于實(shí)施計(jì)劃優(yōu)化裝置102。計(jì)算機(jī)系統(tǒng)400可包括中央處理器(centralprocessingunit,CPU或“處理器”)402。處理器402可包括用于執(zhí)行程序組件的至少一個(gè)數(shù)據(jù)處理器,該程序組件用于生成優(yōu)化的查詢執(zhí)行計(jì)劃。處理器402可包括專用處理單元,諸如集成系統(tǒng)(總線)控制器、內(nèi)存管理控制單元、浮點(diǎn)單元、圖形處理單元、數(shù)字信號處理器單元等。處理器402可設(shè)置為通過I/O界面401與一個(gè)或多個(gè)輸入/輸出(input/output,I/O)設(shè)備(412和413)通信。I/O界面401可采用通信協(xié)議/方法,諸如不限于音頻、模擬、數(shù)字、Monoaual、RCA、立體聲、IEEE-1394、串行總線、通用串行總線(universalserialbus,USB)、紅外線、PS/2、BNC、同軸、組件、復(fù)合物、數(shù)字視頻接口(digitalvisualinterface,DVI)、高清晰多媒體接口(high-definitionmultimediainterface,HDMI)、RF天線、S-Video、VGA、IEEE802.n/b/g/n/x、藍(lán)牙、蜂窩(例如碼分多址接入(code-divisionmultipleaccess,CDMA)、高速分組接入(high-speedpacketaccess,HSPA+)、全球移動通信系統(tǒng)(globalsystemformobilecommunications,GSM)、長期演進(jìn)(long-termevolution,LTE)、WiMax等),等等。I/O界面401可包括各種各樣的軟件和硬件界面,例如網(wǎng)頁界面、圖形用戶界面等。使用I/O界面401,計(jì)算機(jī)系統(tǒng)400可與一個(gè)或多個(gè)I/O設(shè)備(412和413)通信。例如,輸入設(shè)備412可以是天線、鍵盤、鼠標(biāo)、操縱桿、(紅外)遙控器、攝像機(jī)、讀卡器、傳真機(jī)、軟件狗、生物識別閱讀器、麥克風(fēng)、觸摸屏、觸摸板、軌跡球、傳感器(例如加速計(jì)、光傳感器、GPS、陀螺儀、接近傳感器等)、手寫筆、掃描儀、存儲設(shè)備、收發(fā)器、視頻設(shè)備/源、取景器等。輸出設(shè)備413可為打印機(jī)、傳真機(jī)、視頻顯示器(例如陰極射線管(cathoderaytube,CRT)、液晶顯示器(liquidcrystaldisplay,LCD)、發(fā)光二極管(light-emittingdiode,LED)、等離子等)、揚(yáng)聲器等。在一些實(shí)施例中,處理器402可設(shè)置為通過網(wǎng)絡(luò)接口403與通信網(wǎng)絡(luò)409通信。網(wǎng)絡(luò)接口403可與通信網(wǎng)絡(luò)409通信。網(wǎng)絡(luò)接口403可采用連接協(xié)議,包括但不限于直接連接、以太網(wǎng)(例如雙絞線對10/100/1000BaseT)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(transmissioncontrolprotocol/internetprotocol,TCP/IP)、令牌環(huán)、IEEE802.11a/b/g/n/x等。通信網(wǎng)絡(luò)409可包括但不限于直接互聯(lián)、局域網(wǎng)(localareanetwork,LAN)、廣域網(wǎng)(wideareanetwork,WAN)、(例如使用無線應(yīng)用協(xié)議的)無線網(wǎng)絡(luò)、互聯(lián)網(wǎng)等。使用網(wǎng)絡(luò)接口403和通信網(wǎng)絡(luò)409,計(jì)算機(jī)系統(tǒng)400可與一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器410(a……n)和一個(gè)或多個(gè)用戶設(shè)備411(a……n)通信。一個(gè)或多個(gè)數(shù)據(jù)庫服務(wù)器410(a……n)包括但不限于關(guān)系數(shù)據(jù)庫,即關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystems,RDBMS)、基于結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,SQL)的數(shù)據(jù)庫和非關(guān)系型數(shù)據(jù)庫(NotOnlySQL,NOSQL)。一個(gè)或多個(gè)用戶設(shè)備411(a……n)可包括但不限于個(gè)人電腦、服務(wù)器、傳真機(jī)、打印機(jī)、掃描儀、各種移動設(shè)備諸如蜂窩電話、智能手機(jī)、平板電腦、電子書閱讀器、膝上型電腦、筆記本、游戲機(jī)等等。在一實(shí)施例中,從組織的各種利益相關(guān)方、信息技術(shù)(InformationTechnology,IT)管理員、商業(yè)分析家、軟件測試員、軟件開發(fā)員或終端用戶可能使用的一個(gè)或多個(gè)用戶設(shè)備411(a……n)接收一個(gè)或多個(gè)查詢。在一些實(shí)施例中,處理器402可設(shè)置為通過存儲接口404與存儲器405(例如RAM、ROM等,未在圖4中示出)通信。存儲接口404可采用連接協(xié)議,諸如串行高級技術(shù)附件(serialadvancedtechnologyattachment,SATA)、集成驅(qū)動電路(integrateddriveelectronics,IDE)、IEEE-1394、通用串行總線(universalserialbus,USB)、光纖通道、小型計(jì)算機(jī)系統(tǒng)接口(smallcomputersystemsinterface,SCSI)等,連接至存儲器405,存儲器包括但不限于內(nèi)存驅(qū)動、可移動磁盤驅(qū)動等。存儲器驅(qū)動還可包括磁鼓、磁盤驅(qū)動、磁光驅(qū)動、廉價(jià)冗余磁盤陣列(redundantarrayofindependentdiscs,RAID)、固態(tài)存儲設(shè)備、固態(tài)驅(qū)動等。存儲器405可存儲程序集合或數(shù)據(jù)庫組件集合,包括但不限于用戶界面應(yīng)用406、操作系統(tǒng)407、網(wǎng)頁服務(wù)器408等。在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)400可存儲用戶/應(yīng)用數(shù)據(jù)406,諸如數(shù)據(jù)、變量、記錄等,如本發(fā)明所述。這類數(shù)據(jù)庫可以為容錯(cuò)、關(guān)系、可擴(kuò)展、安全的數(shù)據(jù)庫,諸如Oracle或Sybase。操作系統(tǒng)407可方便計(jì)算機(jī)系統(tǒng)400的資源管理和操作。操作系統(tǒng)的示例包括但不限于蘋果機(jī)OSX、Unix、類Unix系統(tǒng)發(fā)行套件(例如Berkeley軟件發(fā)行(BerkeleySoftwareDistribution,BSD)、FreeBSD、NetBSD、OpenBSD等)、Linux發(fā)行套件(例如紅帽、Ubuntu、Kubuntu等)、IBMOS/2、微軟視窗(XP、Vista/7/8等)、蘋果iOS、谷歌安卓、黑莓OS等等。用戶界面406可通過文本或圖形工具方便程序組件的顯示、執(zhí)行、交互、操控或操作。例如,用戶界面可在顯示系統(tǒng)上提供計(jì)算機(jī)交互界面元素,該顯示系統(tǒng)可操作地連接至計(jì)算機(jī)系統(tǒng)400,元素包括光標(biāo)、圖標(biāo)、復(fù)選框、菜單、滾動組件、窗口、微件等。可采用圖形用戶界面(Graphicaluserinterfaces,GUI),包括但不限于蘋果機(jī)操作系統(tǒng)的Aqua、IBMOS/2、微軟視窗(例如Aero、Metro等)、UnixX-窗口、網(wǎng)頁界面庫(例如ActiveX、Java、Javascript、AJAX、HTML、AdobeFlash等),等等。在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)400可實(shí)施網(wǎng)頁瀏覽器408存儲的程序組件。網(wǎng)頁瀏覽器408可為超文本查看應(yīng)用,諸如微軟互聯(lián)網(wǎng)瀏覽器、谷歌瀏覽器、火狐瀏覽器、蘋果瀏覽器等。使用安全超文本傳輸協(xié)議(securehypertexttransportprotocol,HTTPS)、安全套接層(securesocketslayer,SSL)、傳輸層安全(TransportLayerSecurity,TLS)等可提供安全的網(wǎng)頁瀏覽。網(wǎng)頁瀏覽器可利用諸如AJAX、DHTML、AdobeFlash/JavaScript、Java、應(yīng)用編程接口(applicationprogramminginterface,API)等工具。在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)400可實(shí)施郵件服務(wù)器存儲的程序組件。郵件服務(wù)器可為互聯(lián)網(wǎng)郵件服務(wù)器,諸如微軟郵件交換等。郵件服務(wù)器可利用諸如ASP、ActiveX、ANSIC++/C#、Microsoft.NET、CGI腳本、Java、JavaScript、PERL、PHP、Python、WebObjects等工具。郵件服務(wù)器可利用通信協(xié)議,諸如互聯(lián)網(wǎng)消息接入?yún)f(xié)議(internetmessageaccessprotocol,IMAP)、消息應(yīng)用程序接口(messagingapplicationprogramminginterface,MAPI)、微軟郵件交換、郵局協(xié)議(postofficeprotocol,POP)、簡單郵件傳輸協(xié)議(simplemailtransferprotocol,SMTP)等等。在一些實(shí)施例中,計(jì)算機(jī)系統(tǒng)400可實(shí)施郵件客戶端存儲的程序組件。郵件客戶端可為郵件查看應(yīng)用,諸如蘋果郵件、微軟環(huán)境、微軟Outlook、火狐雷鳥等。此外,實(shí)施符合本發(fā)明的各實(shí)施例時(shí)可使用一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲介質(zhì)。計(jì)算機(jī)可讀存儲介質(zhì)是指任意類型的物理存儲器,可將處理器可讀的信息或數(shù)據(jù)存儲在該物理存儲器上。因此,計(jì)算機(jī)可讀存儲介質(zhì)可存儲一個(gè)或多個(gè)處理器執(zhí)行的指令,包括使得處理器執(zhí)行符合本文描述的實(shí)施例的步驟或階段。術(shù)語“計(jì)算機(jī)可讀介質(zhì)”應(yīng)當(dāng)理解為包括有形物體并且排除載波和瞬態(tài)信號,即為非瞬時(shí)性的。示例包括隨機(jī)存取存儲器(randomaccessmemory,RAM)、只讀存儲器(read-onlymemory,ROM)、易失性存儲器、非易失性存儲器、硬盤、CDROM、DVC、閃存盤、磁盤以及任意其它熟知的物理存儲介質(zhì)。在一個(gè)實(shí)施方式中,計(jì)算機(jī)系統(tǒng)400用于通過網(wǎng)絡(luò)接口403在網(wǎng)絡(luò)409上與一個(gè)或多個(gè)數(shù)據(jù)庫410(a……n)和一個(gè)或多個(gè)用戶設(shè)備411(a……n)通信。網(wǎng)絡(luò)包括但不限于直接互聯(lián)、電子商務(wù)網(wǎng)絡(luò)、端到端(peertopeer,P2P)網(wǎng)絡(luò)、局域網(wǎng)(localareanetwork,LAN)、廣域網(wǎng)(wideareanetwork,WAN)、(例如使用無線應(yīng)用協(xié)議的)無線網(wǎng)絡(luò)、互聯(lián)網(wǎng)、Wi-Fi等。網(wǎng)絡(luò)可以是專用網(wǎng)絡(luò)或共享網(wǎng)絡(luò),這表示使用各種協(xié)議,例如,超文本傳輸協(xié)議(HypertextTransferProtocol,HTTP)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TransmissionControlProtocol/InternetProtocol,TCP/IP)、無線應(yīng)用協(xié)議(WirelessApplicationProtocol,WAP)等來彼此通信的各種類型網(wǎng)絡(luò)的聯(lián)合。此外,網(wǎng)絡(luò)可以包括各種網(wǎng)絡(luò)設(shè)備,包括路由器、網(wǎng)橋、服務(wù)器、計(jì)算設(shè)備、存儲設(shè)備等。網(wǎng)絡(luò)接口403可采用連接協(xié)議,包括但不限于,直接連接、以太網(wǎng)(雙絞線10/100/1000BaseT)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(transmissioncontrolprotocol/internetprotocol,TCP/IP)、令牌環(huán)、IEEE802.11a/b/g/n/x等。另外,本文說明了本發(fā)明的優(yōu)點(diǎn)。本發(fā)明各實(shí)施例涉及管理計(jì)劃時(shí)間和/或執(zhí)行時(shí)間以管理一個(gè)或多個(gè)查詢的執(zhí)行。本發(fā)明各實(shí)施例涉及優(yōu)化計(jì)劃時(shí)間和或執(zhí)行時(shí)間以及優(yōu)化查詢執(zhí)行計(jì)劃。執(zhí)行所述優(yōu)化,直到生成優(yōu)化的查詢執(zhí)行計(jì)劃,直到滿足計(jì)劃時(shí)間和/或執(zhí)行時(shí)間。這樣,本發(fā)明提供一個(gè)可以快速、高效且無延遲地執(zhí)行查詢的最佳查詢執(zhí)行計(jì)劃。本發(fā)明各實(shí)施例減少了計(jì)劃時(shí)間和/或執(zhí)行時(shí)間,從而減少了執(zhí)行一個(gè)或多個(gè)查詢的時(shí)長。所描述操作可以實(shí)施為一種使用標(biāo)準(zhǔn)編程和/或工程技術(shù)方法、系統(tǒng)或制成品以生成軟件、固件、硬件或它們的任何組合。所描述操作可以實(shí)施為在“非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)”中保存的代碼,其中處理器可以從計(jì)算機(jī)可讀介質(zhì)中讀取和執(zhí)行該代碼。該處理器為能夠處理和執(zhí)行查詢的微處理器和處理器中的至少一個(gè)。非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)可包括諸如磁存儲介質(zhì)(例如,硬盤驅(qū)動器、軟盤、磁帶等)、光存儲器(CD-ROM、DVD、光盤等)、易失性和非易失性存儲設(shè)備(例如,EEPROM、ROM、PROM、RAM、DRAM、SRAM、閃存、固件、可編程邏輯等)等的介質(zhì)。此外,非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)包括除瞬時(shí)性介質(zhì)外的所有計(jì)算機(jī)可讀介質(zhì)。實(shí)施所述操作的代碼可進(jìn)一步在硬件邏輯(例如,集成電路芯片、可編程門陣列(ProgrammableGateArray,PGA)、專用集成電路(ApplicationSpecificIntegratedCircuit,ASIC)等)中實(shí)施。此外,實(shí)施所述操作的代碼可以通過“傳輸信號”實(shí)施,其中傳輸信號可以通過空間或通過傳輸介質(zhì),例如光纖、銅線等傳播。代碼或邏輯已編碼的傳輸信號還可以包括無線信號、衛(wèi)星傳輸、無線電波、紅外信號、藍(lán)牙等。代碼或邏輯已編碼的傳輸信號能夠通過傳輸站傳輸和由接收站接收,其中,在接收站或設(shè)備和傳輸站或設(shè)備處,編碼在傳輸信號中的代碼或邏輯可以解碼或存儲在硬件或非瞬時(shí)計(jì)算機(jī)可讀介質(zhì)中?!爸瞥善贰卑ǚ撬矔r(shí)性計(jì)算機(jī)可讀介質(zhì)、硬件邏輯,和/或可以在其中實(shí)施代碼的傳輸信號。對實(shí)施所描述操作的實(shí)施例的代碼進(jìn)行編碼的設(shè)備可以包括計(jì)算機(jī)可讀介質(zhì)或硬件邏輯。當(dāng)然,本領(lǐng)域技術(shù)人員將認(rèn)識到可以對這種配置進(jìn)行各種修改,而不脫離本發(fā)明的范圍,以及制造品可以包括承載本領(lǐng)域已知的介質(zhì)的合適信息。除非另有明確規(guī)定,否則術(shù)語“一實(shí)施例”、“實(shí)施例”、“多項(xiàng)實(shí)施例”、“所述實(shí)施例”、“這些實(shí)施例”、“一項(xiàng)或多項(xiàng)實(shí)施例”、“一些實(shí)施例”和“一項(xiàng)實(shí)施例”指“本發(fā)明的一項(xiàng)或多項(xiàng)(但不是全部)實(shí)施例”。除非另有明確規(guī)定,否則術(shù)語“包含”、“包括”、“具有”和其他形式指的是“包括但不限于”。除非另有明確規(guī)定,否則枚舉的項(xiàng)目列表并不意味著這些項(xiàng)目中的任何項(xiàng)目或所有項(xiàng)目是互斥的。除非另有明確規(guī)定,否則術(shù)語“一”、“一個(gè)”和“所述”指“一個(gè)或多個(gè)”。利用相互通信的若干組件描述一實(shí)施例并不意味著需要所有這些組件。相反,描述多種可選組件來說明本發(fā)明的許多種可能的實(shí)施例。雖然本文描述了單個(gè)設(shè)備或制品,但顯然可以使用不止一個(gè)設(shè)備/制品(不論它們是否協(xié)作)來代替單個(gè)設(shè)備/制品。類似地,雖然本文描述了不止一個(gè)設(shè)備或制品(不論它們是否協(xié)作),但顯然可以使用單個(gè)設(shè)備/制品來代替不止一個(gè)設(shè)備或制品,或者可以使用不同數(shù)量的設(shè)備/制品,而不是所示數(shù)量的設(shè)備或程序。設(shè)備的功能和/或特征可替代性地由沒有明確地描述為具有這種功能/特征的一個(gè)或多個(gè)其它設(shè)備來實(shí)施。因此,本發(fā)明的其它實(shí)施例不需要包括設(shè)備本身。圖3中所示出的操作示出了以某一順序發(fā)生的事件。在替代性實(shí)施例中,某些操作可以以不同順序執(zhí)行,修改或移除。此外,多個(gè)步驟可以添加到上面描述的邏輯并且仍然符合所描述的實(shí)施例。此外,本文描述的操作可按順序發(fā)生,或者某些操作可并行處理。又另外,操作可由單個(gè)處理單元或由分布式處理單元執(zhí)行。最后,出于可讀性和指導(dǎo)性的目的已經(jīng)主要選擇了說明書中使用的語言,并且該語言未被選擇成限定或限制本發(fā)明的主題。因此,本發(fā)明的范圍并非意在由這一詳細(xì)描述限制,而是由在基于本文的應(yīng)用上所附的任何權(quán)利要求限制。因此,本發(fā)明實(shí)施例旨在舉例說明,而非限制在所附權(quán)利要求中闡述的本發(fā)明范圍。盡管本文公開了多個(gè)方面和實(shí)施例,但是其它方面和實(shí)施例對于本領(lǐng)域技術(shù)人員來說應(yīng)該是顯而易見的。本文所公開的多個(gè)方面和實(shí)施例是出于說明性目的,而非限制性的,真實(shí)范圍由所附權(quán)利要求表征。參考編號參考編號描述100用戶設(shè)備102計(jì)劃優(yōu)化裝置104處理器106I/O界面108存儲器110a、110b……110n數(shù)據(jù)庫服務(wù)器200數(shù)據(jù)202查詢信息204查詢語句數(shù)據(jù)206計(jì)劃時(shí)間數(shù)據(jù)208計(jì)劃執(zhí)行時(shí)間數(shù)據(jù)210其它數(shù)據(jù)212模塊214接收模塊216計(jì)劃生成模塊218計(jì)劃優(yōu)化模塊220輸出模塊222其它模塊400計(jì)算機(jī)系統(tǒng)401I/O界面402處理器403網(wǎng)絡(luò)接口404存儲接口405存儲器406用戶界面407操作系統(tǒng)408網(wǎng)頁服務(wù)器409網(wǎng)絡(luò)410(a……n)數(shù)據(jù)庫411(a……n)用戶設(shè)備412輸入設(shè)備413輸出設(shè)備當(dāng)前第1頁1 2 3