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

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

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

      一種終端數(shù)據(jù)庫的并行執(zhí)行方法和裝置與流程

      文檔序號(hào):11590372閱讀:179來源:國(guó)知局

      本發(fā)明涉及智能終端領(lǐng)域,尤其涉及一種終端數(shù)據(jù)庫的并行執(zhí)行方法和裝置。



      背景技術(shù):

      隨著智能終端功能越來越強(qiáng)大,存儲(chǔ)空間越來越大,其內(nèi)部存儲(chǔ)的數(shù)據(jù)量越來越多,用戶查詢的數(shù)據(jù)量也在不斷增大,這導(dǎo)致終端內(nèi)部的應(yīng)用響應(yīng)時(shí)間也越來越長(zhǎng)。另一方面,智能終端的中央處理器(centralprocessingunit,cpu)核數(shù)不斷增大,處理能力越來越強(qiáng)。利用多核優(yōu)勢(shì)加速數(shù)據(jù)查詢是智能終端數(shù)據(jù)庫的一個(gè)優(yōu)化方向。

      目前智能終端中的數(shù)據(jù)庫基本都是采用輕量的開源數(shù)據(jù)庫(例如sqlite)。傳統(tǒng)智能終端數(shù)據(jù)庫支持多個(gè)連接并發(fā)訪問數(shù)據(jù)庫,但是不支持單一結(jié)構(gòu)化查詢語言(structuredquerylanguage,sql)語句的并發(fā)執(zhí)行。因此如果某一個(gè)sql語句很復(fù)雜,需要消耗大量cpu,這種情況下終端數(shù)據(jù)庫無法利用到多核優(yōu)勢(shì)。同時(shí),當(dāng)前很多終端的cpu都是基于arm處理器的大小核(big.little)架構(gòu),這種cpu有大核和小核之分。同時(shí),終端也會(huì)根據(jù)特定策略調(diào)整cpu的主頻,這導(dǎo)致每個(gè)cpu在執(zhí)行相同任務(wù)時(shí)的執(zhí)行時(shí)間會(huì)有很大差異。對(duì)于同樣的任務(wù)量,cpu小核執(zhí)行時(shí)間往往是大核執(zhí)行時(shí)間的一倍半到兩倍。同時(shí),如果對(duì)cpu進(jìn)行限制頻率的話,同樣任務(wù)量的執(zhí)行時(shí)間也會(huì)大大增加。

      另外,智能終端數(shù)據(jù)庫通常不會(huì)特別大,同時(shí)對(duì)數(shù)據(jù)庫查詢和更新的時(shí)間要求也比較嚴(yán)格。即查詢和更新時(shí)間往往在1秒以下,和界面顯示相關(guān)的查詢往往需要在200毫秒以下,以保證一些界面操作肉眼無感知。因此,智能終端數(shù)據(jù)庫需要有比較快速的sql語句解析和執(zhí)行時(shí)間。

      在傳統(tǒng)的服務(wù)端數(shù)據(jù)庫中(例如oracle、sqlserver),都支持sql語句并行執(zhí)行?;舅枷胧怯脩粼趕ql語句中設(shè)置并行度或數(shù)據(jù)庫自身根據(jù)cpu核數(shù)自動(dòng)設(shè)置并行度。然后數(shù)據(jù)庫執(zhí)行引擎分析數(shù)據(jù)表中的數(shù)據(jù)分布情況,然后將數(shù)據(jù)表拆分成獨(dú)立分區(qū)并行執(zhí)行。

      傳統(tǒng)服務(wù)端數(shù)據(jù)庫的數(shù)據(jù)分析和數(shù)據(jù)表拆分往往很復(fù)雜,需要收集很多統(tǒng)計(jì)信息。所以這種并行執(zhí)行前的準(zhǔn)備工作往往相對(duì)比較耗時(shí),而并行執(zhí)行往往也針對(duì)很大的數(shù)據(jù)規(guī)模和執(zhí)行時(shí)間很長(zhǎng)的sql語句才適用。而對(duì)耗時(shí)僅僅幾秒鐘的sql語句則不適用。而終端數(shù)據(jù)庫通常的sql語句執(zhí)行時(shí)間只有幾毫秒或幾十毫秒,超過200毫秒則容易被人眼感知到影響用戶體驗(yàn)。因此終端數(shù)據(jù)庫無法利用很多統(tǒng)計(jì)信息來進(jìn)行數(shù)據(jù)表拆分。同時(shí),由于智能終端的cpu有大核和小核之分,如果將執(zhí)行任務(wù)平均分配給各cpu核,則會(huì)出現(xiàn)大核執(zhí)行結(jié)束后不得不等待小核執(zhí)行完成的情況,導(dǎo)致執(zhí)行效率降低。

      綜上所述,當(dāng)終端cpu存在大核、小核差異情況下,如何利用多核優(yōu)勢(shì)提高終端數(shù)據(jù)庫的并行執(zhí)行效率成為亟待解決的問題。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明實(shí)施例提供一種終端數(shù)據(jù)庫的并行執(zhí)行方法和裝置,以解決終端cpu存在大核、小核差異情況下,無法利用多核實(shí)現(xiàn)終端數(shù)據(jù)庫的并行執(zhí)行問題。

      本發(fā)明實(shí)施例提供的具體技術(shù)方案如下:

      第一方面,本發(fā)明實(shí)施例提供一種終端數(shù)據(jù)庫的并行執(zhí)行方法,包括:

      終端基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù);

      終端獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例;

      終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);

      終端通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      在一個(gè)可能的設(shè)計(jì)中,終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),可以通過如下方式實(shí)現(xiàn):

      終端讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù);

      按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),n為預(yù)設(shè)的并行度。

      在一個(gè)可能的設(shè)計(jì)中,上述提到終端讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁數(shù)目比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。例如,終端在第一層子頁數(shù)目較多時(shí),按照各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),能夠快速實(shí)現(xiàn)終端數(shù)據(jù)庫的動(dòng)態(tài)分區(qū),進(jìn)一步提高了終端對(duì)各個(gè)數(shù)據(jù)分區(qū)中的數(shù)據(jù)查詢效率

      在一個(gè)可能的設(shè)計(jì)中,終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),可以通過如下方式實(shí)現(xiàn):

      終端讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù);

      基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),n為預(yù)設(shè)的并行度。

      在一個(gè)可能的設(shè)計(jì)中,上述提到終端讀取第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù);基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。例如,終端在第一層子頁數(shù)目較少時(shí),繼續(xù)讀取數(shù)據(jù)表中第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù),按照各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),這樣使得各個(gè)數(shù)據(jù)分區(qū)中記錄的數(shù)據(jù)個(gè)數(shù)比例與各個(gè)cpu主頻比例更加接近,而且能夠兼顧數(shù)據(jù)分區(qū)的劃分效率,貼合實(shí) 際。

      在一個(gè)可能的設(shè)計(jì)中,上述提到的所述數(shù)據(jù)表為b-tree格式的數(shù)據(jù)表或?yàn)閔eap格式的數(shù)據(jù)表。

      這樣,能夠基于終端各線程cpu的主頻因素對(duì)終端數(shù)據(jù)庫中待查詢的數(shù)據(jù)表進(jìn)行動(dòng)態(tài)分區(qū),能夠使得主頻較大的線程cpu查詢較多的數(shù)據(jù)量,主頻較小的線程cpu查詢較少的數(shù)據(jù)量,同時(shí)利用各線程cpu對(duì)對(duì)應(yīng)數(shù)據(jù)分區(qū)執(zhí)行查詢指令的并行化處理,能夠極大提升終端對(duì)數(shù)據(jù)庫的并行查詢執(zhí)行效率。

      第二方面,本發(fā)明實(shí)施例提供一種終端數(shù)據(jù)庫的并行執(zhí)行裝置,包括:

      確定單元,用于基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù);

      計(jì)算單元,用于獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例;

      劃分單元,用于基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);

      查詢單元,用于通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      在一個(gè)可能的設(shè)計(jì)中,所述劃分單元基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),具體用于:

      讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù);

      按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),n為預(yù)設(shè)的并行度。

      在一個(gè)可能的設(shè)計(jì)中,上述提到的所述劃分單元讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁數(shù)目比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。所述劃分單元在第一層子頁數(shù)目較多時(shí),按照各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),能夠快速實(shí)現(xiàn)終端數(shù)據(jù)庫的動(dòng)態(tài)分區(qū),進(jìn)一步提高了終端對(duì)各個(gè)數(shù)據(jù) 分區(qū)中的數(shù)據(jù)查詢效率。

      在一個(gè)可能的設(shè)計(jì)中,所述劃分單元基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),具體用于:

      讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù);

      基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),n為預(yù)設(shè)的并行度。

      在一個(gè)可能的設(shè)計(jì)中,上述提到的所述劃分單元讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù),基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。例如,所述劃分單元在第一層子頁數(shù)目較少時(shí),繼續(xù)讀取數(shù)據(jù)表中第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù),按照各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),這樣使得各個(gè)數(shù)據(jù)分區(qū)中記錄的數(shù)據(jù)個(gè)數(shù)比例與各個(gè)cpu主頻比例更加接近,而且能夠兼顧數(shù)據(jù)分區(qū)的劃分效率,貼合實(shí)際。

      在一個(gè)可能的設(shè)計(jì)中,上述提到的所述數(shù)據(jù)表為b-tree格式的數(shù)據(jù)表或?yàn)閔eap格式的數(shù)據(jù)表。

      這樣,能夠基于終端各線程cpu的主頻因素對(duì)終端數(shù)據(jù)庫中待查詢的數(shù)據(jù)表進(jìn)行動(dòng)態(tài)分區(qū),能夠使得主頻較大的線程cpu查詢較多的數(shù)據(jù)量,主頻較小的線程cpu查詢較少的數(shù)據(jù)量,同時(shí)利用各線程cpu對(duì)對(duì)應(yīng)數(shù)據(jù)分區(qū)執(zhí)行查詢指令的并行化處理,能夠極大提升終端對(duì)數(shù)據(jù)庫的并行查詢執(zhí)行效率。

      第三方面,本發(fā)明實(shí)施例提供了一種終端設(shè)備,該終端設(shè)備具有實(shí)現(xiàn)上述方法設(shè)計(jì)中所述終端行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊。所述模塊可以是軟件和/或硬件。

      在一個(gè)可能的設(shè)計(jì)中,終端設(shè)備的結(jié)構(gòu)中包括存儲(chǔ)器和處理器,所述存儲(chǔ)器中存儲(chǔ)有程序指令。所述處理器控制終端設(shè)備根據(jù)存儲(chǔ)器中存儲(chǔ)的程序指令,基于終端設(shè)備中各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      第四方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲(chǔ)介質(zhì),用于儲(chǔ)存為上述終端所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序

      本發(fā)明實(shí)施例中的終端數(shù)據(jù)庫并行執(zhí)行方案,基于終端各線程cpu的主頻因素對(duì)終端數(shù)據(jù)庫中待查詢的數(shù)據(jù)表進(jìn)行動(dòng)態(tài)分區(qū),同時(shí)利用各線程cpu對(duì)對(duì)應(yīng)數(shù)據(jù)分區(qū)執(zhí)行查詢指令的并行化處理,能夠極大提升終端對(duì)數(shù)據(jù)庫的并行查詢執(zhí)行效率。

      附圖說明

      圖1為本發(fā)明實(shí)施例中虛擬機(jī)并行執(zhí)行邏輯示意圖;

      圖2為本發(fā)明實(shí)施例提供的終端設(shè)備的內(nèi)部結(jié)構(gòu)的示意圖;

      圖3為本發(fā)明實(shí)施例中終端數(shù)據(jù)庫的并行執(zhí)行方法流程圖;

      圖4為終端數(shù)據(jù)庫中采用b-tree形式實(shí)現(xiàn)的數(shù)據(jù)表示意圖;

      圖5為終端數(shù)據(jù)庫中采用heap形式實(shí)現(xiàn)的數(shù)據(jù)表示意圖;

      圖6為本發(fā)明實(shí)施例中終端數(shù)據(jù)庫的并行執(zhí)行裝置結(jié)構(gòu)示意圖。

      具體實(shí)施方式

      下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,并不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

      本發(fā)明實(shí)施例提供了一種終端數(shù)據(jù)庫的并行執(zhí)行方法和裝置,用以解決終 端cpu存在大核、小核差異情況下,無法利用多核實(shí)現(xiàn)終端數(shù)據(jù)庫的并行執(zhí)行問題。其中,方法和裝置是基于同一發(fā)明構(gòu)思的,由于方法及裝置解決問題的原理相似,因此裝置與方法的實(shí)施可以相互參見,重復(fù)之處不再贅述。

      下面結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式進(jìn)行詳細(xì)說明。

      由于終端cpu存在大核、小核的主頻差異因素,本發(fā)明實(shí)施例中的終端數(shù)據(jù)庫的并行執(zhí)行方法,在終端數(shù)據(jù)庫動(dòng)態(tài)分區(qū)過程中,按照當(dāng)前終端cpu主頻比例來動(dòng)態(tài)劃分?jǐn)?shù)據(jù)庫中的數(shù)據(jù)表區(qū)域,以確保不同cpu的執(zhí)行時(shí)間差別不大,從而大大減少數(shù)據(jù)庫結(jié)果集合并時(shí)的cpu等待時(shí)間。本發(fā)明需要結(jié)合終端數(shù)據(jù)庫的并行執(zhí)行引擎來實(shí)現(xiàn)終端數(shù)據(jù)數(shù)據(jù)庫的并行執(zhí)行功能。下面以手機(jī)終端數(shù)據(jù)庫最常用的sqlite數(shù)據(jù)庫為例來說明終端數(shù)據(jù)庫并行執(zhí)行引擎的實(shí)現(xiàn)方法。

      圖1所示的指令表給出了虛擬機(jī)并行執(zhí)行邏輯。當(dāng)執(zhí)行引擎開始執(zhí)行虛擬機(jī)指令時(shí),會(huì)首先根據(jù)預(yù)先確定的并行度創(chuàng)建輔助線程,圖中通過指令2和指令3創(chuàng)建了2個(gè)輔助線程,并根據(jù)主線程的主頻和輔助線程的主頻來對(duì)待查詢的數(shù)據(jù)表進(jìn)行動(dòng)態(tài)分區(qū)(圖中的指令4),其中,并行度為線程的并行執(zhí)行個(gè)數(shù)。

      主線程和各輔助線程根據(jù)預(yù)先生成的虛擬機(jī)并行執(zhí)行邏輯執(zhí)行各自代碼段,例如對(duì)于上面圖1中情況,主線程執(zhí)行指令5-20,然后看到指令21則直接跳轉(zhuǎn)到指令41,看到指令41則跳轉(zhuǎn)到61。輔助線程1則跳轉(zhuǎn)到21,執(zhí)行21-40,然后退出;輔助線程2則跳轉(zhuǎn)到41,執(zhí)行41-60,然后退出。

      主線程在指令61等待所有線程退出后,執(zhí)行結(jié)果集的合并,并返回執(zhí)行結(jié)果。

      圖1中指令4實(shí)現(xiàn)對(duì)數(shù)據(jù)表的動(dòng)態(tài)分區(qū),執(zhí)行將數(shù)據(jù)表分解成不重疊的多個(gè)分區(qū),才能夠確保不同線程訪問的數(shù)據(jù)不會(huì)交叉。對(duì)于不同的數(shù)據(jù)庫,由于其數(shù)據(jù)表實(shí)現(xiàn)機(jī)制的不同,有不同的分區(qū)方法。

      圖2示出了本發(fā)明實(shí)施例提供的終端設(shè)備200的內(nèi)部結(jié)構(gòu)。終端設(shè)備200可包括手機(jī)、平板電腦、個(gè)人數(shù)字助理(personaldigitalassistant,pda)、銷 售終端設(shè)備(pointofsales,pos)、車載電腦、臺(tái)式電腦、筆記本、服務(wù)器等。

      如圖2所示,終端設(shè)備200內(nèi)部可包括:處理器202、與處理器202連接的存儲(chǔ)器201,以及,可選地,還可包括傳感器、觸控屏幕、揚(yáng)聲器、麥克等外部設(shè)備。當(dāng)終端設(shè)備200采用無線方式與外界通信時(shí),還可包括射頻(radiofrequency,rf)電路和連接的天線,無線保真(wirelessfidelity,wifi)模塊和連接的天線等。此外,終端設(shè)備200還包括為其供電的電源。

      本領(lǐng)域技術(shù)人員可以理解,圖2中示出的終端設(shè)備的內(nèi)部結(jié)構(gòu)并不構(gòu)成對(duì)終端設(shè)備的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。

      下面結(jié)合圖2對(duì)終端設(shè)備200的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:

      存儲(chǔ)器201可用于存儲(chǔ)程序和數(shù)據(jù),處理器202通過運(yùn)行存儲(chǔ)在存儲(chǔ)器201的程序從而執(zhí)行終端設(shè)備200的各種功能應(yīng)用以及數(shù)據(jù)處理。

      存儲(chǔ)器201可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)終端設(shè)備200的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等,本發(fā)明實(shí)施例中存儲(chǔ)數(shù)據(jù)區(qū)存儲(chǔ)有終端設(shè)備200的數(shù)據(jù)庫;存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)(比如:安卓操作系統(tǒng),簡(jiǎn)稱“安卓系統(tǒng)”或ios操作系統(tǒng),簡(jiǎn)稱“ios系統(tǒng)”,其中,操作系統(tǒng)也可簡(jiǎn)稱為“系統(tǒng)”)、至少一個(gè)功能所需的指令(比如:聲音播放功能、圖像播放功能等)等,所述指令可使處理器202執(zhí)行以下方法,具體方法包括:基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù);獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例;基于所述各個(gè)線程cpu的主頻比例對(duì)終端設(shè)備200的數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);終端設(shè)備通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      其中,處理器202通過運(yùn)行存儲(chǔ)器201中存儲(chǔ)的操作系統(tǒng),調(diào)用應(yīng)用程序,完成應(yīng)用程序所提供的功能。此外,操作系統(tǒng)還可以控制觸控屏幕、傳感器。

      本發(fā)明實(shí)施例中,終端設(shè)備200中的操作系統(tǒng)調(diào)用存儲(chǔ)器201中存儲(chǔ)的程 序,完成本發(fā)明實(shí)施例提供的終端設(shè)備數(shù)據(jù)庫的并行執(zhí)行流程。

      此外,存儲(chǔ)器201可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。

      觸控屏幕可包括觸控面板、顯示單元等。

      觸控面板,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板上或在觸控面板附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。

      可選的,觸控面板可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。

      其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器202,并能接收處理器202發(fā)來的命令并加以執(zhí)行。

      此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板。

      顯示單元可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端設(shè)備200的各種菜單??蛇x的,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機(jī)發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示單元。進(jìn)一步的,觸控面板可覆蓋顯示單元,當(dāng)觸控面板檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器202以確定觸摸事件的類型,隨后處理器202根據(jù)觸摸事件的類型在顯示單元上提供相應(yīng)的視覺輸出。

      如圖2所示,觸控面板可與顯示單元集成為觸控屏幕,用于實(shí)現(xiàn)終端設(shè)備200的輸入和輸出功能,或者觸控面板與顯示單元可以作為兩個(gè)獨(dú)立的部件來分別實(shí)現(xiàn)終端設(shè)備200的輸入和輸出功能,本發(fā)明實(shí)施例對(duì)此并不做限定。

      進(jìn)一步地,觸摸檢測(cè)裝置和觸摸控制器可在一塊芯片中實(shí)現(xiàn)),觸摸控制器接收的信號(hào)轉(zhuǎn)換成該輸入的相關(guān)信息(比如:輸入位置、輸入操作的類型、輸入的持續(xù)時(shí)間、該輸入對(duì)應(yīng)的用戶接觸到觸控屏幕的接觸點(diǎn)的數(shù)量等),將 生成的該輸入的相關(guān)信息發(fā)給處理器202;

      rf電路可用于收發(fā)信息或在通話過程中,完成信號(hào)的接收和發(fā)送,特別地,將收到基站發(fā)送的下行信息接收后,將下行信息交給處理器202處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。

      通常,rf電路包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(lownoiseamplifier,lna)、雙工器等。

      此外,rf電路還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。

      所述無線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于:

      全球移動(dòng)通訊系統(tǒng)(globalsystemofmobilecommunication,gsm)、通用分組無線服務(wù)(generalpacketradioservice,gprs)、碼分多址(codedivisionmultipleaccess,cdma)、寬帶碼分多址(widebandcodedivisionmultipleaccess,wcdma)、長(zhǎng)期演進(jìn)(longtermevolution,lte)、電子郵件、短消息服務(wù)(shortmessagingservice,sms)等。

      圖2中,音頻電路、揚(yáng)聲器,麥克風(fēng)可提供用戶與終端設(shè)備200之間的音頻接口。

      音頻電路可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器,由揚(yáng)聲器轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,麥克風(fēng)將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出至rf電路以發(fā)送給其他電子設(shè)備,比如:手機(jī),或者將音頻數(shù)據(jù)輸出至存儲(chǔ)器201以便進(jìn)一步處理。

      wifi屬于短距離無線傳輸技術(shù),終端設(shè)備200通過wifi模塊可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。

      雖然圖2示出了wifi模塊,但是可以理解的是,其并不屬于終端設(shè)備200的必須構(gòu)成,完全可以根據(jù)需要在不改變本發(fā)明實(shí)施例的本質(zhì)的范圍內(nèi)而省略。

      處理器202是終端設(shè)備200的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器201內(nèi)的程序(或稱為“模塊”), 以及調(diào)用存儲(chǔ)在存儲(chǔ)器201內(nèi)的數(shù)據(jù),執(zhí)行終端設(shè)備200的各種功能和處理數(shù)據(jù),從而對(duì)終端設(shè)備200進(jìn)行整體監(jiān)控。

      可選的,處理器202可包括至少一個(gè)處理單元;可選地,處理器202可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖牵鲜稣{(diào)制解調(diào)處理器也可以不集成到處理器202中。

      終端設(shè)備200還包括給各個(gè)部件供電的電源(比如電池),可選地,電源可以通過電源管理系統(tǒng)與處理器202邏輯相連,從而通過電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗等功能。

      如圖2所示,終端設(shè)備200還可包括傳感器(比如:光傳感器、運(yùn)動(dòng)傳感器等)。

      具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器。

      其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示單元的亮度,接近傳感器可在終端設(shè)備200移動(dòng)到耳邊時(shí),關(guān)閉顯示單元和/或背光。

      作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等。

      至于終端設(shè)備200還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。

      此外,終端設(shè)備200還可包括攝像頭、藍(lán)牙模塊等,在此不再贅述。

      下面介紹了本發(fā)明實(shí)施例提供的終端設(shè)備數(shù)據(jù)庫的并行執(zhí)行流程。

      其中,以這些流程應(yīng)由上述提供的終端設(shè)備200執(zhí)行為例加以說明,但應(yīng)該理解的是,這些流程可應(yīng)用于各種具有存儲(chǔ)器和處理器的電子設(shè)備,用以實(shí)現(xiàn)終端設(shè)備數(shù)據(jù)庫的并行查詢。

      本發(fā)明的關(guān)鍵點(diǎn)是在數(shù)據(jù)表分區(qū)的時(shí)候考慮cpu主頻因素,根據(jù)cpu主 頻來按比例劃分分區(qū),從而使不同主頻的cpu的執(zhí)行時(shí)間盡可能相同。具體的,參閱圖3所示,圖3為本發(fā)明實(shí)施例中終端數(shù)據(jù)庫的并行執(zhí)行方法,具體過程為:

      步驟300:終端基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù)。

      步驟301:終端獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例。

      例如,終端為具有4個(gè)cpu的4核手機(jī),分別用cpu1,cpu2,cpu3,cpu4來表示終端的4個(gè)cpu,預(yù)設(shè)的并行度n為3,此時(shí),需要從4個(gè)cpu中選出3個(gè)作為線程cpu,假設(shè)確定出cpu1,cpu2,cpu3分別為3個(gè)線程對(duì)應(yīng)的線程cpu。假設(shè)手機(jī)的3個(gè)線程cpu的主頻分別為2016000,1017600,1516800,此時(shí),計(jì)算3個(gè)線程cpu的主頻比例為4:2:3。

      步驟302:終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū)。

      具體的,終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),分為以下兩種執(zhí)行方案:

      第一種方案為:終端讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù);按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁數(shù)目比例與所述各個(gè)線程cpu的主頻比例相等或近似相等,n為預(yù)設(shè)的并行度。

      可選的,針對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),若第一層子頁數(shù)目大于預(yù)設(shè)閾值時(shí),采用上述第一種方案。

      例如,針對(duì)上述例子中的同一個(gè)終端,假設(shè)終端待查詢的數(shù)據(jù)表中所述第一層子頁個(gè)數(shù)為9,大于預(yù)設(shè)閾值8,此時(shí),將9個(gè)第一層子頁按照4:2:3劃分為3個(gè)分區(qū)。假設(shè)3個(gè)數(shù)據(jù)分區(qū)分別為分區(qū)1,分區(qū)2,分區(qū)3,此時(shí),分區(qū)1中包括4個(gè)第一層子頁,可以為第一層分頁中編號(hào)為1-4的4個(gè)第一層分 頁,分區(qū)2中包括2個(gè)第一層子頁,可以為第一層分頁中編號(hào)為5-6的2個(gè)第一層分頁,分區(qū)3中包括3個(gè)第一層子頁,可以為第一層分頁中編號(hào)為7-9的3個(gè)第一層分頁。需要說明的是,所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁數(shù)目比例與所述各個(gè)線程cpu的主頻比例相等或近似相等即可,并不限定各個(gè)數(shù)據(jù)分區(qū)中各個(gè)第一層子頁的數(shù)據(jù)劃分方法。

      第二種方案為:終端讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù);基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),此時(shí),所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)比例與所述各個(gè)線程cpu的主頻比例相等或近似相等,n為預(yù)設(shè)的并行度。

      可選的,針對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),若第一層子頁數(shù)目不大于預(yù)設(shè)閾值時(shí),采用上述第二種方案。

      例如,針對(duì)上述例子中的同一個(gè)終端,假設(shè)終端待查詢的數(shù)據(jù)表中所述第一層子頁個(gè)數(shù)為2小于預(yù)設(shè)閾值8,此時(shí),終端讀取2個(gè)第一層子頁中記錄的數(shù)據(jù)個(gè)數(shù),假設(shè)第一個(gè)子頁中記錄的數(shù)據(jù)個(gè)數(shù)為40,第二個(gè)子頁中記錄的數(shù)據(jù)個(gè)數(shù)為40,將90條數(shù)據(jù)記錄按照4:2:3劃分為3個(gè)分區(qū)。假設(shè)3個(gè)數(shù)據(jù)分區(qū)分別為分區(qū)1,分區(qū)2,分區(qū)3,此時(shí),分區(qū)1中包括40條數(shù)據(jù)記錄,可以為第一層分頁中記錄的數(shù)據(jù),分區(qū)2中包括20條數(shù)據(jù)記錄,可以為第二層分頁中記錄的前20條數(shù)據(jù)記錄,分區(qū)3中包括30條數(shù)據(jù)記錄,可以為第二層分頁中記錄的后30條數(shù)據(jù)記錄。需要說明的是,所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)比例與所述各個(gè)線程cpu的主頻比例相等或近似相等即可,并不限定各個(gè)數(shù)據(jù)分區(qū)中第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)的數(shù)據(jù)劃分方法。

      步驟303:終端通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      例如,針對(duì)上述針對(duì)上述例子中的同一個(gè)終端,假設(shè)根據(jù)終端各個(gè)線程cpu的主頻比例4:2:3,將待查詢的數(shù)據(jù)表劃分為3個(gè)數(shù)據(jù)分區(qū),假設(shè)3個(gè)數(shù)據(jù)分區(qū)分別為分區(qū)1,分區(qū)2,分區(qū)3,此時(shí)終端通過各個(gè)線程cpu并行查 詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù),即分區(qū)1中的數(shù)據(jù)通過終端的cpu1執(zhí)行數(shù)據(jù)查詢功能,分區(qū)2中的數(shù)據(jù)通過終端的cpu2執(zhí)行數(shù)據(jù)查詢功能,分區(qū)3中的數(shù)據(jù)通過終端的cpu3執(zhí)行數(shù)據(jù)查詢功能。

      下面針對(duì)以b-tree形式實(shí)現(xiàn)的數(shù)據(jù)表來舉例說明圖2中的方法。

      如圖4所示,手機(jī)終端數(shù)據(jù)庫中采用b-tree形式實(shí)現(xiàn)的數(shù)據(jù)表,數(shù)據(jù)表的數(shù)據(jù)組織成一個(gè)b-tree結(jié)構(gòu),在b-tree結(jié)構(gòu)的最低層的節(jié)點(diǎn)中存儲(chǔ)了數(shù)據(jù)記錄。圖4中最低層節(jié)點(diǎn)中的數(shù)值(比如1-200等)表示了數(shù)據(jù)表中記錄的id號(hào)。這種表結(jié)構(gòu)記錄id號(hào)從左到右是順序排列的。第一層子頁中的n個(gè)數(shù)據(jù)頁分別用page1,page1,…pagen來表示。其中,所述手機(jī)終端為上述例子中的具有4個(gè)cpu的4核手機(jī)終端。

      由于這種數(shù)據(jù)表是以整數(shù)類型的主鍵來組織成b-tree結(jié)構(gòu)的,圖3中記錄id號(hào)就是主鍵,因此通過讀取根頁和第一層子頁的記錄就可以完成終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表中的數(shù)據(jù)分區(qū)。

      數(shù)據(jù)分區(qū)需要根據(jù)當(dāng)前線程cpu的主頻比例來劃分,例如三個(gè)線程cpu,主頻分別為2016000,1017600,1516800,即3個(gè)線程cpu的主頻比例為4:2:3,則三個(gè)線程數(shù)據(jù)分區(qū)的比例也應(yīng)該與為4:2:3相同或接近。因此讀取圖3中記錄的第一層子頁的數(shù)據(jù)頁page1-pagen的數(shù)目。

      如果第一層子頁的數(shù)據(jù)頁超過預(yù)設(shè)閾值,假設(shè)為預(yù)設(shè)閾值為8,則不需要將第一層子頁page1-pagen中記錄的所有數(shù)據(jù)讀出來劃分,直接將第一層子頁page1-pagen按4:2:3比例劃分即可,并找到最后對(duì)應(yīng)的主鍵值即可以完成數(shù)據(jù)劃分。假設(shè)第一層子頁有30個(gè)頁,則可以將第一層子頁按照4:2:3劃分,結(jié)果是(14,6,10)。即第一層子頁中前14個(gè)數(shù)據(jù)頁中記錄的數(shù)據(jù)由線程cpu1執(zhí)行,第一層子頁中中間6個(gè)數(shù)據(jù)頁中記錄的數(shù)據(jù)由線程cpu2執(zhí)行,第一層子頁中后10個(gè)數(shù)據(jù)頁中記錄的數(shù)據(jù)由線程cpu3執(zhí)行。

      如果第一層子頁的數(shù)據(jù)頁不超過預(yù)設(shè)閾值,假設(shè)為預(yù)設(shè)閾值為8,比如第一層子頁只有兩個(gè)數(shù)據(jù)頁分別為第一數(shù)據(jù)頁和第二數(shù)據(jù)頁,此時(shí),需要將第一 層子頁的兩個(gè)數(shù)據(jù)頁中記錄的數(shù)據(jù)個(gè)數(shù)讀取出來,其中第一數(shù)據(jù)頁記錄有40條數(shù)據(jù)記錄,第二數(shù)據(jù)頁記錄有50條數(shù)據(jù)記錄,將第一層子頁中記錄的數(shù)據(jù)個(gè)數(shù)(即40+50=90)按照4:2:3比例劃分即可,也就是說第一數(shù)據(jù)頁中記錄的數(shù)據(jù)由線程cpu1執(zhí)行,第二數(shù)據(jù)頁中記錄的前20條記錄由線程cpu2執(zhí)行,第二數(shù)據(jù)頁中記錄的后30條記錄由線程cpu3執(zhí)行。

      另一種常見的數(shù)據(jù)表組織形式是heap表。參閱圖5所示,這種形式的數(shù)據(jù)表是按照數(shù)據(jù)記錄插入順序組織,沒有主鍵字段或主鍵字段是單獨(dú)索引,即數(shù)據(jù)表中的數(shù)據(jù)記錄不以主鍵排序。這種形式的數(shù)據(jù)表動(dòng)態(tài)分區(qū)方法和上述b-tree形式的數(shù)據(jù)表動(dòng)態(tài)分區(qū)方法完全一致,在此不再贅述。

      基于上述實(shí)施例提供的終端數(shù)據(jù)庫的并行執(zhí)行方法,參見圖6所示,本發(fā)明實(shí)施例提供一種終端數(shù)據(jù)庫的并行執(zhí)行裝置600,該裝置可以用于執(zhí)行上述圖3所述的方法,圖6所示為本發(fā)明實(shí)施例提供的裝置600的結(jié)構(gòu)示意圖,如圖6所示,該裝置600包括確定單元601、計(jì)算單元602、劃分單元603和查詢單元604,其中:

      確定單元601,用于基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù);

      計(jì)算單元602,用于獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例;

      劃分單元603,用于基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);

      查詢單元604,用于通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù)。

      可選的,所述劃分單元603基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),具體用于:

      讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁的個(gè)數(shù);

      按照所述各個(gè)線程cpu的主頻比例將第一層子頁劃分為n個(gè)數(shù)據(jù)分區(qū), n為預(yù)設(shè)的并行度。

      可選的,所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁數(shù)目比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。

      可選的,所述劃分單元基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū)時(shí),具體用于:

      讀取所述數(shù)據(jù)表中與索引根頁相連的第一層子頁中每個(gè)子頁記錄的數(shù)據(jù)個(gè)數(shù);

      基于每個(gè)子頁記錄的個(gè)數(shù),按照所述各個(gè)線程cpu的主頻比例將第一層子頁中記錄的數(shù)據(jù)劃分為n個(gè)數(shù)據(jù)分區(qū),n為預(yù)設(shè)的并行度。

      可選的,所述n個(gè)數(shù)據(jù)分區(qū)中的第一層子頁記錄的數(shù)據(jù)個(gè)數(shù)比例與所述各個(gè)線程cpu的主頻比例相等或近似相等。

      可選的,所述數(shù)據(jù)表為b-tree格式的數(shù)據(jù)表或?yàn)閔eap格式的數(shù)據(jù)表。

      本發(fā)明實(shí)施例上述涉及的裝置600,可以是獨(dú)立的部件,也可以是集成于其他部件中。

      需要說明的是,本發(fā)明實(shí)施例中的裝置600的各個(gè)單元的功能實(shí)現(xiàn)以及交互方式可以進(jìn)一步參照相關(guān)方法實(shí)施例的描述,在此不再贅述。

      綜上所述,本發(fā)明實(shí)施例中,終端基于預(yù)設(shè)的并行度確定各個(gè)線程cpu,所述并行度為并行執(zhí)行的線程數(shù);終端獲取每個(gè)線程cpu的主頻,計(jì)算各個(gè)線程cpu的主頻比例;終端基于所述各個(gè)線程cpu的主頻比例對(duì)終端數(shù)據(jù)庫中的待查詢的數(shù)據(jù)表劃分?jǐn)?shù)據(jù)分區(qū),確定各個(gè)線程cpu對(duì)應(yīng)的數(shù)據(jù)分區(qū);終端通過各個(gè)線程cpu并行查詢對(duì)應(yīng)的數(shù)據(jù)分區(qū)中的數(shù)據(jù),這樣能夠基于終端各線程cpu的主頻因素對(duì)終端數(shù)據(jù)庫中待查詢的數(shù)據(jù)表進(jìn)行動(dòng)態(tài)分區(qū),同時(shí)利用各線程cpu對(duì)對(duì)應(yīng)數(shù)據(jù)分區(qū)執(zhí)行查詢指令的并行化處理,能夠極大提升終端對(duì)數(shù)據(jù)庫的并行查詢執(zhí)行效率。

      本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié) 合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。

      本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。

      這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。

      這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。

      顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明實(shí)施例的精神和范圍。這樣,倘若本發(fā)明實(shí)施例的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1