1.一種磁盤頁(yè)面的讀取方法,其特征在于,所述方法包括:
接收數(shù)據(jù)庫(kù)操作指令;
從頁(yè)面緩沖池中查找所述數(shù)據(jù)庫(kù)操作指令所需的頁(yè)面;
若未在頁(yè)面緩沖池中查找到所述頁(yè)面,則判斷所述數(shù)據(jù)庫(kù)操作指令類型是否屬于預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合;
若所述數(shù)據(jù)庫(kù)操作指令類型屬于預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合,則根據(jù)數(shù)據(jù)庫(kù)操作指令類型確定需要預(yù)讀取的頁(yè)面數(shù)量;以及
根據(jù)需要預(yù)讀取的頁(yè)面的數(shù)量,從磁盤中讀取需要預(yù)讀取的頁(yè)面到頁(yè)面緩沖池中。
2.根據(jù)權(quán)利要求1所述的磁盤頁(yè)面的讀取方法,其特征在于,所述預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合包括:全表掃描操作指令、全索引掃描操作指令、索引范圍掃描操作指令、索引葉節(jié)點(diǎn)掃描操作指令、日志掃描操作指令及事務(wù)的回滾操作指令。
3.根據(jù)權(quán)利要求2所述的磁盤頁(yè)面的讀取方法,其特征在于,若所述數(shù)據(jù)庫(kù)操作指令類型為全表掃描操作指令或全索引掃描操作指令,根據(jù)所述數(shù)據(jù)庫(kù)操作指令類型確定需要預(yù)讀取的頁(yè)面的數(shù)量的步驟還包括:
獲取全表掃描或全索引掃描所需掃描的表的總數(shù)據(jù)量;
將表的總數(shù)據(jù)量中預(yù)設(shè)比例的數(shù)據(jù)量確定為所需讀取的數(shù)據(jù)量;以及
根據(jù)所需讀取的數(shù)據(jù)量獲取需要預(yù)讀取的頁(yè)面的數(shù)量。
4.根據(jù)權(quán)利要求2所述的磁盤頁(yè)面的讀取方法,其特征在于,若所述數(shù)據(jù)庫(kù)操作指令類型為索引范圍掃描操作指令或索引葉節(jié)點(diǎn)掃描操作指令,根據(jù)所述數(shù)據(jù)庫(kù)操作指令類型確定需要預(yù)讀取的頁(yè)面的數(shù)量的步驟還包括:
獲取索引范圍掃描或索引葉節(jié)點(diǎn)掃描的請(qǐng)求次數(shù);以及
根據(jù)所述請(qǐng)求次數(shù)獲取需要預(yù)讀取的頁(yè)面的數(shù)量。
5.根據(jù)權(quán)利要求2所述的磁盤頁(yè)面的讀取方法,其特征在于,若所述數(shù)據(jù)庫(kù)操作指令類型為日志掃描操作指令或事務(wù)回滾操作指令,根據(jù)所述數(shù)據(jù)庫(kù)操作指令類型確定需要預(yù)讀取的頁(yè)面的數(shù)量的步驟還包括:
根據(jù)日志中所記錄的被修改的數(shù)據(jù)所在的頁(yè)面的數(shù)量,得到需要預(yù)讀取的頁(yè)面的數(shù)量的初始值;
當(dāng)所述初始值大于等于預(yù)設(shè)第一閾值時(shí),將需要預(yù)讀取的頁(yè)面的數(shù)量確定為占初始值預(yù)設(shè)比例的頁(yè)面的數(shù)量;
當(dāng)所述初始值小于所述預(yù)設(shè)第一閾值且大于預(yù)設(shè)第二閾值時(shí),將需要預(yù)讀取的頁(yè)面的數(shù)量確定為所述初始值;以及
當(dāng)所述初始值小于等于所述預(yù)設(shè)第二閾值時(shí),將需要預(yù)讀取的頁(yè)面的數(shù)量確定為所述預(yù)設(shè)第二閾值。
6.根據(jù)權(quán)利要求1所述的磁盤頁(yè)面的讀取方法,其特征在于,所述根據(jù)需要預(yù)讀取的頁(yè)面的數(shù)量,從磁盤中讀取需要預(yù)讀取的頁(yè)面的步驟包括:
對(duì)所述需要預(yù)讀取的頁(yè)面的物理地址排序;以及
根據(jù)排序結(jié)果和需要預(yù)讀取的頁(yè)面的數(shù)量,分組讀取需要預(yù)讀取的頁(yè)面到頁(yè)面緩沖池中。
7.根據(jù)權(quán)利要求6所述的磁盤頁(yè)面的讀取方法,其特征在于,在對(duì)所述需要預(yù)讀取的頁(yè)面的物理地址排序的步驟之前還包括:
從所述需要預(yù)讀取的頁(yè)面的物理地址中剔除已經(jīng)在頁(yè)面緩沖池中的頁(yè)面的物理地址。
8.一種磁盤頁(yè)面的讀取裝置,所述裝置包括:
指令接收模塊,用于接收數(shù)據(jù)庫(kù)操作指令;
頁(yè)面查找模塊,用于從頁(yè)面緩沖池中查找所述數(shù)據(jù)庫(kù)操作指令所需的頁(yè)面;
指令類型判斷模塊,用于若未在頁(yè)面緩沖池中查找到所述頁(yè)面,則判斷所述數(shù)據(jù)庫(kù)操作指令類型是否屬于預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合;
頁(yè)面數(shù)量確定模塊,用于若所述數(shù)據(jù)庫(kù)操作指令類型屬于預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合,則根據(jù)數(shù)據(jù)庫(kù)操作指令類型確定需要預(yù)讀取的頁(yè)面數(shù)量;以及頁(yè)面讀取模塊,用于根據(jù)需要預(yù)讀取的頁(yè)面的數(shù)量,從磁盤中讀取需要預(yù)讀取的頁(yè)面到頁(yè)面緩沖池中。
9.根據(jù)權(quán)利要求8所述的磁盤頁(yè)面的讀取裝置,其特征在于,所述預(yù)設(shè)數(shù)據(jù)庫(kù)操作指令類型集合包括:全表掃描操作指令、全索引掃描操作指令、索引范圍掃描操作指令、索引葉節(jié)點(diǎn)掃描操作指令、日志掃描操作指令及事務(wù)回滾操作指令。
10.根據(jù)權(quán)利要求8所述的磁盤頁(yè)面的讀取裝置,其特征在于,所述頁(yè)面數(shù)量確定模塊包括:
全掃描頁(yè)面數(shù)量確定單元,用于若所述數(shù)據(jù)庫(kù)操作指令類型為全表掃描操作指令或全索引掃描操作指令,獲取全表掃描或全索引掃描所需掃描的表的總數(shù)據(jù)量;將表的總數(shù)據(jù)量中預(yù)設(shè)比例的數(shù)據(jù)量確定為所需讀取的數(shù)據(jù)量;根據(jù)所需讀取的數(shù)據(jù)量獲取需要預(yù)讀取的頁(yè)面的數(shù)量。
11.根據(jù)權(quán)利要求8所述的磁盤頁(yè)面的讀取裝置,其特征在于,所述頁(yè)面數(shù)量確定模塊還包括:
索引掃描頁(yè)面數(shù)量確定單元,用于若所述數(shù)據(jù)庫(kù)操作指令類型為索引范圍掃描操作指令或索引葉節(jié)點(diǎn)掃描操作指令,獲取索引范圍掃描或索引葉節(jié)點(diǎn)掃描的請(qǐng)求次數(shù);根據(jù)所述請(qǐng)求次數(shù)獲取需要預(yù)讀取的頁(yè)面的數(shù)量。
12.根據(jù)權(quán)利要求8所述的磁盤頁(yè)面的讀取裝置,其特征在于,所述頁(yè)面數(shù)量確定模塊還包括:
回滾頁(yè)面數(shù)量確定單元,用于若所述數(shù)據(jù)庫(kù)操作指令類型為日志掃描操作指令或事務(wù)回滾操作指令,根據(jù)日志中所記錄的被修改的數(shù)據(jù)所在的頁(yè)面的數(shù)量,得到需要預(yù)讀取的頁(yè)面的數(shù)量的初始值;
當(dāng)所述初始值大于等于預(yù)設(shè)第一閾值時(shí),所述回滾頁(yè)面數(shù)量確定單元將需要預(yù)讀取的頁(yè)面的數(shù)量確定為占初始值預(yù)設(shè)比例的頁(yè)面的數(shù)量;
當(dāng)所述初始值小于預(yù)設(shè)第一閾值且大于預(yù)設(shè)第二閾值時(shí),所述回滾頁(yè)面數(shù)量確定單元將需要預(yù)讀取的頁(yè)面的數(shù)量確定為所述初始值;
當(dāng)所述初始值小于等于預(yù)設(shè)第二閾值時(shí),所述回滾頁(yè)面數(shù)量確定單元將需要預(yù)讀取的頁(yè)面的數(shù)量確定為預(yù)設(shè)第二閾值。
13.根據(jù)權(quán)利要求8所述的磁盤頁(yè)面的讀取裝置,其特征在于,所述頁(yè)面讀取模塊還包括:
排序單元,用于對(duì)所述需要預(yù)讀取的頁(yè)面的物理地址排序;以及
讀取單元,用于根據(jù)排序結(jié)果和需要預(yù)讀取的頁(yè)面的數(shù)量,分組讀取需要預(yù)讀取的頁(yè)面到頁(yè)面緩沖池中。