JP4214712B2 - データベースのページ確保処理方法 - Google Patents
データベースのページ確保処理方法 Download PDFInfo
- Publication number
- JP4214712B2 JP4214712B2 JP2002140893A JP2002140893A JP4214712B2 JP 4214712 B2 JP4214712 B2 JP 4214712B2 JP 2002140893 A JP2002140893 A JP 2002140893A JP 2002140893 A JP2002140893 A JP 2002140893A JP 4214712 B2 JP4214712 B2 JP 4214712B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- processing
- stored
- storage
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99942—Manipulating data structure, e.g. compression, compaction, compilation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
- Y10S707/99953—Recoverability
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99956—File allocation
- Y10S707/99957—Garbage collection
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明は、リレーショナルデータベース管理システム(RDBMS)の処理方法に関し、特に、データベースの空き領域不足時におけるページ確保方法に関する。
【0002】
【従来の技術】
DB管理システムにおいて、表へデータを挿入する際に、記憶装置より格納用の領域を切出し、データを格納する。切出した領域に複数のデータが格納され、切出した領域の空きが無くなると、記憶装置より新たな領域を切出し、さらにデータを格納する。データの削除が実行されると、切出した領域上の該当データが削除され、削除された部分は空き領域となる。一般に、データの挿入、更新または削除を繰返すと格納効率が低下し、それに伴いアクセス性能が劣化する。そのため、適当な時期に記憶領域の再編成を実行し、空領域を回収しデータを詰め直さなければならない。従来の再編成では、再編成中の表へのアクセスが禁止されており、夜間や休日等にDBを停止して再編成を行う運用がなされてきた。
【0003】
削除により空きとなった領域を優先的に使うことにより、格納効率の低下を抑える方法もある。例えば、「ORACLE8 DBAハンドブック(ISBN4-88135-613-5) p.130,131」に記載された、PCTUSEDにより制御する方法である。この方法では、削除により空きとなった領域のサイズがPCTUSEDに指定された値以上になった領域を、次回の挿入処理の格納領域として使用する。また、「データベースシステムとデータモデル(ISBN4-274-07515)p.30-32」に記載のように、各領域にその領域の使用率を格納し、領域確保時に各領域の使用率を参照して格納可能な領域をサーチする方法もある。
PCTUSEDにより制御する方法では、削除処理の際に領域管理のための余分な処理(PCTUSEDに指定された値以上になったかのチェックや該当領域を次回の挿入処理の格納領域として使用させるための制御)を実行しなければならず、削除処理に余分な負担がかかってしまう。また、使用率を格納する方法では、挿入処理時にデータを挿入できる領域を選び出すために、各領域の使用率を参照していかなければならない。そのためこれらの方法では、格納効率が改善できる代わりに挿入処理や削除処理の処理性能は劣化する。
【0004】
表へのアクセスを禁止せずに再編成を実施する、オン中再編性機能もある。この処理方法は、再編成対象の領域を再編成しながら別の領域へデータをコピーし、コピー完了時にコピー元とコピー先を切替えることにより実現されるが、コピー作成のために再編成対象領域と同等サイズの一時領域が必要となる。
【0005】
【発明が解決しようとする課題】
世界規模でのWEBの急速な広まりに伴い、24時間−365日間のDBサービス提供が求められており、サービスを停止せずに再編成を行なうことや再編成無しで格納効率の劣化やアクセス性能の劣化を防止することの要望が高まっている。
【0006】
従来技術では、格納効率を改善するために挿入処理や削除処理の処理性能が劣化してしまい、オンライン再編成の実行には、一時領域が必要となる。
【0007】
本発明は、追加の領域無しで、挿入処理や削除処理の処理性能を劣化させずに、格納効率の劣化を防止し、再編成を無くし、又は再編成時期を遅らせる手段を提供することを目的とする。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明では、ユーザからの問合せ要求を受付け解析し処理を実行し、データを記憶装置に格納するデータベースシステムにおいて、データを格納する際に、記憶装置の記憶領域より切出した新規領域へデータを格納する第1の処理、及び切出し済み領域群からのデータ削除により発生した空き領域へデータを格納する第2の処理のいずれかに、データ挿入実行時に切替える契機を指定し、データ挿入の開始時に、第1の処理によってデータを格納し、指定された契機発生時にデータ格納処理を切替えて、第2の処理によってデータを格納することによってデータベースのページを確保する。
【0009】
【発明の実施の形態】
以下、本発明の実施例を図面に基づいて詳細に説明する。
【0010】
図1は、本発明を適用して、格納データ量が変らないようにデータの挿入と削除の繰返して実行する例を示す。実行例の詳細は後述する。
図2は、本発明を適用した全体構成を示した図である。
【0011】
各情報処理装置230でDBアクセスアプリケーション(a〜c)231が稼動し、情報処理装置200でDBMS203が稼動しており、これら情報処理装置200,230はネットワーク260に接続され相互に通信を行うことができる。
【0012】
DBアクセスアプリケーション231はネットワーク260を介して情報処理装置200のDBMS203に問合せ要求を送る。DBMS203は問合せ要求を受付けると情報処理装置200に接続されたディスク装置210に格納しているDBデータ211をアクセスすることにより問合せ要求に対応した処理を実行する。
【0013】
図3に情報処理装置200、230の構成例を示す。情報処理装置200はCPU313、メモリ314、I/O制御装置312及び通信制御装置311により構成される。メモリ314に格納されたDBMS203のプログラムをCPU313が実行することによりDBMSの処理が行われ、I/O制御装置312によりディスク装置210からのデータの読み出しや書込みが行なわれ、通信制御装置311によりネットワーク260で接続された他の情報処理装置との間でデータの送受信を行う。
【0014】
情報処理装置230はメモリ302に格納されているDBアクセスアプリケーション231を実行する。DBアクセスアプリケーション231がDBMS203に対して問合せを実行すると、情報処理装置230の通信制御装置303より情報処理装置200の通信制御装置311に要求が送信され、DBMS203に問合せが送られる。DBMSは要求に応じた処理を実行し、DBデータ211へのアクセスが必要な場合、I/O制御装置312によってディスク装置210に格納されたDBデータ211へのアクセスが行なわれる。処理結果は、通信制御部311より情報処理装置230の通信制御部303に転送され、要求元DBアクセスアプリケーション231に返される。
【0015】
図4はDBMSの構成図である。DBMS203は処理要求受付け406により処理要求(a〜c)410を受付けると、要求の解析を行い、表定義401、挿入402、削除403、契機定義404及び一括ブロック内再編成405の各操作を行う。これら操作を行う際に参照または更新する情報や表常駐情報431をメモリ上に保持する。
【0016】
DBデータ211にはDB情報422や表データ423が格納される。DB情報422として表情報425等が格納される。
【0017】
表情報425には、表定義時に情報が追加され、表名や構成列情報等が設定される。表情報には契機情報が含まれており、表定義時または契機定義時に指定された契機情報が格納される。
【0018】
表データ423に作成した各表のデータが格納される。挿入操作402により行データを格納し、削除操作403により列データを削除する。
【0019】
DBMS203は、複数の処理要求(a〜c)410を同時に受付けて、それぞれの要求に対応する処理を並列に実行する。
【0020】
図5のように、記憶装置210上の領域を一定の単位で区切り、区切られた個々の領域をブロックと呼ぶ。DBデータ211内の表データ423は、格納データの一覧520とブロックの使用状況530を管理する制御情報501と複数のブロック502〜510をDB格納用に集めたものである。データ格納時には領域の切出しはブロック単位で行なわれ、ブロック内には複数のデータが格納される。1つのブロックにデータが追加できなくなると次のブロックを取得してデータを格納する。
【0021】
表データ423の制御情報501に含まれる格納データの一覧520に基づいて、表データA521がブロック番号1番から4番に格納され、開始ブロックと最終ブロックの間のブロックは、次のブロック位置を示す情報によりチェインされる。また、ブロックの使用状況530は各ブロックをビットマップ情報で管理する。1ビット目が1番のブロックに対応し、同様に2ビット目が2番ブロック、3ビット目が3番ブロックにそれぞれ対応する。図5のブロックの使用状況は、1、2、3、4、5及び6番ブロックが使用中でその他のブロックが未使用であることを示す。
【0022】
ブロックへ格納されるデータは、図6のようなスロット形式で配置される。ブロック600内は、制御情報部601とデータ格納部602に分かれ、制御情報部601に次のブロックとのチェイン情報603やブロック内未使用領域の先頭情報604、スロット数605及びブロック内空領域サイズ606が格納される。スロット数605は本ブロック600に格納されるデータ数であり、スロット数分のスロットが存在し、各スロットにデータの位置が格納される。図6には、スロットが3個(607,608,609)存在し、一番目のスロット607が示すデータ610がデータ位置3000以降に格納される。データはブロックの後ろより詰められて、現在未使用領域の先頭604はデータ位置1500であり、次のデータを格納するためにデータ位置1500よりデータサイズ分の領域が切出される。
【0023】
図7以降を用いて、データベースシステムの表にデータを格納する際の本発明の格納用領域割当て方法に関するDBMSの処理を機能毎に説明する。格納用領域割当て方法に関する機能としては、表定義、挿入、削除、契機定義及び一括ブロック内再編成等の機能がある。処理要求がDBMSに対して行われ、処理要求に対する操作機能の処理が実行される。
【0024】
まず、表定義処理は図7の様に、処理要求700が、作成する表の表名701、表を構成させる列の列名702及び列のデータ型703等と共にDBMS203に送られる。この時、契機情報1(704)及び契機情報2(705)は、指定される場合と指定されない場合がある。DBMS203では要求を解析して表定義操作401を実行し、表名711、列名712、713及び列データ型714、715等をDB情報422内の表情報425に追加する。契機情報1、2が指定されている場合、契機情報1(721)及び契機情報2(722)を契機情報429として表情報425内に登録する。
【0025】
契機情報1は、記憶装置から切出した領域のサイズが指定された値に達した時に、記憶装置より格納用の領域を切出す処理からデータの削除により発生した空き領域をサーチする処理へ切替える契機である。契機情報2は、データの削除によって発生した空き領域をサーチする処理から記憶装置より格納用の領域を切出す処理へ切替える契機であり、さらに、サーチ処理を打切る契機として、前回サーチした領域からサーチを開始して確保済み領域の最後の領域まで参照して空領域が無かった場合と、前回サーチした領域からサーチを開始して最後の領域まで参照した後に領域の先頭から前回サーチした領域まで参照して空領域が無かった場合のどちらかが指定される。
【0026】
次に、データ挿入処理について図9とフロー図10〜図13を用いて説明する。列挿入要求900が、データを挿入する表の表名901及び各列に挿入する列データ902、903等と共にDBMS203に送られる。列のデータ型には整数型又は文字型等の型があり、挿入データには各型に対応したデータが指定される。DBMS203では要求を解析して挿入操作402を実行する。図10は挿入処理のフローを示す。まず、表名911に対応した表情報425及び契機情報429をDB情報422より取得し、表データ423を参照し、図5で説明した格納データ一覧より、対応する表名の情報である開始ブロックと終了ブロックの番号を取得する(1010)。
【0027】
次に、この表に対応する表常駐情報431を探し(1011)、無い場合は新規に作成する(1012から1013)。表常駐情報431には、現在この表のデータ格納領域をどの方法でサーチしているかを示すサーチ情報921と、前回サーチを行った位置情報922が格納されている。表常駐情報431を新規に作成する場合、記憶装置から格納用の領域を切出す処理を実行し、前回サーチを行った位置情報には、対応する表管理データの終了ブロック番号を設定する。
【0028】
表常駐情報431の検出もしくは新規作成の後、位置情報922が示すブロック600を取得し(1014)、ブロックの空領域サイズ606と格納するデータサイズとを比較し(1015)、同じサイズか空領域サイズ606が大きい場合(1015から1017へ)、そのブロックへデータを格納する(1017)。
【0029】
ブロックへデータを格納する処理1017では、図11(a)のフローのように、未使用領域先頭よりデータを格納可能な連続した空領域があるかチェックし(1111)、空領域がある場合(1111から1113)、スロット数のカウントアップ、ブロック内の空き領域へのデータのコピー、対応するスロットより格納したデータのポイント、未使用領域先頭位置の更新、及び、空領域サイズより格納したデータサイズの減算を行う(1113)。
【0030】
空領域が無い場合は(1111から1112)、削除により発生した空領域を含むブロックにおいて空領域サイズ606に対応する領域が連続していない場合である。このような場合、そのままではデータを格納できないため、ブロック内再編成処理を実行する(1112)。ブロック内再編成処理は、ブロック内の有効なデータを一旦外へ全て取出してブロックを初期化した後、データを格納しなおす。
【0031】
格納するデータサイズが大きい場合(1015から1016へ)、格納用ブロックサーチを行う(1016)。
【0032】
格納用ブロックサーチ1016は図11(b)のフローのように、表常駐情報のサーチ方式921を参照し(1121)、▲1▼記憶装置から格納用の領域を切出す場合(1121から1123)、格納用領域切出処理を実行する(1123)。格納用領域切出処理は図12のフローのように、契機情報1が登録されているかチェックし(1210)、登録されている場合(1210から1215)、確保したブロック数が契機情報1に指定された数に達しているかチェックする(1215)。
【0033】
契機情報1が登録されていない場合と(1210から1220)、確保したブロック数が契機情報1に指定された数に達していない場合(1215から1220)、ブロックの使用状況530を参照して未使用ブロックを探し、見つけたブロックに対応する使用状況のビットを使用中に設定し、表管理データの終了ブロック番号のブロックより見つけたブロックへチェインさせ、見つけたブロックの番号を終了ブロック番号に設定し(1220)、ブロックへデータを格納し(格納処理は前述と同じ)(1230)、表常駐情報の位置情報に見つけたブロックの番号を設定する(1240)。
【0034】
確保したブロック数が契機情報1に指定された数に達している場合(1215から1250)、表常駐情報のサーチ情報にデータの削除により発生した空き領域のサーチ処理を設定し、表常駐情報の位置情報に表の開始ブロック番号を格納して(1250)、データの削除により発生した空き領域をサーチする処理を実行する(1260)。
【0035】
データの削除により発生した空き領域をサーチする処理1122は、図13のフローのように、表常駐情報の位置情報に設定されたブロックを取得し(1310)、ブロックの空領域サイズと格納するデータサイズとを比較し(1320)、双方のサイズが同じサイズか空領域サイズがデータサイズよりも大きい場合(1320から1330へ)、そのブロックへデータを格納する(1330)。ブロックへデータを格納する処理は、図11の(a)の処理である。
【0036】
空領域が無い場合は(1320から1340)、契機情報2が終了ブロックで空き領域サーチを終わる指定かどうかをチェックし(1340)、終了ブロックで終わらない場合(1340から1350)、現在のブロック位置が契機情報2で示されるブロックの1つ前のブロックかチェックする(1350)。現在のブロック位置が契機情報2で示されるブロックの1つ前のブロックでない場合(1350から1355)、次のブロックを取得し(1355)、ステップ1320以降を繰返す。
【0037】
現在のブロック位置が契機情報2で示されるブロックの1つ前のブロックだった場合(1350から1360)、表常駐情報のサーチ情報に格納用領域切出し処理を設定し、ブロックの使用状況を参照し未使用ブロックを探し、見つけたブロックに対応する使用状況のビットを使用中に設定し、表管理データの終了ブロック番号のブロックより見つけたブロックへチェインさせ、見つけたブロックの番号を終了ブロック番号に設定し(1360)、ブロックへデータを格納し(格納処理は前述と同じ)(1365)、表常駐情報の位置情報に見つけたブロックの番号を設定する(1370)。
【0038】
参照ブロックが終了ブロックかどうかのチェック(1340)の結果、参照ブロックが終了ブロックの場合(1340から1345)、契機情報2で示されるブロックが終了ブロックかどうかをチェックし(1345)、終了ブロックでない場合(1345から1375)、表の開始ブロックを取得し(1375)、ステップ1320以降を繰返す。
【0039】
契機情報2で示されるブロックが終了ブロックの場合(1345から1360)、表常駐情報のサーチ情報に格納用領域切出し処理を設定し、ブロックの使用状況を参照して未使用ブロックを探し、見つけたブロックに対応する使用状況のビットを使用中に設定し、表管理データの終了ブロック番号のブロックより見つけたブロックへチェインさせ、見つけたブロックの番号を終了ブロック番号に設定し(1360)、ブロックへデータを格納し(格納処理は前述と同じ)(1365)、表常駐情報の位置情報に見つけたブロックの番号を設定する(1370)。
【0040】
図11(b)のフローにおいて、表常駐情報のサーチ情報921の参照(1121)に戻り、表常駐情報のサーチ情報が、▲2▼データの削除により発生した空き領域をサーチする処理の場合(1121から1122)、前述のデータの削除により発生した空き領域をサーチする処理1122を実行する。
【0041】
尚、図12のステップ1220や図13のステップ1360の未使用ブロックサーチで記憶装置から格納用の領域が切出せない場合は、格納領域が無いのでデータ挿入処理はエラーとなる。
【0042】
データ削除処理では、図14の様に、処理要求210が削除する表の表名1401が削除条件1402等と共にDBMS203に送られる。DBMS203では要求を解析して削除操作403を実行する。
【0043】
図5の表データ423の格納データ一覧520に基づいて、削除指定された表名1411に対応した開始ブロックから終了ブロックまで順番にブロックに格納されたデータを参照し、削除条件に該当するデータがある場合、該当データをポイントするスロットの値を0に設定し、削除するデータサイズを空き領域サイズに加算する。
【0044】
契機定義処理では、図16の様に、契機定義要求1600が、契機を定義する表の表名1601、契機情報1(1602)及び契機情報2(1603)と共にDBMS203に送られる。DBMS203では要求を解析して契機定義操作404を実行し、表名1611に対応するDB情報422内の表情報425に契機情報1(1612)及び契機情報2(1613)を契機情報429として登録する。既に、契機情報が登録されている場合も、指定された契機情報を登録しなおす。
【0045】
契機情報1及び契機情報2には、表定義処理で説明したものと同じ内容が指定される。
【0046】
一括ブロック内再編成処理では、図15の様に、一括ブロック内再編成要求1500が、一括ブロック内再編成を行う表の表名1501と共にDBMS203に送られる。DBMS203では要求を解析して一括ブロック内再編成403を実行する。
【0047】
一括ブロック内再編成403は、指定された表について確保されたブロックを順番に参照し、挿入処理で説明した、ブロック内再編成処理を実行する。
【0048】
削除により多くのブロック内に空領域が発生した場合に、予め一括ページ内再編成処理を実行することにより、挿入処理でブロック内再編成が実行されるのを回避できるため、挿入処理の性能劣化を抑えることが出来る。
【0049】
では、これ以降具体的に例を用いて説明を行う。
【0050】
本発明を、日々の売上データを格納し、1年後に、古くなったデータから順に1ヶ月単位でデータを削除する販売管理に適用する。まず、表定義時または契機定義時に、空き領域をサーチする処理の切替え契機1、2を登録する。1年後にデータが消されていくため、格納領域は1年分のデータを格納できるサイズ分を準備すればよい。契機情報1には1年分のデータを格納できるサイズを指定し、また、契機情報2には、前回サーチした領域よりサーチを開始し、一番最後の領域まで参照した後に領域の先頭から前回サーチした領域まで参照して空領域が無かった場合を契機として指定する。
【0051】
図1(a)の表データ100及び(b)の表データ110の様に、まず表データ内に新規のブロックが割当てられ、データが順番に挿入される。1年分データが格納されると、(c)の表データ120の様に契機情報1で指定したサイズ分のブロックが確保され、1年前のデータが1ヶ月分削除される。ブロックサイズが契機情報1に指定されたサイズになると、データの削除により発生した空き領域をサーチする処理に切替わり、データが削除された領域へデータが挿入される。1ヶ月単位でデータが削除されるため、(d)の表データ130、(e)の表データ140及び(f)の表データ150の様に削除された領域へデータが挿入される。(f)の表データ150から(c)の表データ120の状態になり、終了ブロックに格納領域がなくなった場合、契機情報2には、前回サーチした領域よりサーチを開始し、最後の領域まで参照した後に領域の先頭から前回サーチした領域まで参照して空領域が無かった場合が指定されているため、再度開始ブロックより空き領域をサーチする。以上の様に、挿入と削除の繰返しにより、格納データ量が変らない場合、領域の再利用を繰返すことで、格納効率の良い運用が出来る。
【0052】
また、図8の様に、挿入と削除の繰返しで徐々に格納データ量が増加する場合、(a)の表データ800及び(b)の表データ810の様に、表データ内に新規のブロックが割当てられ、データが順番に挿入され、削除も実行される。契機情報1で指定したサイズ分のブロックが確保されると、(c)の表データ820の様に削除された領域へデータが挿入される。削除された領域がなくなると(d)の表データ830の様に新たなブロックが追加され、追加したブロックへデータが挿入される。追加したブロックが満杯になりデータが格納できなくなると、(e)の表データ840の様に再度削除された領域へのデータ挿入が実行され、削除された領域がなくなると(d)の表データ830の様に新たなブロックが追加され、追加したブロックが満杯になると(e)の表データ840の様に再度削除された領域へのデータ挿入が繰返される。削除により発生した領域を再利用しつつ、新規領域の確保も行われるので、格納効率の良い運用が可能となる。
【0053】
一方、ブロック内が満杯になるまでデータを格納した後、ブロック内データが削除されたブロックを再利用する場合、図11(a)のように、フロー未使用領域の先頭からデータを格納できる連続した空領域があるかをチェックし(1111)、空領域が無い場合には、ブロックを再利用する毎に、ブロック内再編成の実行が必要となる。挿入処理でブロック内再編成を実行すると挿入処理の性能が劣化する。ブロック内データが削除されたブロックの再利用が始まる前に、一括ブロック内再編成処理を実行することにより、ブロックの再利用時に、挿入処理でブロック内再編成処理の実行を回避できるため、挿入処理の性能劣化を回避できる。
【0054】
以上の説明により、再編成処理実行のためにDBサービスを停止させることなく、格納効率の劣化を防止でき、再編成を無くし、又は再編成時期を遅らせることができる。
【0055】
また、本実施例においてサーチ方法の切替えは、契機情報1及び契機情報2に指定された情報により行うが、コマンドにより強制的にサーチ方法を切替えたり、一括ブロック内再編成処理で空領域の統計を取得し、一定量の空きが発生した場合にサーチ方法を切替えることもできる。
【0056】
図5及び図6に示したDBの内部構造やブロックの構造は、データ格納管理の実現方法の例であり、他の構造による管理方法でも本発明を適用できる。
【0057】
以上に述べた本発明のページ確保方法を実行するためのプログラムを計算機で読み取り可能な記録媒体に格納し、プログラムをメモリに読み込んで実行することもできる。また、本発明のページ確保方法を電子回路等のハードウエアで実現することもできる。
【0058】
【発明の効果】
本発明によれば、ユーザに、該当表の運用において再利用するのに十分な空領域が発生するポイントを見積もり、切替え契機を登録してもらうことにより、最初は、新たなブロックを追加したブロックへデータを挿入する処理を実行し、十分な空領域が発生した契機で、削除された領域へデータを挿入する処理が実行される。
【0059】
切替え契機をチェックする以外に挿入処理や削除処理に余分な処理を行わなくても、削除により発生した空領域を再利用できるため、DBサービスを停止させずに、格納効率の劣化防止を実現できる。そのため、記憶領域の再編成を無くし、又は再編成時期を遅らせることができる。
【図面の簡単な説明】
【図1】格納データ量が変らない場合の挿入と削除の繰返し実行例である。
【図2】システムの全体構成である。
【図3】ハードウェア構成である。
【図4】DBMSの構成である。
【図5】DBデータの内部構造である。
【図6】ブロックの構造である。
【図7】表定義要求である。
【図8】徐々にデータ量が増加する場合の挿入と削除の繰返し実行例である。
【図9】列挿入要求である。
【図10】挿入処理フローである。
【図11】ブロックへデータ格納、格納用ブロックサーチ処理フローである。
【図12】格納用領域切出し処理フローである。
【図13】空領域サーチ処理フローである。
【図14】削除要求である。
【図15】一括ブロック内再編成処理である。
【図16】契機定義要求である。
【符号の説明】
200:情報処理装置、203:DBMS、230:情報処理装置、
231:DBアクセスアプリケーション、260:ネットワーク、
301:CPU、302:メモリ、303:通信制御装置、
311:通信制御装置、312:I/O制御装置、313:CPU、
314:メモリ
Claims (5)
- ユーザからの問合せ要求を受付け解析し処理を実行し、前記問合せ要求の解析結果に基づくデータ操作を実行し、データを記憶装置に格納するデータベースシステムにおけるデータベースの処理方法において、
前記データベースシステムは、
データベースへの前記問合せ要求が、データ挿入であった場合に、データを格納する際に、前記記憶装置の記憶領域より所定量の大きさの領域を切り出し、切出した領域へデータを格納し、切り出してきた領域内にまだ空きがある場合は、それ以降の要求されるデータ挿入で、要求されたデータを該切り出してきた領域内に格納し、該切り出してきた領域内に空きがなくなった場合に所定量の大きさの領域を切り出して、切り出した領域へデータを格納する処理を実行する第1の処理と、
前記切出した領域群内を順番に参照し、データ削除により発生した空き領域より、挿入要求されたデータを格納可能な場所を探し、探した場所へデータを格納する第2の処理を有し、
表定義実行時に、データ格納処理を前記第1の処理から前記第2の処理へ切り替える契機が予め定義され、
前記データ挿入要求を受付け、データ挿入実行時に、
データ格納処理を第1の処理で実行している場合で、切り出してきた領域内にデータを格納するための空きがなくなった場合に、前記契機が発生していないかチェックし、
前記契機が発生していない場合、所定量の大きさの領域を切り出して、切り出した領域へデータを格納する処理を実行し、
前記契機が発生していた場合、データ格納処理を前記第2の処理に切り替えて、データを格納する処理を実行し、
データ格納処理を第2の処理で実行している場合、
前記切出した領域群内を順番に参照し、データ削除により発生した空き領域より、挿入要求されたデータ格納可能な場所を探し、格納場所が無かった時に、
データ格納処理を前記第1の処理に切り替えて、データを格納する処理を実行することを特徴とするデータベースの処理方法。 - 前記切出し済み領域群からのデータ削除により発生した空き領域へデータを格納する処理
において、
切出し済み領域群から格納可能な領域を探し出し、データ格納を実行する際に、データを
格納した領域を記憶し、
次のデータ挿入要求実行時に、切出し済み領域群から格納可能な領域を探す際に、切り出し済み領域群の中より前記記憶したデータを格納した領域より、格納可能な領域を探し始めることを特徴とする請求項1に記載のデータベースの処理方法。 - データの削除により発生した空き領域より、格納可能な領域を探す処理は、
前回のデータ挿入要求実行時に、記憶していたデータを格納した領域よりサーチを開始して確保済み領域の最後の領域まで参照して空領域が無かった場合と、前回のデータ挿入要求実行時に、記憶していたデータを格納した領域よりサーチを開始して確保済みの領域の最後の領域まで参照し、再度確保済みの領域の先頭から前回サーチを開始した領域まで参照して空領域が無かった場合とのいずれかとすることを特徴とする請求項1または2に記載のデータベースの処理方法。 - 記憶装置より格納用の領域を切出す処理からデータの削除により発生した空き領域をサ
ーチする処理へ切替える前記契機は、前記記憶装置より切出した領域群のサイズが所定の量に達した場合であることを特徴とする請求項1から3のいずれかに記載のデータベースの処理方法。 - ユーザからの問合せ要求を受付け解析し処理を実行し、前記問合せ要求の解析結果に基づくデータ操作を実行し、データを記憶装置に格納するデータベースシステムにおけるページ確保処理装置は、
データベースへの前記問合せ要求が、データ挿入であった場合に、データを格納する際に、前記記憶装置の記憶領域より所定量の大きさの領域を切り出し、切出した領域へデータを格納し、切り出してきた領域内にまだ空きがある場合は、それ以降の要求されるデータ挿入で、要求されたデータを該切り出してきた領域内に格納し、該切り出してきた領域内に空きがなくなった場合に所定量の大きさの領域を切り出して、切り出した領域へデータを格納する処理を実行する第1の処理手段と、
前記切出した領域群内を順番に参照し、データ削除により発生した空き領域より、挿入要求されたデータを格納可能な場所を探し、探した場所へデータを格納する第2の処理手段を有し、
表定義実行時に、データ格納処理を前記第1の処理から前記第2の処理へ切り替える契機を指定する手段と、
前記データ挿入要求を受付け、データ挿入実行時に、
データ格納処理を第1の処理手段で実行している場合で、切り出してきた領域内にデータを格納するための空きがなくなった場合に、前記指定された契機が発生していないかチェックし、
前記契機が発生していない場合、所定量の大きさの領域を切り出して、切り出した領域へデータを格納する処理を実行する手段と、
前記契機が発生していた場合、データ格納処理を前記第2の処理に切り替えて、データを格納する処理を実行する手段と、
データ格納処理を第2の処理手段で実行している場合、
前記切出した領域群内を順番に参照し、データ削除により発生した空き領域より、挿入要求されたデータ格納可能な場所を探し、格納場所が無かった時に、
データ格納処理を前記第1の処理に切り替えて、データを格納する処理を実行する手段とを有することを特徴とするデータベースシステムにおけるページ確保処理装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002140893A JP4214712B2 (ja) | 2002-05-16 | 2002-05-16 | データベースのページ確保処理方法 |
US10/353,209 US7200628B2 (en) | 2002-05-16 | 2003-01-27 | Method for reserving pages of database |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002140893A JP4214712B2 (ja) | 2002-05-16 | 2002-05-16 | データベースのページ確保処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003330765A JP2003330765A (ja) | 2003-11-21 |
JP4214712B2 true JP4214712B2 (ja) | 2009-01-28 |
Family
ID=29416962
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002140893A Expired - Lifetime JP4214712B2 (ja) | 2002-05-16 | 2002-05-16 | データベースのページ確保処理方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7200628B2 (ja) |
JP (1) | JP4214712B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8315972B2 (en) * | 2003-09-26 | 2012-11-20 | Microsoft Corporation | Method for maintaining databases information about multiple instances of an activity generating, updating virtual OLAP cube based on modified star-schema |
EP1676195A4 (en) * | 2003-10-23 | 2007-08-29 | Innopath Software Inc | DYNAMIC ADDRESSING BY CENTRALIZED DYNAMIC ADDRESSING MANAGER |
EP1706871B1 (en) * | 2003-12-18 | 2008-10-08 | Matsushita Electric Industries Co., Ltd. | Recording apparatus, integrated circuit for recording apparatus, recording method, computer program, and recording medium which facilitates content recording |
US8041742B1 (en) * | 2004-12-20 | 2011-10-18 | American Megatrends, Inc. | Method, system, and apparatus for providing generic database services within an extensible firmware interface environment |
GB0623255D0 (en) * | 2006-11-22 | 2007-01-03 | Ibm | Apparatus and method for resource reclamation in data storage |
US8360740B2 (en) * | 2010-02-12 | 2013-01-29 | Synerject, Llc | Integrated fuel delivery module and methods of manufacture |
WO2012111119A1 (ja) * | 2011-02-17 | 2012-08-23 | 株式会社 日立製作所 | 情報処理方法、情報処理装置、及びプログラム記憶媒体 |
JP5861545B2 (ja) * | 2012-03-30 | 2016-02-16 | 富士通株式会社 | 情報処理装置、履歴制御方法および履歴制御プログラム |
KR101368441B1 (ko) | 2012-08-21 | 2014-03-03 | 네이버비즈니스플랫폼 주식회사 | 데이터베이스의 공간 재사용 장치, 방법 및 컴퓨터 판독 가능한 기록 매체 |
US10725987B2 (en) | 2014-11-25 | 2020-07-28 | Sap Se | Forced ordering of a dictionary storing row identifier values |
US9898551B2 (en) * | 2014-11-25 | 2018-02-20 | Sap Se | Fast row to page lookup of data table using capacity index |
US10474648B2 (en) | 2014-11-25 | 2019-11-12 | Sap Se | Migration of unified table metadata graph nodes |
US10042552B2 (en) | 2014-11-25 | 2018-08-07 | Sap Se | N-bit compressed versioned column data array for in-memory columnar stores |
US9965504B2 (en) | 2014-11-25 | 2018-05-08 | Sap Se | Transient and persistent representation of a unified table metadata graph |
US10552402B2 (en) | 2014-11-25 | 2020-02-04 | Amarnadh Sai Eluri | Database lockless index for accessing multi-version concurrency control data |
US9875024B2 (en) | 2014-11-25 | 2018-01-23 | Sap Se | Efficient block-level space allocation for multi-version concurrency control data |
US10296611B2 (en) | 2014-11-25 | 2019-05-21 | David Wein | Optimized rollover processes to accommodate a change in value identifier bit size and related system reload processes |
US10255309B2 (en) | 2014-11-25 | 2019-04-09 | Sap Se | Versioned insert only hash table for in-memory columnar stores |
US9891831B2 (en) | 2014-11-25 | 2018-02-13 | Sap Se | Dual data storage using an in-memory array and an on-disk page structure |
US10558495B2 (en) | 2014-11-25 | 2020-02-11 | Sap Se | Variable sized database dictionary block encoding |
US9886466B2 (en) | 2015-03-24 | 2018-02-06 | International Business Machines Corporation | Optimizing space management of tablespaces in database systems |
US11520760B2 (en) * | 2015-10-23 | 2022-12-06 | Oracle International Corporation | System and method for providing bottom-up aggregation in a multidimensional database environment |
CN109783571B (zh) * | 2018-12-13 | 2023-10-27 | 平安科技(深圳)有限公司 | 隔离环境的数据处理方法、装置、计算机设备及存储介质 |
US11157191B2 (en) * | 2019-04-26 | 2021-10-26 | Dell Products L.P. | Intra-device notational data movement system |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411964B1 (en) * | 1998-12-23 | 2002-06-25 | International Business Machines Corporation | Methods for in-place online reorganization of a database |
CA2281287C (en) * | 1999-09-01 | 2003-03-11 | Ibm Canada Limited-Ibm Canada Limitee | Method and system for efficiently searching for free space in a table of a relational database having a clustering index |
US6834290B1 (en) * | 1999-11-15 | 2004-12-21 | Quest Software, Inc. | System and method for developing a cost-effective reorganization plan for data reorganization |
US6865657B1 (en) * | 2000-06-02 | 2005-03-08 | Sun Microsystems, Inc. | Garbage collector for a virtual heap |
-
2002
- 2002-05-16 JP JP2002140893A patent/JP4214712B2/ja not_active Expired - Lifetime
-
2003
- 2003-01-27 US US10/353,209 patent/US7200628B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US7200628B2 (en) | 2007-04-03 |
JP2003330765A (ja) | 2003-11-21 |
US20030217075A1 (en) | 2003-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4214712B2 (ja) | データベースのページ確保処理方法 | |
JP4162183B2 (ja) | データベース管理システムの静的な情報を取得する手段を有する記憶装置 | |
US7349927B2 (en) | Transactional file system for realizing atomic update of plural files by transactions | |
US6477535B1 (en) | Method and apparatus for concurrent DBMS table operations | |
US6216199B1 (en) | Hardware mechanism for managing cache structures in a data storage system | |
US5642501A (en) | Computer method and apparatus for asynchronous ordered operations | |
US7107294B2 (en) | Method and apparatus for interrupting updates to a database to provide read-only access | |
JP3628032B2 (ja) | コンサーバティブ・スタックとジェネレイショナル・ヒープガーベージ・コレクション用コンピュータシステム及び方法 | |
US7640276B2 (en) | Backup system, program and backup method | |
US20020083037A1 (en) | Instant snapshot | |
US11288128B2 (en) | Indexing a relationship structure of a filesystem | |
CN113568582B (zh) | 数据管理方法、装置和存储设备 | |
CN111459884B (zh) | 一种数据的处理方法、装置、计算机设备和存储介质 | |
CN111198856A (zh) | 文件管理方法、装置、计算机设备和存储介质 | |
JP2853608B2 (ja) | 並列処理システムのファイルアクセス制御方式 | |
US8862639B1 (en) | Locking allocated data space | |
US6691121B1 (en) | Method and apparatus for online and dynamic extension of IMS data entry databases | |
JPH096653A (ja) | データベースのチェックを行う情報処理装置 | |
JP2933486B2 (ja) | データベースの同時全件検索方法 | |
US11567671B2 (en) | Method, electronic device, and computer program product for storage management | |
JP4131579B2 (ja) | データ管理システムおよびデータ管理方法 | |
JP3398672B2 (ja) | 中間データ格納装置 | |
JP2002091825A (ja) | ネットワークキャッシュ装置およびネットワークキャッシュ制御方法および記録媒体 | |
JPH0398110A (ja) | 多重データ読み込み方式 | |
JP2740451B2 (ja) | カタログ管理ファイル最適化方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050114 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20060419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080422 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080620 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080911 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080926 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20081014 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081027 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 4214712 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131114 Year of fee payment: 5 |
|
EXPY | Cancellation because of completion of term |