两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于大數(shù)據(jù)的結(jié)構(gòu)化查詢的高效性能預(yù)測(cè)的方法和系統(tǒng)的制作方法

文檔序號(hào):10665803閱讀:426來(lái)源:國(guó)知局
用于大數(shù)據(jù)的結(jié)構(gòu)化查詢的高效性能預(yù)測(cè)的方法和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明涉及一種用于大數(shù)據(jù)的結(jié)構(gòu)化查詢的高效性能預(yù)測(cè)的方法和系統(tǒng)。所述系統(tǒng)包括:db模擬器模塊,其用于基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式創(chuàng)建模擬數(shù)據(jù)庫(kù)。執(zhí)行計(jì)劃生成模塊,其用于生成查詢的查詢執(zhí)行計(jì)劃。查詢分類(lèi)模塊,其用于基于運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為全表掃描、主索引掃描、快速索引掃描和非唯一索引掃描中的至少一個(gè)。時(shí)間確定模塊,其用于在模擬數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定輸入輸出(IO)訪問(wèn)時(shí)間和運(yùn)算時(shí)間。ERT預(yù)測(cè)模塊,其用于基于所述IO訪問(wèn)時(shí)間、所述運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間預(yù)測(cè)要在所述成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的所述ERT。
【專(zhuān)利說(shuō)明】
用于大數(shù)據(jù)的結(jié)構(gòu)化查詢的高效性能預(yù)測(cè)的方法和系統(tǒng)
[0001] 優(yōu)先權(quán)信息
[0002] 本專(zhuān)利申請(qǐng)要求于2014年11月14日提交的編號(hào)為3600/MUM/2014的印度專(zhuān)利 申請(qǐng)的優(yōu)先權(quán)。
技術(shù)領(lǐng)域
[0003] 本文中所描述的本公開(kāi)總體涉及一種數(shù)據(jù)庫(kù)管理系統(tǒng),并且更具體地,涉及用于 預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(elapsed response time)的數(shù)據(jù)庫(kù)管 理系統(tǒng)。
【背景技術(shù)】
[0004] 由于大量數(shù)據(jù),大數(shù)據(jù)范式已經(jīng)引發(fā)了應(yīng)用程序的具有影響力的性能。應(yīng)用程序 的性能已經(jīng)基于各種參數(shù)被評(píng)估。便于評(píng)估性能的一個(gè)關(guān)鍵參數(shù)是查詢的響應(yīng)時(shí)間。對(duì)于 結(jié)構(gòu)化數(shù)據(jù)庫(kù)應(yīng)用程序而言,查詢的響應(yīng)時(shí)間是針對(duì)部署在成品數(shù)據(jù)庫(kù)中的大量數(shù)據(jù)的子 集而測(cè)試的。普遍認(rèn)為,有時(shí)這樣的數(shù)據(jù)庫(kù)應(yīng)用程序中的響應(yīng)時(shí)間可能會(huì)隨數(shù)據(jù)量在一定 時(shí)間內(nèi)的增加而非線性地增加。響應(yīng)時(shí)間的非線性增加可能反過(guò)來(lái)會(huì)導(dǎo)致對(duì)提供給應(yīng)用程 序的用戶的性能保證構(gòu)成侵害。
[0005] 響應(yīng)時(shí)間的該非線性增加是因?yàn)楸挥糜跍y(cè)試查詢的常規(guī)測(cè)試技術(shù)而產(chǎn)生。常規(guī)測(cè) 試技術(shù)包括對(duì)大量數(shù)據(jù)的子集的查詢進(jìn)行測(cè)試。因此,為了使用常規(guī)測(cè)試技術(shù)來(lái)評(píng)估性能, 應(yīng)用程序可能需要各種資源,諸如能夠存儲(chǔ)數(shù)萬(wàn)億條記錄的存儲(chǔ)服務(wù)器。但是用于評(píng)估性 能的這種資源部署可能會(huì)導(dǎo)致產(chǎn)生巨大成本。此外,即使資源被布置,針對(duì)大量數(shù)據(jù)的查詢 的測(cè)試可能增加評(píng)估時(shí)間,且因此延遲應(yīng)用程序的部署。
[0006] 為了克服上述的缺陷,已經(jīng)在本領(lǐng)域提出了基于各種統(tǒng)計(jì)機(jī)器學(xué)習(xí)的模型,其使 用過(guò)去的查詢創(chuàng)建學(xué)習(xí)基礎(chǔ),且然后基于最鄰近方法預(yù)測(cè)查詢的響應(yīng)時(shí)間。但這樣的模型 不能隨數(shù)據(jù)量在一定時(shí)間內(nèi)的線性增加而精確預(yù)測(cè)查詢的響應(yīng)時(shí)間。

【發(fā)明內(nèi)容】

[0007] 在描述本發(fā)明的系統(tǒng)和方法之前,應(yīng)理解,本申請(qǐng)不限于所描述的特定系統(tǒng)和方 法,因?yàn)槌嗽诒竟_(kāi)中明確示出之外,可以存在多個(gè)可能的實(shí)施例。也應(yīng)理解,在說(shuō)明書(shū) 中使用的術(shù)語(yǔ)僅是為了描述具體形式或?qū)嵤├哪康?,并且不旨在限制本申?qǐng)的范圍。本

