本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法、裝置和系統(tǒng)。
背景技術(shù):
數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫。隨著用戶對(duì)數(shù)據(jù)存儲(chǔ)和管理的需求,出現(xiàn)各種數(shù)據(jù)庫,例如,Mysql數(shù)據(jù)庫、Oracle數(shù)據(jù)庫、MongoDB數(shù)據(jù)庫等。其中,MongoDB數(shù)據(jù)庫是一種基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,最大的特點(diǎn)是它可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引,那么從大量數(shù)據(jù)中進(jìn)行數(shù)據(jù)查詢的過程中使用索引可以加快數(shù)據(jù)訪問的速度。所以這就使得MongoDB數(shù)據(jù)庫對(duì)索引非常敏感,數(shù)據(jù)查詢依賴索引,但是索引太多,特別是冗余索引太多的話,不僅會(huì)占用大量的磁盤空間,還會(huì)影響數(shù)據(jù)查詢的速度。
技術(shù)實(shí)現(xiàn)要素:
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法和相應(yīng)的裝置、系統(tǒng)。
依據(jù)本發(fā)明的一個(gè)方面,提供了一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法,包括:
獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中;
分析所述索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中;
根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理。
可選地,所述獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中包括:
接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;
將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
可選地,所述分析所述索引收集庫中的索引,確定其中的冗余索引包括:
獲取所述數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
可選地,所述分析所述索引收集庫中的索引,確定其中的冗余索引包括:
被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
可選地,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:
根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理。
可選地,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:
將所述冗余索引庫中的內(nèi)容發(fā)送給使用所述數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;
根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留所述數(shù)據(jù)庫系統(tǒng)中的冗余索引。
可選地,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理還包括:
根據(jù)所述冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;
將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示;
通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句。
根據(jù)本發(fā)明的另一方面,提供了一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置,包括:
索引獲取單元,適于獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中;
存儲(chǔ)單元,適于存儲(chǔ)索引收集庫和冗余索引庫;
冗余索引確定單元,適于分析所述索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中;
冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理。
可選地,所述索引獲取單元,適于接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
可選地,所述分冗余索引確定單元,適于獲取所述數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
可選地,所述余索引確定單元,適于當(dāng)被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引中,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
可選地,所述冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理。
可選地,所述冗余索引處理單元,適于將所述冗余索引庫中的內(nèi)容發(fā)送給使用所述數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留所述數(shù)據(jù)庫系統(tǒng)中的冗余索引。
可選地,所述冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示;通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句。
根據(jù)本發(fā)明的又一方面,提供了一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的系統(tǒng),其中,該系統(tǒng)包括:分別部署在各數(shù)據(jù)庫服務(wù)器上的多個(gè)索引掃描客戶端,和如前所述的處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置;
每個(gè)索引掃描客戶端,適于掃描所在數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引,并發(fā)送給所述處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置。
根據(jù)本發(fā)明的技術(shù)方案,獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并將獲取到的所有索引保存在索引收集庫中;自動(dòng)分析并確定索引收集庫中已保存的索引中的冗余索引,將確定的冗余索引信息保存在冗余索引庫中;然后根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中相應(yīng)的冗余索引進(jìn)行處理。綜上所述,本發(fā)明可以實(shí)現(xiàn)冗余索引的自動(dòng)分析和確定,保證冗余索引的處理效率,釋放冗余索引占用的磁盤空間,保證數(shù)據(jù)查詢的速度。
上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的具體實(shí)施方式。
附圖說明
通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法的流程示意圖;
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置的結(jié)構(gòu)示意圖;
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法的流程示意圖。如圖1所示,該方法包括:
步驟S110,獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中。
MongoDB數(shù)據(jù)庫中可包含有多個(gè)數(shù)據(jù)集合,在獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引時(shí)是要遍歷數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的MongoDB數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引獲取所有的索引,并將所有的索引保存在一個(gè)索引收集庫中,以進(jìn)行歸總,便于從所有的索引中確定出冗余索引。
步驟S120,分析索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中。
對(duì)索引收集庫中所保存的所有索引進(jìn)行分析,確定出哪些索引是冗余索引。這里確定冗余索引,一方面,可以根據(jù)用戶在進(jìn)行數(shù)據(jù)查詢時(shí)的訪問信息進(jìn)行確定,將其中沒有被使用的索引和使用的次數(shù)很少的索引視為冗余索引;另一方面,如果一個(gè)數(shù)據(jù)集合的一條數(shù)據(jù)中有兩條索引,且其中一個(gè)索引是另一個(gè)索引的子集,那么這個(gè)作為子集的索引也被認(rèn)為是冗余索引。因?yàn)橛脩敉ㄟ^這兩個(gè)索引都能查詢到相應(yīng)數(shù)據(jù)集合中的某條數(shù)據(jù),一個(gè)索引可以滿足作為子集的索引中所有的查詢條件,那么這個(gè)作為子集的索引的存在是多余的,需要作為冗余索引進(jìn)行處理。例如,一個(gè)數(shù)據(jù)集合的兩個(gè)索引為{id}和{id,name},當(dāng)用戶通過id查詢?cè)摂?shù)據(jù)集合中的某條數(shù)據(jù)的時(shí)候,通過這兩個(gè)索引都可以查詢到該條數(shù)據(jù),但是當(dāng)用戶通過id和name綜合查詢的時(shí)候就只能通過索引{id,name}查詢到該條數(shù)據(jù),也就是說,索引{id,name}既能滿足根據(jù)id的單個(gè)條件的查詢,也能滿足根據(jù)id和name的兩個(gè)條件的查詢,從而索引{id}就顯得多余。這里索引{id}就是索引{id,name}的子集,索引{id}就是冗余索引。
當(dāng)冗余索引確定后,為了便于冗余索引的處理,將冗余索引保存在冗余索引庫中。
本步驟可以完成冗余索引的自動(dòng)分析和確定,保證了冗余索引的處理效率。
步驟S130,根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理,進(jìn)而釋放冗余索引占用的磁盤空間,保證查詢速度。
對(duì)冗余索引庫中的冗余索引進(jìn)行處理時(shí),或者直接刪除相應(yīng)的數(shù)據(jù)庫數(shù)據(jù)集合中的冗余索引;或者展示給業(yè)務(wù)方,接收業(yè)務(wù)方對(duì)這些冗余索引的處理決定,例如,哪些必須保留,哪些可以刪除,哪些需要經(jīng)過一段時(shí)間后在進(jìn)行刪除等處理決定。
綜上所述,本發(fā)明可以實(shí)現(xiàn)冗余索引的自動(dòng)分析和確定,冗余索引的處理效率較高,釋放浪費(fèi)的磁盤空間,保證數(shù)據(jù)查詢的速度。
在本發(fā)明的一個(gè)實(shí)施例中,步驟S110中的獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中包括:接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
在進(jìn)行數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引的獲取時(shí),數(shù)據(jù)庫無法自行掃描獲取,所以需要在各個(gè)數(shù)據(jù)庫中部署相應(yīng)的索引掃描客戶端,例如,在數(shù)據(jù)庫中加入一個(gè)腳本,作為掃描工具。當(dāng)索引掃描客戶端完成掃描后,會(huì)將掃描獲取的索引發(fā)送給處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的分析中心機(jī),這里的分析中心機(jī)可以用相應(yīng)的裝置或服務(wù)器充當(dāng)。因?yàn)榇_定冗余索引以及處理冗余索引時(shí),是針對(duì)與冗余索引相對(duì)應(yīng)的數(shù)據(jù)集合來說的,所以當(dāng)接收掃描客戶端發(fā)送的索引的同時(shí),還接收該索引對(duì)應(yīng)的數(shù)據(jù)集合信息,當(dāng)保存的時(shí)候,將接收到的索引以其所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。例如,索引收集庫中的保存形式為:數(shù)據(jù)集合1:{索引1}、{索引2}、{索引3};數(shù)據(jù)集合2:{索引a}、{索引b}、{索引c}、{索引d};...。
在本發(fā)明的一個(gè)實(shí)施例中,步驟S120中的分析索引收集庫中的索引,確定其中的冗余索引包括:獲取數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
本實(shí)施例中的根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引,用戶進(jìn)行數(shù)據(jù)訪問時(shí),會(huì)保存有相應(yīng)的訪問信息的記錄或者日志,訪問信息里包括用到的相應(yīng)索引,從訪問信息確定每條索引的使用次數(shù),將使用次數(shù)為0的索引確定為冗余索引;或者,設(shè)定一個(gè)預(yù)設(shè)數(shù)值,當(dāng)使用次數(shù)小于該預(yù)設(shè)數(shù)值的索引也確定為冗余索引。例如,設(shè)定預(yù)設(shè)數(shù)值為3次,則使用次數(shù)小于3次的索引為冗余索引。
還需要說明的是,設(shè)定預(yù)設(shè)數(shù)值時(shí),也可以設(shè)定相應(yīng)的時(shí)間段,例如,索引建立以后總的使用次數(shù),或者索引在一段時(shí)間內(nèi)的使用次數(shù)。
在本發(fā)明的一個(gè)實(shí)施例中,步驟S120中的分析索引收集庫中的索引,確定其中的冗余索引包括:被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
因?yàn)橛脩敉ㄟ^這兩個(gè)索引都能查詢到相應(yīng)數(shù)據(jù)集合中的數(shù)據(jù),一個(gè)索引可以滿足作為子集的索引中所有的查詢條件,那么這個(gè)作為子集的索引的存在是多余的,需要作為冗余索引進(jìn)行處理。例如,一個(gè)數(shù)據(jù)集合的兩個(gè)索引為{id,name}和{id,name,birthday},當(dāng)用戶通過id和name查詢?cè)摂?shù)據(jù)集合中的某條數(shù)據(jù)的時(shí)候,通過這兩個(gè)索引都可以查詢到該條數(shù)據(jù),但是當(dāng)用戶通過id、name和birthday綜合查詢的時(shí)候就只能通過索引{id,name,birthday}查詢到該條數(shù)據(jù)。也就是說,索引{id,name,birthday}既能滿足根據(jù)id和name的兩個(gè)條件的查詢,也能滿足根據(jù)id、name和birthday的三個(gè)條件的查詢,從而索引{id,name}就顯得多余。這里索引{id,name}就是索引{id,name,birthday}的子集,索引{id,name}就是冗余索引。
所以在本實(shí)施例中,當(dāng)確定某條索引是否為冗余索引的時(shí)候,可以根據(jù)訪問信息,查詢被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引,是否存在其中一個(gè)索引是另一個(gè)索引的子集的情況,如果存在則作為子集的索引為冗余索引。
在本發(fā)明的一個(gè)實(shí)施例中,步驟S130中的根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理,以便釋放磁盤空間。
當(dāng)獲取到冗余索引庫后,不應(yīng)該立刻進(jìn)行冗余索引刪除的操作,因?yàn)閿?shù)據(jù)查詢是針對(duì)相應(yīng)的業(yè)務(wù)需求,索引也是業(yè)務(wù)方建立的,所以在對(duì)索引進(jìn)行刪除操作之前需要得到業(yè)務(wù)方的許可。所以,在本發(fā)明的一個(gè)實(shí)施例中,步驟S130中的根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:將冗余索引庫中的內(nèi)容發(fā)送給使用數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留數(shù)據(jù)庫系統(tǒng)中的冗余索引。這樣,業(yè)務(wù)方可根據(jù)業(yè)務(wù)需求對(duì)其中的某些索引進(jìn)行刪除,也可以進(jìn)行全部刪除,不影響業(yè)務(wù)方的使用體驗(yàn)。
然而,本領(lǐng)域技術(shù)人員應(yīng)可了解,上述經(jīng)過業(yè)務(wù)方確認(rèn)后方可刪除冗余索引的方式并非本發(fā)明的限制。由于上述冗余索引使用頻率低,對(duì)業(yè)務(wù)的影響也有限,因此當(dāng)冗余索引確定并保存到冗余索引庫中后,也可以不經(jīng)過業(yè)務(wù)端同意而直接進(jìn)行刪除的操作。
為了便于操作人員或者業(yè)務(wù)方的操作,在本發(fā)明的一個(gè)實(shí)施例中,步驟S130中的根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理還包括:根據(jù)冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示,例如針對(duì)每條在展示的冗余索引添加“刪除”按鈕和保“保留”按鈕;當(dāng)操作人員或業(yè)務(wù)方按下相應(yīng)按鈕后,通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句,最大限度的實(shí)現(xiàn)冗余索引處理的自動(dòng)化。
例如,業(yè)務(wù)方在接收到冗余索引庫時(shí),需要告知操作人員哪些冗余索引刪除、哪些冗余索引保留,并需編輯相應(yīng)的文件進(jìn)行告知。那么通過本實(shí)施例,業(yè)務(wù)方可以選擇相應(yīng)的按鈕,即可完成冗余索引的處理工作。
圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置的結(jié)構(gòu)示意圖。如圖2所示,該處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置200包括:
索引獲取單元210,適于獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中。
MongoDB數(shù)據(jù)庫中可包含有多個(gè)數(shù)據(jù)集合,在獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引時(shí)是要遍歷數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的MongoDB數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引獲取遍歷的所有的索引,并將所有的索引保存在一個(gè)索引收集庫中,以進(jìn)行歸總,便于從所有的索引中確定出冗余索引。
存儲(chǔ)單元220,適于存儲(chǔ)索引收集庫和冗余索引庫。
冗余索引確定單元230,適于分析索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中。
對(duì)索引收集庫中所保存的所有索引進(jìn)行分析,確定出哪些索引是冗余索引。這里確定冗余索引,一方面,可以根據(jù)用戶在進(jìn)行數(shù)據(jù)查詢時(shí)的訪問信息進(jìn)行確定,將其中沒有被使用的索引和使用的次數(shù)很少的索引都視為冗余索引;另一方面,如果一個(gè)數(shù)據(jù)集合的一條數(shù)據(jù)中有兩條索引,且其中一個(gè)索引是另一個(gè)索引的子集,那么這個(gè)作為子集的索引也被認(rèn)為是冗余索引。因?yàn)橛脩敉ㄟ^這兩個(gè)索引都能查詢到相應(yīng)數(shù)據(jù)集合中的某條數(shù)據(jù),一個(gè)索引可以滿足作為子集的索引中所有的查詢條件,那么這個(gè)作為子集的索引的存在是多余的,需要作為冗余索引進(jìn)行處理。例如,一個(gè)數(shù)據(jù)集合的兩個(gè)索引為{id}和{id,name},當(dāng)用戶通過id查詢?cè)摂?shù)據(jù)集合中的某條數(shù)據(jù)的時(shí)候,通過這兩個(gè)索引都可以查詢到該條數(shù)據(jù),但是當(dāng)用戶通過id和name綜合查詢的時(shí)候就只能通過索引{id,name}查詢到該條數(shù)據(jù),也就是說,索引{id,name}既能滿足根據(jù)id的單個(gè)條件的查詢,也能滿足根據(jù)id和name的兩個(gè)條件的查詢,從而索引{id}就顯得多余。這里索引{id}就是作為索引{id,name}的子集的索引,索引{id}就是冗余索引。
當(dāng)冗余索引確定后,為了便于冗余索引的處理,將冗余索引保存在冗余索引庫中。
本單元可以完成冗余索引的自動(dòng)分析和確定,保證了冗余索引的處理效率。
冗余索引處理單元240,適于根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理,進(jìn)而釋放冗余索引占用的磁盤空間,保證查詢速度
對(duì)冗余索引庫中的冗余索引進(jìn)行處理時(shí),或者直接刪除相應(yīng)的數(shù)據(jù)庫數(shù)據(jù)集合中的冗余索引;或者展示給業(yè)務(wù)方,接收業(yè)務(wù)方對(duì)這些冗余索引的處理決定,例如,哪些必須保留,哪些可以刪除,哪些需要經(jīng)過一段時(shí)間后在進(jìn)行刪除等處理決定。
綜上所述,本發(fā)明可以實(shí)現(xiàn)冗余索引的自動(dòng)分析和確定,冗余索引的處理效率較高,釋放浪費(fèi)的磁盤空間,保證數(shù)據(jù)查詢的速度。
在本發(fā)明的一個(gè)實(shí)施例中,索引獲取單元210,適于接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
在進(jìn)行數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引的獲取時(shí),數(shù)據(jù)庫無法自行掃描獲取,所以需要在各個(gè)數(shù)據(jù)庫中部署相應(yīng)的索引掃描客戶端,例如,在數(shù)據(jù)庫中加入一個(gè)腳本,作為掃描工具。當(dāng)索引掃描客戶端完成掃描后,會(huì)將掃描獲取的索引發(fā)送給處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的分析中心機(jī),這里的分析中心機(jī)可以用相應(yīng)的裝置或服務(wù)器充當(dāng)。因?yàn)榇_定冗余索引以及處理冗余索引時(shí),是針對(duì)與冗余索引相對(duì)應(yīng)的數(shù)據(jù)集合來說的,所以當(dāng)接收掃描客戶端發(fā)送的索引的同時(shí),還接收該索引對(duì)應(yīng)的數(shù)據(jù)集合信息,當(dāng)保存的時(shí)候,將接收到的索引以其所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。例如,索引收集庫中的保存形式為:數(shù)據(jù)集合1:{索引1}、{索引2}、{索引3};數(shù)據(jù)集合2:{索引a}、{索引b}、{索引c}、{索引d};...。
在本發(fā)明的一個(gè)實(shí)施例中,分冗余索引確定單元230,適于獲取數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
本實(shí)施例中的根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引,用戶進(jìn)行數(shù)據(jù)訪問時(shí),會(huì)保存有相應(yīng)的訪問信息的記錄或者日志,訪問信息里包括用到的相應(yīng)索引,從訪問信息確定每條索引的使用次數(shù),將使用次數(shù)為0的索引確定為冗余索引;或者,設(shè)定一個(gè)預(yù)設(shè)數(shù)值,當(dāng)使用次數(shù)小于該預(yù)設(shè)數(shù)值的索引也確定為冗余索引。例如,設(shè)定預(yù)設(shè)數(shù)值為3次,則使用次數(shù)小于3次的索引為冗余索引。
還需要說明的是,設(shè)定預(yù)設(shè)數(shù)值時(shí),也可以設(shè)定相應(yīng)的時(shí)間段,例如,索引建立以后總的使用次數(shù),或者索引在一段時(shí)間內(nèi)的使用次數(shù)。
在本發(fā)明的一個(gè)實(shí)施例中,余索引確定單元230,適于當(dāng)被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引中,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
因?yàn)橛脩敉ㄟ^這兩個(gè)索引都能查詢到相應(yīng)數(shù)據(jù)集合中的數(shù)據(jù),一個(gè)索引可以滿足作為子集的索引中所有的查詢條件,那么這個(gè)作為子集的索引的存在是多余的,需要作為冗余索引進(jìn)行處理。例如,一個(gè)數(shù)據(jù)集合的兩個(gè)索引為{id,name}和{id,name,birthday},當(dāng)用戶通過id和name查詢?cè)摂?shù)據(jù)集合中的某條數(shù)據(jù)的時(shí)候,通過這兩個(gè)索引都可以查詢到該條數(shù)據(jù),但是當(dāng)用戶通過id、name和birthday綜合查詢的時(shí)候就只能通過索引{id,name,birthday}查詢到該條數(shù)據(jù)。也就是說,索引{id,name,birthday}既能滿足根據(jù)id和name的兩個(gè)條件的查詢,也能滿足根據(jù)id、name和birthday的三個(gè)條件的查詢,從而索引{id,name}就顯得多余。這里索引{id,name}就是作為索引{id,name,birthday}的子集的索引,索引{id,name}就是冗余索引。
所以在本實(shí)施例中,當(dāng)確定某條索引是否為冗余索引的時(shí)候,可以根據(jù)訪問信息,查詢被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引,是否存在其中一個(gè)索引是另一個(gè)索引的子集的情況,如果存在則作為子集的索引為冗余索引。
在本發(fā)明的一個(gè)實(shí)施例中,冗余索引處理單元,適于根據(jù)冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理,以便釋放磁盤空間。
當(dāng)獲取到冗余索引庫后,不應(yīng)該立刻進(jìn)行冗余索引刪除的操作,因?yàn)閿?shù)據(jù)查詢是針對(duì)相應(yīng)的業(yè)務(wù)需求,索引也是業(yè)務(wù)方建立的,所以在對(duì)索引進(jìn)行刪除操作之前需要得到業(yè)務(wù)方的許可。所以,在本發(fā)明的一個(gè)實(shí)施例中,冗余索引處理單元240,適于將冗余索引庫中的內(nèi)容發(fā)送給使用數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留數(shù)據(jù)庫系統(tǒng)中的冗余索引。這樣,業(yè)務(wù)方可根據(jù)業(yè)務(wù)需求對(duì)其中的某些索引進(jìn)行刪除,也可以進(jìn)行全部刪除,不影響業(yè)務(wù)方的使用體驗(yàn)。
然而,本領(lǐng)域技術(shù)人員應(yīng)可了解,上述經(jīng)過業(yè)務(wù)方確認(rèn)后方可刪除冗余索引的方式并非本發(fā)明的限制。由于上述冗余索引使用頻率低,對(duì)業(yè)務(wù)的影響也有限,因此當(dāng)冗余索引確定并保存到冗余索引庫中后,也可以不經(jīng)過業(yè)務(wù)端同意而直接進(jìn)行刪除的操作。
為了便于操作人員或者業(yè)務(wù)方的操作,在本發(fā)明的一個(gè)實(shí)施例中,冗余索引處理單元240,適于根據(jù)冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示,例如針對(duì)每條在展示的冗余索引添加“刪除”按鈕和?!氨A簟卑粹o;當(dāng)操作人員或業(yè)務(wù)方按下相應(yīng)按鈕后,通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句,最大限度的實(shí)現(xiàn)冗余索引處理的自動(dòng)化。
例如,業(yè)務(wù)方在接收到冗余索引庫時(shí),需要告知操作人員哪些冗余索引刪除、哪些冗余索引保留,并需編輯相應(yīng)的文件進(jìn)行告知。那么通過本實(shí)施例,業(yè)務(wù)方可以選擇相應(yīng)的按鈕,即可完成冗余索引的處理工作。。
圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的系統(tǒng)的結(jié)構(gòu)示意圖。如圖3所示,該處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的系統(tǒng)300包括:分別部署在各數(shù)據(jù)庫服務(wù)器上的索引掃描客戶端310、索引掃描客戶端320、索引掃描客戶端330,和如圖2所示的處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置340。
索引掃描客戶端310、索引掃描客戶端320、索引掃描客戶端330,均適于掃描所在數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引,并發(fā)送給處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置。
需要說明的是,圖3所示的系統(tǒng)與圖1所示的方法的各實(shí)施例對(duì)應(yīng)相同,上文已有詳細(xì)說明,在此不再贅述。
綜上所述,根據(jù)本發(fā)明的技術(shù)方案,獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并將獲取到的所有索引保存在索引收集庫中;自動(dòng)分析并確定索引收集庫中已保存的索引中的冗余索引,將確定的冗余索引信息保存在冗余索引庫中;然后根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中相應(yīng)的冗余索引進(jìn)行處理??梢?,本發(fā)明可以實(shí)現(xiàn)冗余索引的自動(dòng)分析和確定,保證冗余索引的處理效率,釋放冗余索引占用的磁盤空間,保證數(shù)據(jù)查詢的速度。
需要說明的是:
在此提供的算法和顯示不與任何特定計(jì)算機(jī)、虛擬裝置或者其它設(shè)備固有相關(guān)。各種通用裝置也可以與基于在此的示教一起使用。根據(jù)上面的描述,構(gòu)造這類裝置所要求的結(jié)構(gòu)是顯而易見的。此外,本發(fā)明也不針對(duì)任何特定編程語言。應(yīng)當(dāng)明白,可以利用各種編程語言實(shí)現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對(duì)特定語言所做的描述是為了披露本發(fā)明的最佳實(shí)施方式。
在此處所提供的說明書中,說明了大量具體細(xì)節(jié)。然而,能夠理解,本發(fā)明的實(shí)施例可以在沒有這些具體細(xì)節(jié)的情況下實(shí)踐。在一些實(shí)例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡(jiǎn)本公開并幫助理解各個(gè)發(fā)明方面中的一個(gè)或多個(gè),在上面對(duì)本發(fā)明的示例性實(shí)施例的描述中,本發(fā)明的各個(gè)特征有時(shí)被一起分組到單個(gè)實(shí)施例、圖、或者對(duì)其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護(hù)的本發(fā)明要求比在每個(gè)權(quán)利要求中所明確記載的特征更多的特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個(gè)實(shí)施例的所有特征。因此,遵循具體實(shí)施方式的權(quán)利要求書由此明確地并入該具體實(shí)施方式,其中每個(gè)權(quán)利要求本身都作為本發(fā)明的單獨(dú)實(shí)施例。
本領(lǐng)域那些技術(shù)人員可以理解,可以對(duì)實(shí)施例中的設(shè)備中的模塊進(jìn)行自適應(yīng)性地改變并且把它們?cè)O(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中??梢园褜?shí)施例中的模塊或單元或組件組合成一個(gè)模塊或單元或組件,以及此外可以把它們分成多個(gè)子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對(duì)本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進(jìn)行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個(gè)特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實(shí)施例包括其它實(shí)施例中所包括的某些特征而不是其它特征,但是不同實(shí)施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實(shí)施例。例如,在下面的權(quán)利要求書中,所要求保護(hù)的實(shí)施例的任意之一都可以以任意的組合方式來使用。
本發(fā)明的各個(gè)部件實(shí)施例可以以硬件實(shí)現(xiàn),或者以在一個(gè)或者多個(gè)處理器上運(yùn)行的軟件模塊實(shí)現(xiàn),或者以它們的組合實(shí)現(xiàn)。本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,可以在實(shí)踐中使用微處理器或者數(shù)字信號(hào)處理器(DSP)來實(shí)現(xiàn)根據(jù)本發(fā)明實(shí)施例的處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置和系統(tǒng)中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實(shí)現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設(shè)備或者裝置程序(例如,計(jì)算機(jī)程序和計(jì)算機(jī)程序產(chǎn)品)。這樣的實(shí)現(xiàn)本發(fā)明的程序可以存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上,或者可以具有一個(gè)或者多個(gè)信號(hào)的形式。這樣的信號(hào)可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號(hào)上提供,或者以任何其他形式提供。
應(yīng)該注意的是上述實(shí)施例對(duì)本發(fā)明進(jìn)行說明而不是對(duì)本發(fā)明進(jìn)行限制,并且本領(lǐng)域技術(shù)人員在不脫離所附權(quán)利要求的范圍的情況下可設(shè)計(jì)出替換實(shí)施例。在權(quán)利要求中,不應(yīng)將位于括號(hào)之間的任何參考符號(hào)構(gòu)造成對(duì)權(quán)利要求的限制。單詞“包含”不排除存在未列在權(quán)利要求中的元件或步驟。位于元件之前的單詞“一”或“一個(gè)”不排除存在多個(gè)這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在列舉了若干裝置的單元權(quán)利要求中,這些裝置中的若干個(gè)可以是通過同一個(gè)硬件項(xiàng)來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
本發(fā)明公開了A1、一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的方法,其中,該方法包括:
獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中;
分析所述索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中;
根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理。
A2、如A1所述的方法,其中,所述獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中包括:
接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;
將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
A3、如A1所述的方法,其中,所述分析所述索引收集庫中的索引,確定其中的冗余索引包括:
獲取所述數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
A4、如A1所述的方法,其中,所述分析所述索引收集庫中的索引,確定其中的冗余索引包括:
被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
A5、如A1所述的方法,其中,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:
根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理。
A6、如A1所述的方法,其中,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理包括:
將所述冗余索引庫中的內(nèi)容發(fā)送給使用所述數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;
根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留所述數(shù)據(jù)庫系統(tǒng)中的冗余索引。
A7、如A1所述的方法,其中,所述根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理還包括:
根據(jù)所述冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;
將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示;
通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句。
本發(fā)明還公開了B8、一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置,其中,該裝置包括:
索引獲取單元,適于獲取數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫的索引,并保存到索引收集庫中;
存儲(chǔ)單元,適于存儲(chǔ)索引收集庫和冗余索引庫;
冗余索引確定單元,適于分析所述索引收集庫中的索引,確定其中的冗余索引,并將確定的冗余索引信息保存到冗余索引庫中;
冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)所述數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行處理。
B9、如B8所述的裝置,其中,
所述索引獲取單元,適于接收數(shù)據(jù)庫系統(tǒng)中的各數(shù)據(jù)庫服務(wù)器上部署的索引掃描客戶端發(fā)送的,各數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引;將接收到的索引以所屬數(shù)據(jù)集合為單位歸類保存到索引收集庫中。
B10、如B8所述的裝置,其中,
所述分冗余索引確定單元,適于獲取所述數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)訪問信息,根據(jù)數(shù)據(jù)訪問信息確定未被使用過的索引為冗余索引;或者,根據(jù)數(shù)據(jù)訪問信息確定被使用次數(shù)低于預(yù)設(shè)數(shù)值的索引為冗余索引。
B11、如B8所述的裝置,其中,
所述余索引確定單元,適于當(dāng)被同一數(shù)據(jù)訪問使用過且屬于同一數(shù)據(jù)集合的兩個(gè)索引中,如果其中一個(gè)索引是另一個(gè)索引的子集,則確定該作為子集的索引為冗余索引。
B12、如B8所述的裝置,其中,
所述冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,對(duì)數(shù)據(jù)庫系統(tǒng)中的冗余索引進(jìn)行刪除處理。
B13、如B8所述的裝置,其中,
所述冗余索引處理單元,適于將所述冗余索引庫中的內(nèi)容發(fā)送給使用所述數(shù)據(jù)庫系統(tǒng)的相應(yīng)業(yè)務(wù)方;根據(jù)相應(yīng)業(yè)務(wù)方反饋的處理意見,刪除或保留所述數(shù)據(jù)庫系統(tǒng)中的冗余索引。
B14、如B8所述的裝置,其中,
所述冗余索引處理單元,適于根據(jù)所述冗余索引庫中的內(nèi)容,為包含冗余索引的數(shù)據(jù)集合,生成一條或多條處理冗余索引的執(zhí)行語句;將包含冗余索引的數(shù)據(jù)集合的冗余索引信息和對(duì)應(yīng)的執(zhí)行語句在冗余索引展示界面上進(jìn)行展示;通過冗余索引展示界面接收觸發(fā)相應(yīng)執(zhí)行語句的指令,并執(zhí)行相應(yīng)的執(zhí)行語句。
本發(fā)明還公開了C15、一種處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的系統(tǒng),其中,該系統(tǒng)包括:分別部署在各數(shù)據(jù)庫服務(wù)器上的多個(gè)索引掃描客戶端,和如B8-B14中任一項(xiàng)所述的處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置;
每個(gè)索引掃描客戶端,適于掃描所在數(shù)據(jù)庫服務(wù)器上部署的數(shù)據(jù)庫中的所有數(shù)據(jù)集合的索引,并發(fā)送給所述處理數(shù)據(jù)庫系統(tǒng)中的冗余索引的裝置。