(57)【要約】【課題】  データベースを仮想空間上のページングに影響されることなくアクセスしディスクＩ／Ｏ回数を減少させること。【解決手段】  ユーザアプリケーションプログラムが同一のリレーショナルデータベースにアクセスする際の制御方法であって、ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、ＳＱＬ発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とする。【選択図】      図１
2006235903.tif 000002
【特許請求の範囲】
【請求項１】
ユーザアプリケーションプログラムが同一のリレーショナルデータベースにアクセスする際の制御方法であって、
ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、ＳＱＬ発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とするリレーショナルデータベースのアクセス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＱＬにてアクセスするリレーショナルデータベースのアクセス制御方法に関するものである。
【背景技術】
【０００２】
データベースへのアクセス方法におけるバッファリング技法は、データベースへアクセスする場合のディスクＩ／Ｏ回数に大きく影響を与える。
従来の方法としてはＬＲＵ（Least Recently Used）管理方法およびデータ常駐指定方法が知られている。
ＬＲＵ管理方法は、メモリ領域を効率よく管理するための手法で、直近に使用されたデータはメモリ領域に残し、最も古いデータ（最も長い間使用されていないデータ）があるメモリ領域から順に利用する。
データ常駐指定方法は、データベースの表や表定義情報などをメモリに常駐するように指定する方法であり、マスタテーブルなど頻繁にアクセスされるものがメモリに常駐していると、ディスクＩ／Ｏが発生せず、データベースのアクセス効率が良くなる。
このようなデータベースアクセス方法として、下記の特許文献１に開示されたものがある。
【特許文献１】特開２００３−２７１６４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＬＲＵ管理方方法にあっては、全てのデータベースのアクセスに関して扱いが同じでかつＤＢＭＳ（database management system）で管理する同一の仮想空間を使用する。例えば先にデータも少なく次検索でのページヒット率の高いテーブル系データベースを処理し、後からデータが多く次検索でのページヒット率の低いデータ系データベースの検索処理を行うと、ＬＲＵ管理されているのでデータの大きさによっては一部のデータが仮想空間から追い出されてしまう、その後再度テーブル系データベースのデータを参照しようとして仮想空間にデータがない場合、データベースからデータを読み込まなければならない。そのことによりディスクＩ／Ｏの発生が起こり処理時間の低下につながる。
データ常駐指定方法の場合は、表定義情報にメモリ常駐の指定がしてあるために仮想空間の大きさにより指定できるデータベースの数が限られてしまいテーブル系データベースの数が多い場合には不都合がある。
【０００４】
本発明の目的は、データベースを仮想空間上のページングに影響されることなくアクセスしディスクＩ／Ｏ回数を減少させることができるリレーショナルデータベースのアクセス制御方法を提供することにある。
【課題を解決するための手段】
【０００５】
上記目的を達成するために本発明は、ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、ＳＱＬ発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、頻繁にアクセスされてデータ量が少ないテーブル系データベースを、他のデータ系データベースとは別に全レコードＪＯＢ実行空間に置くことにより、仮想空間上で行われるページング・ページアウトに係わることなくアクセスすることができる。
そのことにより、実際のデータベースへのディスクＩ／Ｏ回数も減少させることができる。
また、必要なデータベースの選択がユーザアプリケーション上で行うことができるのでメモリのサイズによって常駐させるデータベースの選択も行うことができる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明を実施の形態に基づいて説明する。
図１は本発明の実施の形態を示すコンピュータシステム構成図である。
図１に示すように、本実施形態におけるシステムはＪＯＢが実行されたとき主記憶装置に取得するＪＯＢ実行空間１００、実行側とデータでース間のインタフェースとなるソフトウエアＤＢＭＳ２００、主記憶装置上にありＤＢＭＳがデータの操作を行うページの連続領域である仮想空間３００、仮想空間にデータが存在しない場合データベースより仮想記憶にページ単位でデータを取得するＯＳ（operating system）４００、補助記憶装置にあるデータベース５００からなっている。
【０００８】
ＪＯＢ実行空間には、業務固有の処理を行うユーザアプリケーションプログラム１００ａ、ユーザアプリケーションプログラム１００ａがデータベース５００へのアクセスを行うためのＳＱＬ発行プログラム１００ｂ、前出のＳＱＬ発行プログラム１００ｂが読込んだレコードの設定を行うデータベース格納エリア１００ｃが存在する。
【０００９】
図２は、処理対象となるユーザアプリケーションプログラム１００ａから、ＳＱＬ発行プログラム１００ｂへ引き渡すインタフェースへの項目設定手順を示すフローチャートである。
図３に両モジュール間の受渡を行うインタフェースのレイアウトを示す。
先ず、ステップＳ２０１にて該当データベース５００をアクセスするためのインデックスの検索キーをＳＱＬ発行プログラム１００ｂのインタフェースに設定する。
ステップＳ２０２ではそのプログラムが大量データを扱う処理かどうかを判断する。
大量データを扱わない処理である場合は、ステップＳ２０３に進み一括読込フラグを設定せずＳＱＬ発行プログラム１００ｂを実行し、大量データを扱う場合はステップＳ２０４に進み次にアクセスするＤＢがテーブルＤＢであるかどうか判断する。
テーブルＤＢでない場合はステップＳ２０５に進みＳ２０３と同様の処理を行う、テーブルＤＢの場合はステップＳ２０６に進み一括読込フラグを設定し、ＳＱＬ発行プログラム１００ｂを実行する。
【００１０】
図４は、ＳＱＬ発行プログラム１００ｂの処理を示すフローチャートである。
先ずステップＳ４０１にてユーザアプリケーションプログラム１００ａから引き渡されたインタフェースの一括読込みフラグが設定されているかどうかを判別する。
設定されていない場合、ステップＳ４０２に進み、図５（ａ）のように設定された検索キーでデータベース５００を検索するＳＱＬを発行し、ＤＢＭＳ２００に引渡し、ステップＳ４０３にてＤＢＭＳ２００にて取得したデータをユーザアプリケーションへの引渡しのインタフェースに設定し、ユーザアプリケーションプログラム１００ａに処理を戻す。
【００１１】
一括読込みフラグが設定されている場合は、ステップＳ４０４にてデータベース格納エリア１００ｃの状態を解析し、テーブル全件格納できるかどうかをチェックする。
格納できない場合は、ステップＳ４０２に進み前記の処理を実行する。
格納できる場合は、ステップＳ４０５に進み図５（ｂ）のようにカーソル発行のＳＱＬを発行し、ＤＢＭＳ２００に引渡し、ステップＳ４０６にて図５（ｃ）のように発行したカーソルにてデータを検索するＳＱＬを発行し、ＤＢＭＳ２００に引き渡す。
【００１２】
ステップＳ４０７にてＤＢＭＳ２００にてデータを取得された場合は、ステップＳ４０８に進みデータベース格納エリア１００ｃにデータを設定する。
データが続く間繰り返しステップＳ４０６からステップＳ４０８を繰り返し、データが終了したらステップＳ４０９に進み、ユーザアプリケーションプログラム１００ａから要求された検索キーのデータをデータベース格納エリア１００ｃから取得し、ユーザアプリケーションへの引渡しのインタフェースに設定し、ユーザアプリケーションプログラム１００ａに処理を戻す。
【００１３】
図６は、ＤＢＭＳ２００と仮想記憶３００とＯＳ４００とデータベース５００に関する処理のフローチャートである。
ＤＢＭＳ２００はステップＳ６０１にてＳＱＬ発行プログラム１００ｂから発行されたＳＱＬより仮想記憶にデータがあるかどうかを検索する。
データがない場合は、ステップＳ６０２にてＯＳ４００を経由してデータベース５００より該当データが格納されているページを取得する。
その際、ステップＳ６０３にて仮想記憶にそのページを書き込める空きがあるかどうかをチェックし、空きがない場合はステップＳ６０４にて仮想記憶に登録されているページの中から最古のページをページアウトし、ステップＳ６０５にて仮想記憶に登録する。
空きがある場合は、ステップＳ６０５にて仮想記憶に登録する。そして、ステップＳ６０６にて仮想記憶に最初から存在する場合、またない場合、前記のように仮想記憶に登録されたデータをＤＢＭＳ２００が取り込む。
そして、ＳＱＬ発行プログラム１００ｂへの戻りのインタフェースに設定し引き渡す。その後、テーブルデータ全件読み込み中の際は、ステップＳ６０７にてテーブルデータを全て読込んだかを確認し、全部取り込んだ場合はステップＳ６０８にて仮想記憶中の該当テーブルＤＢのページをすぐページアウト対象になるように最古の検索状態にする。
【００１４】
図７は、データベース格納エリア１００ｃ設定後のＳＱＬプログラム１００ｂの処理を示すフローチャートである。
ユーザアプリケーションプログラム１００ａよりＤＢ検索の要求を受けたＳＱＬ発行プログラム１００ｂは、ステップＳ７０１にて該当のデータベースがすでにデータベース格納エリア１００ｃに格納されているかを確認し、格納されていない場合はステップＳ７０２のように通常のＳＱＬ発行プログラムの処理（図２の処理）を行い、ステップＳ７０４のように取得したデータをユーザアプリケーションプログラムへのインタフェースに設定する。
既に格納されている場合は、ステップＳ７０３のようにユーザアプリケーションプログラム１００ａより設定された検索キーに該当するデータを検索し、ステップＳ７０４のように取得したデータをユーザアプリケーションプログラムへのインタフェースに設定する。
【図面の簡単な説明】
【００１５】
【図１】本発明のシステム全体の構成図である。
【図３】ユーザアプリケーションプログラムのインタフェースレイアウトの構成を示す図である。
【図２】ＳＱＬ発行プログラムへ渡すインタフェース項目設定手順を示すフローチャートである。
【図４】ＳＱＬ発行プログラムの処理を示すフローチャートである。
【図５】ＳＱＬ記述例を示す図である。
【図６】ＤＢＭＳと仮想空間の動きを示すフローチャートである。
【図７】データベース格納エリア設定後のＳＱＬ発行プログラムの動きを示すフローチャートである。
【符号の説明】
【００１６】
１００    ＪＯＢ実行空間
１００ａ  ユーザアプリケーションプログラム
１００ｂ  ＳＱＬ発行プログラム
１００ｃ  データベース格納エリア
２００    ＤＢＭＳ
３００    仮想空間
４００    ＯＳ
５００    データベース
【図１】
2006235903.tif 000003
【図２】
2006235903.tif 000004
【図３】
2006235903.tif 000005
【図４】
2006235903.tif 000006
【図５】
2006235903.tif 000007
【図６】
2006235903.tif 000008
【図７】
2006235903.tif 000009