【發(fā)明內(nèi)容】
被提供以介紹與用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT) 的系統(tǒng)和方法相關(guān)的概念且所述概念將在下面的【具體實(shí)施方式】中被進(jìn)一步描述。本發(fā)明內(nèi) 容不旨在標(biāo)識(shí):本公開(kāi)的必要特征不旨在用于確定或限制本公開(kāi)的范圍。
[0008] 在一個(gè)實(shí)施方式中,公開(kāi)了一種用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響 應(yīng)時(shí)間(ERT)的系統(tǒng)。在一個(gè)方面,系統(tǒng)可包括處理器和耦接到處理器的存儲(chǔ)器。處理器 可執(zhí)行存在于存儲(chǔ)器中的多個(gè)模塊。多個(gè)模塊還可包括db模擬器模塊、執(zhí)行計(jì)劃生成模 塊、時(shí)間確定模塊和ERT預(yù)測(cè)模塊。db模擬器模塊可基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo) 出的空模式在開(kāi)發(fā)環(huán)境中創(chuàng)建對(duì)應(yīng)于成品數(shù)據(jù)庫(kù)的模擬數(shù)據(jù)庫(kù)。執(zhí)行計(jì)劃生成模塊可基于 模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí)行計(jì)劃。查詢執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查 詢的一個(gè)或多個(gè)子查詢。在一個(gè)方面,每個(gè)子查詢可與運(yùn)算參數(shù)相關(guān)聯(lián)。查詢分類(lèi)模塊可 基于運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一種類(lèi)型的掃描。掃描類(lèi)型的實(shí)例可包括但不限于 全表掃描、主索引掃描、快速索引掃描和非唯一索引掃描。時(shí)間確定模塊可在存在于開(kāi)發(fā)環(huán) 境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng)于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間 和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。10訪問(wèn)時(shí)間可基于分類(lèi)而預(yù)測(cè)。運(yùn)算時(shí)間可基于存在 于每個(gè)子查詢中的一個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè)。ERT預(yù)測(cè)模塊可基于對(duì)應(yīng)于每個(gè)子查詢的10 訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的 ERT。網(wǎng)絡(luò)時(shí)間表示在通過(guò)網(wǎng)絡(luò)發(fā)送執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。
[0009] 在另一實(shí)施方式中,一種用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間 (ERT)的方法,為了預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的ERT,首先基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì) 信息導(dǎo)出的空模式在開(kāi)發(fā)環(huán)境中創(chuàng)建對(duì)應(yīng)于成品數(shù)據(jù)庫(kù)的模擬數(shù)據(jù)庫(kù)。在創(chuàng)建模擬數(shù)據(jù)庫(kù) 后,可基于模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí)行計(jì)劃。查詢執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí) 行的查詢的一個(gè)或多個(gè)子查詢。在一個(gè)方面,每個(gè)子查詢可與運(yùn)算參數(shù)相關(guān)聯(lián)。在生成查 詢執(zhí)行計(jì)劃之后,可基于運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一種類(lèi)型的掃描。掃描類(lèi)型的 實(shí)例可包括但不限于全表掃描、主索引掃描、快速索引掃描和非唯一索引掃描。在每個(gè)子查 詢的分類(lèi)之后,可在存在于開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng)于每個(gè) 子查詢的輸入輸出(10)訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。在一個(gè)方面,10訪問(wèn) 時(shí)間可基于分類(lèi)而預(yù)測(cè)。在一個(gè)方面,運(yùn)算時(shí)間可基于存在于每個(gè)子查詢中的一個(gè)或多個(gè) 運(yùn)算符而預(yù)測(cè)。一旦10訪問(wèn)時(shí)間和運(yùn)算時(shí)間被確定,要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的ERT 可基于對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間而預(yù) 測(cè)。網(wǎng)絡(luò)時(shí)間表示通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。在一個(gè)方 面,用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的ERT的上述方法可通過(guò)使用存儲(chǔ)在存儲(chǔ)器中 的編程指令的處理器進(jìn)行。
[0010] 在另一實(shí)施方式中,一種包含可在用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝 響應(yīng)時(shí)間(ERT)的計(jì)算裝置中可執(zhí)行的程序的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì)。程序包括用于基 于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式在開(kāi)發(fā)環(huán)境中創(chuàng)建對(duì)應(yīng)于成品數(shù)據(jù)庫(kù)的模 擬數(shù)據(jù)庫(kù)的程序代碼。程序還可包括程序代碼,其用于基于模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí) 行計(jì)劃。查詢執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的一個(gè)或多個(gè)子查詢。在一個(gè)方 面,每個(gè)子查詢可與運(yùn)算參數(shù)相關(guān)聯(lián)。程序還可包括程序代碼,其用于基于運(yùn)算參數(shù)將每個(gè) 子查詢分類(lèi)為至少一種類(lèi)型的掃描。掃描類(lèi)型的實(shí)例可包括但不限于全表掃描、主索引掃 描、快速索引掃描和非唯一索引掃描。程序還可包括程序代碼,其用于在存在于開(kāi)發(fā)環(huán)境中 的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng)于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間,和 對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。10訪問(wèn)時(shí)間可基于分類(lèi)而預(yù)測(cè)。運(yùn)算時(shí)間可基于存在于每 個(gè)子查詢中的一個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè)。程序還可包括程序代碼,其用于基于對(duì)應(yīng)于每個(gè) 子查詢的10訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí) 行的查詢的ERT。網(wǎng)絡(luò)時(shí)間表示通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí) 間。
【附圖說(shuō)明】
[0011] 當(dāng)結(jié)合附圖閱讀時(shí),可更好地理解實(shí)施例的前述詳細(xì)描述。為了說(shuō)明本公開(kāi)的目 的,在本公開(kāi)的本文檔示例結(jié)構(gòu)示出;然而,本公開(kāi)不限于本文檔和附圖中公開(kāi)的具體方法 和設(shè)備。
[0012] 參照附圖描述【具體實(shí)施方式】。在圖中,參考號(hào)最左邊的數(shù)字標(biāo)識(shí)附圖標(biāo)記首次出 現(xiàn)的附圖。相同數(shù)字用于在整個(gè)附圖中來(lái)指相同特征和組件。
[0013] 圖1示出根據(jù)本公開(kāi)的實(shí)施例的用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝 響應(yīng)時(shí)間(ERT)的系統(tǒng)的網(wǎng)絡(luò)實(shí)施方式。
[0014] 圖2示出根據(jù)本公開(kāi)的實(shí)施例的系統(tǒng),。
[0015] 圖3示出根據(jù)本公開(kāi)的實(shí)施例的實(shí)例。
[0016] 圖4和圖5示出根據(jù)本公開(kāi)的實(shí)施例的用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的 ERT的方法。
【具體實(shí)施方式】
[0017] 現(xiàn)在將詳細(xì)地討論示出其所有功能的本公開(kāi)的一些實(shí)施例。詞"包括"、"具有"、 "包含"和"包括",及其其它形式旨在指在意思上是等同的且其開(kāi)放度結(jié)束于以下情況:這 些詞中的任何一個(gè)后面跟隨的一個(gè)項(xiàng)目或多個(gè)項(xiàng)目不意味著是該項(xiàng)目或這些項(xiàng)目的窮舉 列表,或意味著被限于僅列出的一個(gè)或多個(gè)項(xiàng)目的窮舉列表。還必須注意,如本文和所附權(quán) 利要求書(shū)中所使用的,除非上下文另有明確說(shuō)明,否則單數(shù)形式"a"、"an"、和"the"包括復(fù) 數(shù)引用。雖然類(lèi)似或等同于本文描述的那些的任何系統(tǒng)和方法可在實(shí)踐中或在本公開(kāi)的實(shí) 施例的測(cè)試中使用,但是現(xiàn)在描述示例性系統(tǒng)和方法。所公開(kāi)的實(shí)施例僅僅是本公開(kāi)的示 例,其可以各種形式來(lái)體現(xiàn)。
[0018] 實(shí)施例的各種修改將對(duì)于本領(lǐng)域技術(shù)人員是顯而易見(jiàn)的且這里的一般原理可應(yīng) 用于其它實(shí)施例。然而,本領(lǐng)域的普通技術(shù)人員將容易認(rèn)識(shí)到,本公開(kāi)不旨在被限于所說(shuō)明 的實(shí)施例,而是應(yīng)被賦予與本文中所描述的原理和特征一致的最廣范圍。
[0019] 描述用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的系統(tǒng)和方 法。為了預(yù)測(cè)ERT,本公開(kāi)解釋基于空模式在開(kāi)發(fā)環(huán)境中創(chuàng)建模擬數(shù)據(jù)庫(kù)的直覺(jué)方法。在一 個(gè)方面,模擬數(shù)據(jù)庫(kù)可通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息來(lái)創(chuàng)建。系統(tǒng)通過(guò)線性外推對(duì)數(shù)據(jù)量 敏感的統(tǒng)計(jì)信息來(lái)模擬大型數(shù)據(jù)庫(kù)。統(tǒng)計(jì)信息的實(shí)例可包括表、塊、索引塊和數(shù)據(jù)值。應(yīng)理 解,ERT可取決于數(shù)據(jù)庫(kù)的性能、數(shù)據(jù)庫(kù)的相對(duì)大小、數(shù)據(jù)量、對(duì)數(shù)據(jù)庫(kù)運(yùn)算符(諸如join) 有效的存儲(chǔ)器的相對(duì)大小、查詢?cè)O(shè)計(jì)、數(shù)據(jù)庫(kù)模式和查詢執(zhí)行計(jì)劃。在所有的上述各項(xiàng)中, 查詢執(zhí)行計(jì)劃、數(shù)據(jù)庫(kù)的相對(duì)大小,和存儲(chǔ)器的相對(duì)大小可隨數(shù)據(jù)量的增加而改變。
[0020] -旦創(chuàng)建了模擬數(shù)據(jù)庫(kù),系統(tǒng)還基于模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí)行計(jì)劃。查詢 執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的一個(gè)或多個(gè)子查詢。每個(gè)子查詢與運(yùn)算參數(shù) 相關(guān)聯(lián)。運(yùn)算參數(shù)的實(shí)例可包括但不限于表、訪問(wèn)的模式、基數(shù)、輸出大小、成本(cost),和 輸入輸出成本(Input Output cost)。在生成查詢執(zhí)行計(jì)劃之后,每個(gè)子查詢可基于運(yùn)算參 數(shù)而分類(lèi)。一方面,每個(gè)子查詢可被分類(lèi)為至少一種類(lèi)型的掃描。掃描類(lèi)型的實(shí)例可包括 但不限于,基于表中的數(shù)據(jù)訪問(wèn)模式的全表掃描、快速索引掃描、主索引掃描和非唯一索引 掃描。此外,每個(gè)子查詢可在存在于開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行以確定對(duì)應(yīng)于每個(gè)子 查詢的輸入輸出(10)訪問(wèn)時(shí)間,和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。
[0021] 由于系統(tǒng)可能具有一些網(wǎng)絡(luò)延遲時(shí)間以通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索 的數(shù)據(jù),所以查詢的ERT可基于對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢的運(yùn) 算時(shí)間和網(wǎng)絡(luò)時(shí)間的總和而預(yù)測(cè)。一方面,查詢的ERT可通過(guò)合計(jì)對(duì)應(yīng)于每個(gè)子查詢的10 訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間以便確定預(yù)測(cè)的子查詢執(zhí)行時(shí)間和預(yù)測(cè)的子查 詢執(zhí)行時(shí)間和網(wǎng)絡(luò)時(shí)間從而確定ERT來(lái)進(jìn)行預(yù)測(cè)。預(yù)測(cè)ERT的公式是
[0022]
CD
[0023] 在一個(gè)方面,系統(tǒng)還限定用于要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的性能基準(zhǔn)值。性能 基準(zhǔn)值可基于ERT、預(yù)測(cè)的子查詢執(zhí)行時(shí)間、輸入輸出成本、邏輯讀取、物理讀取、基數(shù),和輸 出大小而限定。
[0024] 雖然所述的用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的系 統(tǒng)和方法可在任何數(shù)量的不同的計(jì)算系統(tǒng)、環(huán)境,和/或配置中實(shí)施,但是在下面的示例性 系統(tǒng)的上下文中描述這些實(shí)施例。
[0025] 現(xiàn)在參考圖1,公開(kāi)了用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間 (ERT)的系統(tǒng)(以下稱(chēng)為系統(tǒng)102)的網(wǎng)絡(luò)實(shí)施方式100。在一個(gè)實(shí)施例中,系統(tǒng)102基于 通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式而在開(kāi)發(fā)環(huán)境中創(chuàng)建模擬數(shù)據(jù)庫(kù)。在創(chuàng)建模擬 數(shù)據(jù)庫(kù)后,系統(tǒng)102基于模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí)行計(jì)劃。在生成查詢執(zhí)行計(jì)劃之后, 系統(tǒng)102基于運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為全表掃描、主索引掃描、快速索引掃描和非唯 一索引掃描中的至少一個(gè)。在每個(gè)子查詢的分類(lèi)之后,系統(tǒng)102在存在于開(kāi)發(fā)環(huán)境中的測(cè) 試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng)于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間和運(yùn)算時(shí) 間。一旦10訪問(wèn)時(shí)間和運(yùn)算時(shí)間被確定,系統(tǒng)102基于10訪問(wèn)時(shí)間、運(yùn)算時(shí)間,和網(wǎng)絡(luò)時(shí) 間預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)執(zhí)行的查詢的ERT。網(wǎng)絡(luò)時(shí)間表示通過(guò)網(wǎng)絡(luò)傳輸在執(zhí)行每個(gè)子查詢 時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。
[0026] 雖然本公開(kāi)是考慮到系統(tǒng)102在服務(wù)器上實(shí)施而解釋的,但是應(yīng)理解,系統(tǒng)102還 可在各種計(jì)算系統(tǒng)(諸如膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī),筆記本計(jì)算機(jī)、工作站、大型計(jì)算機(jī)、 服務(wù)器、網(wǎng)絡(luò)服務(wù)器,基于云的計(jì)算環(huán)境)中實(shí)施。應(yīng)理解,系統(tǒng)102可通過(guò)一個(gè)或多個(gè)用 戶裝置104-1、104-2. .. 104-N(以下統(tǒng)稱(chēng)為用戶裝置104),或駐留在用戶裝置104中的應(yīng)用 程序由多個(gè)用戶訪問(wèn)。在一個(gè)實(shí)施方式中,系統(tǒng)102可包括基于云的計(jì)算環(huán)境,其中用戶可 操作被配置為執(zhí)行位于遠(yuǎn)程的應(yīng)用程序的個(gè)人計(jì)算系統(tǒng)。用戶裝置104的實(shí)例可包括但不 限于便攜式計(jì)算機(jī)、個(gè)人數(shù)字助理、手持式裝置和工作站。用戶裝置104通過(guò)網(wǎng)絡(luò)106通信 地耦接至系統(tǒng)102。
[0027] 在一個(gè)實(shí)施方式中,網(wǎng)絡(luò)106可以是無(wú)線網(wǎng)絡(luò)、有線網(wǎng)絡(luò)或其組合。網(wǎng)絡(luò)106可作 為不同類(lèi)型的網(wǎng)絡(luò)(諸如內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng),等)中的一個(gè)來(lái)實(shí) 施。網(wǎng)絡(luò)106可以是專(zhuān)用網(wǎng)絡(luò)或共享網(wǎng)絡(luò)。共享網(wǎng)絡(luò)代表使用各種協(xié)議(例如超文本傳輸 協(xié)議(HTTP)、傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議(TCP/IP)、無(wú)線應(yīng)用協(xié)議(WAP)等)的不同類(lèi)型 的網(wǎng)絡(luò)的聯(lián)合以彼此通信。網(wǎng)絡(luò)106還可包括各種網(wǎng)絡(luò)裝置,包括路由器、網(wǎng)橋、服務(wù)器、計(jì) 算裝置、存儲(chǔ)裝置等。
[0028] 現(xiàn)在參考圖2,示出根據(jù)本公開(kāi)的實(shí)施例的系統(tǒng)102。在一個(gè)實(shí)施例中,系統(tǒng)102可 包括至少一個(gè)處理器202、輸入/輸出(I/O)接口 204和存儲(chǔ)器206。至少一個(gè)處理器202 可被實(shí)施為一個(gè)或多個(gè)微處理器、微型計(jì)算機(jī)、微控制器、數(shù)字信號(hào)處理器、中央處理單元、 狀態(tài)機(jī)、邏輯電路系統(tǒng),和/或基于運(yùn)算指令操縱信號(hào)的任何裝置。其它功能中,至少一個(gè) 處理器202被配置為讀取并執(zhí)行存儲(chǔ)在存儲(chǔ)器206中的計(jì)算機(jī)可讀指令。
[0029] I/O接口 204可包括各種軟件和硬件接口,例如,網(wǎng)絡(luò)接口、圖形用戶界面等。I/O 接口 204可允許系統(tǒng)102直接或通過(guò)客戶端裝置104與用戶進(jìn)行交互。此外,I/O接口 204 可使系統(tǒng)102與其它計(jì)算裝置(諸如網(wǎng)絡(luò)服務(wù)器和外部數(shù)據(jù)服務(wù)器(未示出))進(jìn)行通信。 I/O接口 204可促進(jìn)各種網(wǎng)絡(luò)和協(xié)議類(lèi)型(包括有線網(wǎng)絡(luò)(例如,LAN、電纜等)和無(wú)線網(wǎng) 絡(luò)(諸如WLAN、蜂窩,或衛(wèi)星))內(nèi)的多個(gè)通信。I/O接口 204可包括用于將多個(gè)裝置彼此 連接或連接到另一個(gè)服務(wù)器的一個(gè)或多個(gè)端口。
[0030] 存儲(chǔ)器206可包括本領(lǐng)域中已知的任何計(jì)算機(jī)可讀介質(zhì)和計(jì)算機(jī)程序產(chǎn)品,例 如,易失性存儲(chǔ)器(諸如靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)和動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)),和/ 或非易失性存儲(chǔ)器(諸如只讀存儲(chǔ)器(R0M)、可擦可編程R0M、閃速存儲(chǔ)器、硬盤(pán)、光盤(pán)和磁 帶)。存儲(chǔ)器206可包括模塊208和數(shù)據(jù)210。
[0031] 模塊208包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)等,它們執(zhí)行特定任務(wù)或?qū)嵤┨囟?抽象數(shù)據(jù)類(lèi)型。在一個(gè)實(shí)施方式中,模塊208可包括db模擬器模塊212、執(zhí)行計(jì)劃生成模塊 214、查詢分類(lèi)模塊216、時(shí)間確定模塊218、ERT預(yù)測(cè)模塊220、基準(zhǔn)代理模塊222和其它模 塊224。其它模塊224可包括補(bǔ)充系統(tǒng)102的應(yīng)用和功能的程序或代碼指令。這里描述的 模塊208可作為可以在系統(tǒng)102的基于云計(jì)算環(huán)境中執(zhí)行的軟件模塊而實(shí)施。
[0032] 數(shù)據(jù)210 (除其它事項(xiàng)外)充當(dāng)用于存儲(chǔ)由一個(gè)或多個(gè)模塊208處理、接收以及生 成的數(shù)據(jù)的知識(shí)庫(kù)。數(shù)據(jù)210還可包括模擬數(shù)據(jù)庫(kù)226、測(cè)試數(shù)據(jù)庫(kù)227,和其它數(shù)據(jù)228。 其它數(shù)據(jù)228可包括在其它模塊224中的一個(gè)或多個(gè)模塊的執(zhí)行的結(jié)果而產(chǎn)生的數(shù)據(jù)。
[0033] 在一個(gè)實(shí)施方式中,首先,用戶可使用客戶端裝置104以經(jīng)由I/O接口 204來(lái)訪問(wèn) 系統(tǒng)102。用戶可使用I/O接口 204注冊(cè)他們本身以便使用系統(tǒng)102。一方面,用戶可訪問(wèn) 系統(tǒng)102的I/O接口 204以便預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)。 為了預(yù)測(cè)ERT,系統(tǒng)102可采用多個(gè)模塊,即db模擬器模塊212、執(zhí)行計(jì)劃生成模塊214、查 詢分類(lèi)模塊216、時(shí)間確定模塊218、ERT預(yù)測(cè)模塊220和基準(zhǔn)代理模塊222。下面描述多個(gè) 模塊的詳細(xì)工作。
[0034] 進(jìn)一步參考圖2,應(yīng)理解,成品數(shù)據(jù)庫(kù)可包括大量的數(shù)據(jù)。由于成品數(shù)據(jù)庫(kù)包含大 量的數(shù)據(jù),所以預(yù)測(cè)查詢的ERT可能是在包含大量數(shù)據(jù)的成品數(shù)據(jù)庫(kù)上執(zhí)行查詢時(shí)消耗的 時(shí)間??梢赃M(jìn)一步理解,ERT可取決于數(shù)據(jù)庫(kù)的性能、數(shù)據(jù)庫(kù)的相對(duì)大小、和對(duì)數(shù)據(jù)庫(kù)運(yùn)算符 (諸如join)有效的存儲(chǔ)器的相對(duì)大小、查詢?cè)O(shè)計(jì)、數(shù)據(jù)庫(kù)模式和查詢執(zhí)行計(jì)劃。在所有的 上述各項(xiàng)中,查詢執(zhí)行計(jì)劃、數(shù)據(jù)庫(kù)的相對(duì)的存儲(chǔ)器大小,和對(duì)數(shù)據(jù)庫(kù)運(yùn)算符有效的相對(duì)的 存儲(chǔ)器大小對(duì)數(shù)據(jù)庫(kù)產(chǎn)生主要影響且進(jìn)一步隨數(shù)據(jù)量的增加而改變。為了預(yù)測(cè)ERT,db模 擬器模塊212基于空模式在開(kāi)發(fā)環(huán)境中創(chuàng)建模擬數(shù)據(jù)庫(kù)226。模擬數(shù)據(jù)庫(kù)226內(nèi)容較少但 有利于基于統(tǒng)計(jì)信息生成查詢執(zhí)行計(jì)劃。一方面,空模式可通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息 來(lái)導(dǎo)出。統(tǒng)計(jì)信息的實(shí)例可包括但不限于表、塊、索引塊和數(shù)據(jù)值。
[0035] 在模擬數(shù)據(jù)庫(kù)226的生成之后,執(zhí)行計(jì)劃生成模塊214基于模擬數(shù)據(jù)庫(kù)生成查詢 的查詢執(zhí)行計(jì)劃。執(zhí)行計(jì)劃生成模塊214使用模擬數(shù)據(jù)庫(kù)的表、索引和列來(lái)生成查詢執(zhí)行 計(jì)劃。查詢執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的一個(gè)或多個(gè)子查詢,其中一個(gè)或 多個(gè)子查詢被整理以導(dǎo)出查詢。每個(gè)子查詢?cè)诒尘爸斜华?dú)立地執(zhí)行以從成品數(shù)據(jù)庫(kù)中檢索 各自數(shù)據(jù)。一方面,每個(gè)子查詢可與運(yùn)算參數(shù)相關(guān)聯(lián)。運(yùn)算參數(shù)可包括但不限于表、訪問(wèn)的 模式、基數(shù)、輸出大小,和輸入輸出成本。
[0036] 在一個(gè)實(shí)施例中,基數(shù)表示執(zhí)行查詢時(shí)返回的行數(shù)。基數(shù)進(jìn)一步從一個(gè)步驟到其 后繼步驟確定輸出的大小。在一個(gè)實(shí)例中,考慮查詢?nèi)缦拢?br>[0037] Select sum(s_acctbal)from supplier where s_suppkey = ps_suppkey··· (1)
[0038] 由執(zhí)行計(jì)劃生成模塊214生成的用于上述查詢(1)的執(zhí)行計(jì)劃示于圖3?;?查詢(1),可理解,查詢(1)被推導(dǎo)以便從兩個(gè)表(即"供應(yīng)商"和"part SUpp_sk")檢索 "account balance"的"sum"(賬戶結(jié)余的和),其中存在于"供應(yīng)商"("supplier")中的 "suppkey"(主鍵)等同于存在于"partsupp_sk"的"ps_suppkey"(外鍵)。為了生成查 詢執(zhí)行計(jì)劃,執(zhí)行計(jì)劃生成模塊214確定存在于查詢(1)中的一個(gè)或多個(gè)子查詢。存在于 查詢(1)中的一個(gè)或多個(gè)子查詢與選擇指令、檢索的數(shù)據(jù)(sum)的合計(jì),和與表相關(guān)聯(lián)的嵌 套循環(huán)(即"supplier"( "供應(yīng)商")中的全表掃描和"partsupp_sk"中的索引范圍掃描) 相關(guān)聯(lián)。
[0039] 在一個(gè)實(shí)施例中,在生成查詢執(zhí)行計(jì)劃之后,執(zhí)行計(jì)劃生成模塊214將每個(gè)子查 詢映射到等同的獨(dú)立查詢。一方面,在子查詢的執(zhí)行滿足至少一個(gè)以下提到的參數(shù)時(shí),每個(gè) 映射后的子查詢視為等同于查詢的相應(yīng)子查詢。
[0040] a)執(zhí)行時(shí)間相同。
[0041 ] b)相同數(shù)量的輸出行。
[0042] c)相同數(shù)量的邏輯讀取和物理讀取。
[0043] 例如,考慮與前述相同的查詢(1)。查詢(1)可被映射為兩個(gè)子查詢,即
[0044] <select/*+FULL*/s_acctbal,s_suppkey from supplier〉 (2),和
[0045] <select/*+index(partsupp_sk)*/count(*)from partsupp whereps_suppkey>0> (3)
[0046] 在一個(gè)實(shí)施例中,執(zhí)行計(jì)劃生成模塊214不會(huì)將哈希連接(hash join)查詢/步驟 分裂為單獨(dú)的獨(dú)立查詢,而是將其它與它的兩個(gè)表("supplier、"供應(yīng)商"),"partsUpp_ sk")保持完整,并將它傳遞到查詢分類(lèi)模塊216。
[0047] 查詢分類(lèi)模塊216基于運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一個(gè)類(lèi)型的掃描。掃描 類(lèi)型的實(shí)例可包括但不限于全表掃描、主索引掃描、快速掃描索引和非唯一索引掃描。在一 個(gè)方面中,每個(gè)子查詢可被分類(lèi)以確定對(duì)應(yīng)于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間和對(duì) 應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。在一個(gè)實(shí)施例中,查詢分類(lèi)模塊216基于影響從磁盤(pán)、操作系 統(tǒng)高速緩存或數(shù)據(jù)庫(kù)高速緩存檢索的數(shù)據(jù)的10訪問(wèn)時(shí)間的數(shù)據(jù)訪問(wèn)模式對(duì)每個(gè)子查詢進(jìn) 行分類(lèi)。為了確定對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間,時(shí)間確定模塊218基于分類(lèi)在模擬數(shù) 據(jù)庫(kù)226執(zhí)行每個(gè)子查詢。應(yīng)注意,10訪問(wèn)時(shí)間可基于印度專(zhuān)利申請(qǐng)2853/MUM/2013中公 開(kāi)的方法/技術(shù)而確定,所述專(zhuān)利申請(qǐng)作為參考而并入。
[0048] 在從磁盤(pán)、操作系統(tǒng)緩存或數(shù)據(jù)庫(kù)緩存檢索數(shù)據(jù)時(shí),時(shí)間確定模塊218可進(jìn)一步 識(shí)別影響運(yùn)算時(shí)間且存在于每個(gè)子查詢中的一個(gè)或多個(gè)運(yùn)算符。一個(gè)或多個(gè)運(yùn)算符的實(shí) 例可包括但不限于Aggregate (合計(jì))、Hash (哈希)、Nested (嵌套)、Sort (排序)、Merge and Hash(合并及哈希)。一旦識(shí)別了一個(gè)或多個(gè)運(yùn)算符,時(shí)間確定模塊218就在存在于開(kāi) 發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)227上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。
[0049] 在一個(gè)實(shí)例中,考慮一個(gè)查詢(其與兩個(gè)表(1\和T 2)相關(guān)聯(lián))包括"排序"和"合 并"運(yùn)算符。在大數(shù)據(jù)量'L'上的排序-合并聯(lián)合執(zhí)行時(shí)間是從兩個(gè)表TJPT 2返回的行的 排序時(shí)間。如公式1所示,排序時(shí)間由(SIYT1)和(SIYT2)表示,其包括它們的訪問(wèn)時(shí)間和排 序后的行的合#時(shí)_
[0050]
[0051] 在一方面,合并時(shí)間相對(duì)于合并行數(shù)是線性關(guān)系的且從小數(shù)據(jù)量的合并時(shí)間 (MTS)線性地外推。如果為了排序而從表訪問(wèn)的行數(shù)相對(duì)于數(shù)據(jù)量是不變的,那么聯(lián)合執(zhí)行 時(shí)間相對(duì)于數(shù)據(jù)量的增加將是線性的。排序時(shí)間是線性的,除非它在磁盤(pán)溢出。在磁盤(pán)上 溢出的運(yùn)算數(shù)量取決于排序的執(zhí)行,所以與模擬數(shù)據(jù)庫(kù)226相關(guān)聯(lián)的成本可估計(jì)運(yùn)算時(shí)間 而考慮。數(shù)據(jù)量'L'的'排序'運(yùn)算成本(SCJ被計(jì)算為排序運(yùn)算成本和表訪問(wèn)之間的差 值。同樣地,這可針對(duì)小數(shù)據(jù)量'S'而計(jì)算。
[0052] 在另一實(shí)例中,考慮一個(gè)查詢(其與兩個(gè)表(TJPT2)相關(guān)聯(lián))包括'Nested Loop Join'(嵌套循環(huán)聯(lián)接)運(yùn)算符。嵌套循環(huán)聯(lián)接的執(zhí)行時(shí)間(NLTJ取決于第一表的1\、訪問(wèn) 時(shí)間、從第一表0\)過(guò)濾的行數(shù)和第二表(T 2)的重復(fù)索引掃描訪問(wèn)時(shí)間,其中第二表(T2) 中的訪問(wèn)模式由從第一表0\)返回的值驅(qū)動(dòng)。對(duì)于從1\返回的行數(shù)(N R_以及用于 嵌套聯(lián)接(Νο?Υ)的匹配運(yùn)算的時(shí)間,尺寸'L'下的執(zhí)行時(shí)間(NLIY)是對(duì)應(yīng)于1\(10')和 Τ2(Ι0τ\)的10訪問(wèn)時(shí)間的總和。最后一個(gè)分量為了統(tǒng)一數(shù)據(jù)增長(zhǎng)可線性外推。在一個(gè)方 面,執(zhí)行時(shí)間(NLTJ可通過(guò)使用如下所述的公式2確定:
[0053]
[0054] 因此,以此方式,時(shí)間確定模塊218確定每個(gè)子查詢的10訪問(wèn)時(shí)間和運(yùn)算時(shí)間。
[0055] 在對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間的確定之 后,ERT預(yù)測(cè)模塊220預(yù)測(cè)將要在存在于生產(chǎn)環(huán)境中的成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的ERT。ERT 預(yù)測(cè)模塊220可基于對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間和網(wǎng) 絡(luò)時(shí)間預(yù)測(cè)ERT。在一個(gè)方面,網(wǎng)絡(luò)時(shí)間是指通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù) 據(jù)所需要的時(shí)間。在一個(gè)實(shí)施例中,對(duì)應(yīng)于查詢的網(wǎng)絡(luò)時(shí)間可取決于在執(zhí)行查詢時(shí)檢索的 數(shù)據(jù)量,其中所述數(shù)據(jù)量表示行數(shù)和輸出行的大小的乘積(即,行數(shù)*輸出行的大?。?。在 一個(gè)實(shí)施例中,ERT預(yù)測(cè)模塊220通過(guò)合計(jì)對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè) 子查詢的運(yùn)算時(shí)間以確定預(yù)測(cè)的子查詢執(zhí)行時(shí)間從而聚集預(yù)測(cè)的子查詢執(zhí)行時(shí)間和網(wǎng)絡(luò) 時(shí)間以確定ERT來(lái)預(yù)測(cè)ERT。在統(tǒng)計(jì)表達(dá)式中,ERT預(yù)測(cè)模塊220通過(guò)使用下述公式預(yù)測(cè) ERT :
[0056] ERT =網(wǎng)絡(luò)時(shí)間+Σ預(yù)測(cè)子查詢執(zhí)行時(shí)間(4)
[0057] 在一個(gè)實(shí)施例中,基準(zhǔn)代理模塊222可限定用于在生產(chǎn)環(huán)境中執(zhí)行的查詢的性能 基準(zhǔn)值。性能基準(zhǔn)值是基于ERT、預(yù)測(cè)的子查詢執(zhí)行時(shí)間、10成本、邏輯讀取、物理讀取、基 數(shù)和輸出大小而限定的。因此,以此方式,上述方法有利于預(yù)測(cè)要在包含大量數(shù)據(jù)的成品數(shù) 據(jù)庫(kù)中執(zhí)行查詢的ERT。
[0058] 現(xiàn)在參考圖4,示出一種根據(jù)本公開(kāi)的實(shí)施例的用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行 的查詢的消逝響應(yīng)時(shí)間(ERT)的方法400。方法400可在計(jì)算機(jī)可執(zhí)行指令的一般上下文 中描述。通常,計(jì)算機(jī)可執(zhí)行指令可包括例程、程序、對(duì)象、組件、數(shù)據(jù)結(jié)構(gòu)、過(guò)程、模塊、功能 等,它們執(zhí)行特定函數(shù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類(lèi)型。方法400可在其中由通過(guò)通信網(wǎng)絡(luò)鏈接 的遠(yuǎn)程處理裝置執(zhí)行函數(shù)的分布式計(jì)算環(huán)境中實(shí)踐。在分布式計(jì)算環(huán)境中,計(jì)算機(jī)可執(zhí)行 指令可位于本地和遠(yuǎn)程計(jì)算機(jī)存儲(chǔ)介質(zhì)(包括存儲(chǔ)器存儲(chǔ)裝置)中。
[0059] 描述方法400的順序不旨在被解釋為限制,且任何數(shù)量的所述方法框可按任何順 序組合來(lái)實(shí)施方法400或替代方法。此外,在不偏離本文所描述的本公開(kāi)的精神和范圍的 情況下,各個(gè)塊可從方法400中刪除。此外,方法可在任何合適的硬件、軟件、固件,或其組 合來(lái)實(shí)施。然而,為了便于解釋?zhuān)谝韵旅枋龅膶?shí)施例中,方法400可被認(rèn)為如上所述在系 統(tǒng)102中實(shí)施。
[0060] 在塊402中,可基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式在開(kāi)發(fā)環(huán)境中創(chuàng) 建模擬數(shù)據(jù)庫(kù)。在一個(gè)實(shí)施方式中,模擬數(shù)據(jù)庫(kù)可由db模擬器模塊212創(chuàng)建。
[0061 ] 在塊404中,可基于所述模擬數(shù)據(jù)庫(kù)生成查詢的查詢執(zhí)行計(jì)劃。在一個(gè)方面,查詢 執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的一個(gè)或多個(gè)子查詢。在一個(gè)方面,每個(gè)子查 詢可包括可與運(yùn)算參數(shù)相關(guān)聯(lián)。在一個(gè)實(shí)施方式中,查詢的查詢執(zhí)行計(jì)劃可由執(zhí)行計(jì)劃生 成模塊214生成。
[0062] 在塊406中,每個(gè)子查詢可基于運(yùn)算參數(shù)被分類(lèi)為至少一個(gè)類(lèi)型的掃描。掃描類(lèi) 型的實(shí)例可包括但不限于全表掃描、主索引掃描、快速索引掃描和非唯一索引掃描。在一個(gè) 實(shí)施方式中,每個(gè)子查詢可由查詢分類(lèi)模塊216分類(lèi)。
[0063] 在塊408中,每個(gè)子查詢可在存在于開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行以確定對(duì)應(yīng) 于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間,和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間。在一個(gè)方面, 對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間可基于分類(lèi)而預(yù)測(cè)。在一個(gè)方面,對(duì)應(yīng)于每個(gè)子查詢時(shí)間 的運(yùn)算符可基于存在于每個(gè)子查詢中的一個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè)。在一個(gè)實(shí)施方式中,每 個(gè)子查詢可由時(shí)間確定模塊218執(zhí)行。
[0064] 在塊410中,要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的ERT可基于對(duì)應(yīng)于每個(gè)子查詢的10 訪問(wèn)時(shí)間、對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間,和網(wǎng)絡(luò)時(shí)間而預(yù)測(cè)。在一個(gè)方面,網(wǎng)絡(luò)時(shí)間表示 通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。在一個(gè)實(shí)施方式中,要在成 品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的ERT可由ERT預(yù)測(cè)模塊220預(yù)測(cè)。
[0065] 現(xiàn)在參考圖5,示出根據(jù)本主題的實(shí)施例的用于預(yù)測(cè)ERT的方法410。
[0066] 在塊502中,對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間和運(yùn)算時(shí)間可被合計(jì)以確定預(yù)測(cè)的 子查詢執(zhí)行時(shí)間。在一個(gè)實(shí)施方式中,對(duì)應(yīng)于每個(gè)子查詢的10訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查 詢的運(yùn)算時(shí)間可由ERT預(yù)測(cè)模塊220合計(jì)。
[0067] 在塊504中,預(yù)測(cè)的子查詢執(zhí)行時(shí)間和網(wǎng)絡(luò)時(shí)間可被合計(jì)以確定ERT。在一個(gè)實(shí)施 方式中,預(yù)測(cè)的子查詢執(zhí)行時(shí)間和網(wǎng)絡(luò)時(shí)間可由ERT預(yù)測(cè)模塊220聚集。
[0068] 雖然用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的方法和系 統(tǒng)的實(shí)施方式已經(jīng)以結(jié)構(gòu)特征和/或方法專(zhuān)用的語(yǔ)言進(jìn)行了描述,但是應(yīng)理解,所附權(quán)利 要求不必限于所描述的具體特征或方法。相反,這些具體特征和方法被公開(kāi)作為用于預(yù)測(cè) 查詢的ERT的實(shí)施方式的實(shí)例。
[0069] 上面所討論的示例實(shí)施例可提供某些優(yōu)點(diǎn)。雖然不需要實(shí)踐本公開(kāi)的很多方面, 但是這些優(yōu)點(diǎn)可包括由以下特征提供的那些。
[0070] -些實(shí)施例可使系統(tǒng)和方法能夠預(yù)測(cè)在包含大量數(shù)據(jù)的數(shù)據(jù)庫(kù)上執(zhí)行的查詢的 消逝響應(yīng)時(shí)間(ERT)。
[0071] -些實(shí)施例可使系統(tǒng)和方法能夠估計(jì)在不同大小的數(shù)據(jù)庫(kù)上進(jìn)行查詢所花費(fèi)的 SQL運(yùn)算時(shí)間。
[0072] -些實(shí)施例可使系統(tǒng)和方法能夠預(yù)測(cè)涉及不同聯(lián)接運(yùn)算符的級(jí)聯(lián)的復(fù)雜查詢的 ERT,其中復(fù)雜查詢被分類(lèi)為一個(gè)或多個(gè)子查詢,從而與網(wǎng)絡(luò)時(shí)間一起關(guān)于每個(gè)子查詢而聚 集10訪問(wèn)時(shí)間、運(yùn)算時(shí)間。
【主權(quán)項(xiàng)】
1. 一種用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的方法,所述方 法包括: 由處理器基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式在所述開(kāi)發(fā)環(huán)境中創(chuàng)建對(duì) 應(yīng)于成品數(shù)據(jù)庫(kù)的模擬數(shù)據(jù)庫(kù); 由所述處理器基于所述模擬數(shù)據(jù)庫(kù)生成所述查詢的查詢執(zhí)行計(jì)劃,其中所述查詢執(zhí)行 計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的一個(gè)或多個(gè)子查詢,并且其中每個(gè)子查詢與 運(yùn)算參數(shù)相關(guān)聯(lián); 由所述處理器基于所述運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一種類(lèi)型的掃描; 由所述處理器在存在于所述開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng) 于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間,和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間,其中所述輸入 輸出訪問(wèn)時(shí)間基于所述分類(lèi)而預(yù)測(cè),并且其中所述運(yùn)算時(shí)間基于存在于每個(gè)子查詢中的一 個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè);以及 由所述處理器基于所述輸入輸出訪問(wèn)時(shí)間、所述運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間預(yù)測(cè)要在所述成 品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的所述消逝響應(yīng)時(shí)間,其中所述網(wǎng)絡(luò)時(shí)間表示通過(guò)網(wǎng)絡(luò)發(fā)送在 執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。2. 根據(jù)權(quán)利要求1所述的方法,其中所述統(tǒng)計(jì)信息包括表、塊、索引塊和數(shù)據(jù)值。3. 根據(jù)權(quán)利要求1所述的方法,其中所述運(yùn)算參數(shù)包括表、訪問(wèn)模式、基數(shù)、輸出大小、 成本,和輸入輸出成本。4. 根據(jù)權(quán)利要求1所述的方法,其中所述一個(gè)或多個(gè)運(yùn)算符包括合計(jì)、哈希、嵌套、排 序、合并及哈希。5. 根據(jù)權(quán)利要求1所述的方法,所述掃描類(lèi)型包括全表掃描、主索引掃描、快速索引掃 描和非唯一索引掃描。6. 根據(jù)權(quán)利要求1所述的方法,其還包括限定用于在生產(chǎn)環(huán)境中執(zhí)行的所述查詢的性 能基準(zhǔn)值,其中所述性能基準(zhǔn)值基于所述消逝響應(yīng)時(shí)間、所述預(yù)測(cè)的子查詢執(zhí)行時(shí)間、輸入 輸出成本、邏輯讀取、物理讀取、基數(shù)和輸出大小而限定。7. 根據(jù)權(quán)利要求1所述的方法,其中所述消逝響應(yīng)時(shí)間通過(guò)以下步驟而預(yù)測(cè): 合計(jì)對(duì)應(yīng)于每個(gè)子查詢的所述輸入輸出訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的所述運(yùn)算時(shí) 間以確定預(yù)測(cè)的子查詢執(zhí)行時(shí)間;以及 合計(jì)所述預(yù)測(cè)的子查詢執(zhí)行時(shí)間和所述網(wǎng)絡(luò)時(shí)間以確定所述消逝響應(yīng)時(shí)間。8. -種用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的系統(tǒng),所述系 統(tǒng)包括: 處理器;和 存儲(chǔ)器,耦接到所述處理器,其中所述處理器執(zhí)行存儲(chǔ)在所述存儲(chǔ)器中的多個(gè)模塊,并 且其中所述多個(gè)模塊包括: db模擬器模塊,用于基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式在所述開(kāi)發(fā)環(huán)境 中創(chuàng)建對(duì)應(yīng)于成品數(shù)據(jù)庫(kù)的模擬數(shù)據(jù)庫(kù); 執(zhí)行計(jì)劃生成模塊,用于基于所述模擬數(shù)據(jù)庫(kù)生成所述查詢的查詢執(zhí)行計(jì)劃,其中所 述查詢執(zhí)行計(jì)劃表示要在成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的一個(gè)或多個(gè)子查詢,并且其中每 個(gè)子查詢與運(yùn)算參數(shù)相關(guān)聯(lián); 查詢分類(lèi)模塊,用于基于所述運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一種類(lèi)型的掃描; 時(shí)間確定模塊,用于在存在于所述開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定 對(duì)應(yīng)于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間,其中所述 輸入輸出訪問(wèn)時(shí)間基于所述分類(lèi)而預(yù)測(cè),并且其中所述運(yùn)算時(shí)間基于存在于每個(gè)子查詢中 的一個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè);以及 消逝響應(yīng)時(shí)間預(yù)測(cè)模塊,用于基于所述輸入輸出訪問(wèn)時(shí)間、所述運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間 預(yù)測(cè)要在所述成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的所述消逝響應(yīng)時(shí)間,其中所述網(wǎng)絡(luò)時(shí)間表示 通過(guò)網(wǎng)絡(luò)發(fā)送在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。9. 根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述消逝響應(yīng)時(shí)間預(yù)測(cè)模塊通過(guò)以下各步驟而預(yù) 測(cè)所述消逝響應(yīng)時(shí)間: 合計(jì)對(duì)應(yīng)于每個(gè)子查詢的所述輸入輸出訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的所述運(yùn)算時(shí) 間以確定預(yù)測(cè)的子查詢執(zhí)行時(shí)間;以及 合計(jì)所述預(yù)測(cè)的子查詢執(zhí)行時(shí)間和所述網(wǎng)絡(luò)時(shí)間以確定所述消逝響應(yīng)時(shí)間。10. 根據(jù)權(quán)利要求8所述的系統(tǒng),還包括基準(zhǔn)代理模塊,用于限定用于在生產(chǎn)環(huán)境中要 被執(zhí)行的所述查詢的性能基準(zhǔn)值,其中所述性能基準(zhǔn)值基于所述消逝響應(yīng)時(shí)間、所述預(yù)測(cè) 的子查詢執(zhí)行時(shí)間、輸入輸出成本、邏輯讀取、物理讀取、基數(shù)和輸出大小而限定。11. 一種包含可在用于預(yù)測(cè)要在成品數(shù)據(jù)庫(kù)中執(zhí)行的查詢的消逝響應(yīng)時(shí)間(ERT)的計(jì) 算裝置中執(zhí)行的程序的非臨時(shí)性計(jì)算機(jī)可讀介質(zhì),所述程序包括程序代碼: 程序代碼,用于基于通過(guò)從開(kāi)發(fā)環(huán)境外推統(tǒng)計(jì)信息導(dǎo)出的空模式在所述開(kāi)發(fā)環(huán)境中創(chuàng) 建對(duì)應(yīng)于成品數(shù)據(jù)庫(kù)的模擬數(shù)據(jù)庫(kù); 程序代碼,用于基于所述模擬數(shù)據(jù)庫(kù)生成所述查詢的查詢執(zhí)行計(jì)劃,其中所述查詢執(zhí) 行計(jì)劃表示要在所述成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的一個(gè)或多個(gè)子查詢,并且其中每個(gè)子 查詢與運(yùn)算參數(shù)相關(guān)聯(lián); 程序代碼,用于基于所述運(yùn)算參數(shù)將每個(gè)子查詢分類(lèi)為至少一種類(lèi)型的掃描; 程序代碼,用于在存在于所述開(kāi)發(fā)環(huán)境中的測(cè)試數(shù)據(jù)庫(kù)上執(zhí)行每個(gè)子查詢以確定對(duì)應(yīng) 于每個(gè)子查詢的輸入輸出(10)訪問(wèn)時(shí)間和對(duì)應(yīng)于每個(gè)子查詢的運(yùn)算時(shí)間,其中所述輸入 輸出訪問(wèn)時(shí)間基于所述分類(lèi)而預(yù)測(cè),并且其中所述運(yùn)算時(shí)間基于存在于每個(gè)子查詢中的一 個(gè)或多個(gè)運(yùn)算符而預(yù)測(cè);以及 程序代碼,用于基于所述輸入輸出訪問(wèn)時(shí)間、所述運(yùn)算時(shí)間和網(wǎng)絡(luò)時(shí)間預(yù)測(cè)要在所述 成品數(shù)據(jù)庫(kù)中執(zhí)行的所述查詢的所述消逝響應(yīng)時(shí)間,其中所述網(wǎng)絡(luò)時(shí)間表示通過(guò)網(wǎng)絡(luò)發(fā)送 在執(zhí)行每個(gè)子查詢時(shí)檢索的數(shù)據(jù)所需要的時(shí)間。
【文檔編號(hào)】G06F17/30GK106033469SQ201510125047
【公開(kāi)日】2016年10月19日
【申請(qǐng)日】2015年3月20日
【發(fā)明人】列哈·辛哈爾
【申請(qǐng)人】塔塔顧問(wèn)服務(wù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
宾川县| 葵青区| 阜城县| 邢台市| 昭通市| 额敏县| 宜宾市| 凌源市| 江北区| 高邮市| 拉萨市| 信丰县| 日土县| 固镇县| 错那县| 公主岭市| 南漳县| 苍梧县| 柯坪县| 苏尼特右旗| 綦江县| 名山县| 涿鹿县| 阿克陶县| 杭州市| 荔浦县| 乳山市| 萍乡市| 辛集市| 阿瓦提县| 土默特右旗| 漳浦县| 五莲县| 锦屏县| 奉节县| 行唐县| 海淀区| 奎屯市| 石家庄市| 乃东县| 武隆县|