JP2006235903A - リレーショナルデータベースのアクセス制御方法 - Google Patents

リレーショナルデータベースのアクセス制御方法 Download PDF

Info

Publication number
JP2006235903A
JP2006235903A JP2005048334A JP2005048334A JP2006235903A JP 2006235903 A JP2006235903 A JP 2006235903A JP 2005048334 A JP2005048334 A JP 2005048334A JP 2005048334 A JP2005048334 A JP 2005048334A JP 2006235903 A JP2006235903 A JP 2006235903A
Authority
JP
Japan
Prior art keywords
database
data
user application
program
sql
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.)
Pending
Application number
JP2005048334A
Other languages
English (en)
Inventor
Yasushi Yamashita
泰史 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP2005048334A priority Critical patent/JP2006235903A/ja
Publication of JP2006235903A publication Critical patent/JP2006235903A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 データベースを仮想空間上のページングに影響されることなくアクセスしディスクI/O回数を減少させること。
【解決手段】 ユーザアプリケーションプログラムが同一のリレーショナルデータベースにアクセスする際の制御方法であって、ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、SQL発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とする。
【選択図】 図1

Description

本発明は、SQLにてアクセスするリレーショナルデータベースのアクセス制御方法に関するものである。
データベースへのアクセス方法におけるバッファリング技法は、データベースへアクセスする場合のディスクI/O回数に大きく影響を与える。
従来の方法としてはLRU(Least Recently Used)管理方法およびデータ常駐指定方法が知られている。
LRU管理方法は、メモリ領域を効率よく管理するための手法で、直近に使用されたデータはメモリ領域に残し、最も古いデータ(最も長い間使用されていないデータ)があるメモリ領域から順に利用する。
データ常駐指定方法は、データベースの表や表定義情報などをメモリに常駐するように指定する方法であり、マスタテーブルなど頻繁にアクセスされるものがメモリに常駐していると、ディスクI/Oが発生せず、データベースのアクセス効率が良くなる。
このようなデータベースアクセス方法として、下記の特許文献1に開示されたものがある。
特開2003−271649号公報
しかしながら、LRU管理方方法にあっては、全てのデータベースのアクセスに関して扱いが同じでかつDBMS(database management system)で管理する同一の仮想空間を使用する。例えば先にデータも少なく次検索でのページヒット率の高いテーブル系データベースを処理し、後からデータが多く次検索でのページヒット率の低いデータ系データベースの検索処理を行うと、LRU管理されているのでデータの大きさによっては一部のデータが仮想空間から追い出されてしまう、その後再度テーブル系データベースのデータを参照しようとして仮想空間にデータがない場合、データベースからデータを読み込まなければならない。そのことによりディスクI/Oの発生が起こり処理時間の低下につながる。
データ常駐指定方法の場合は、表定義情報にメモリ常駐の指定がしてあるために仮想空間の大きさにより指定できるデータベースの数が限られてしまいテーブル系データベースの数が多い場合には不都合がある。
本発明の目的は、データベースを仮想空間上のページングに影響されることなくアクセスしディスクI/O回数を減少させることができるリレーショナルデータベースのアクセス制御方法を提供することにある。
上記目的を達成するために本発明は、ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、SQL発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とする。
本発明によれば、頻繁にアクセスされてデータ量が少ないテーブル系データベースを、他のデータ系データベースとは別に全レコードJOB実行空間に置くことにより、仮想空間上で行われるページング・ページアウトに係わることなくアクセスすることができる。
そのことにより、実際のデータベースへのディスクI/O回数も減少させることができる。
また、必要なデータベースの選択がユーザアプリケーション上で行うことができるのでメモリのサイズによって常駐させるデータベースの選択も行うことができる。
以下、本発明を実施の形態に基づいて説明する。
図1は本発明の実施の形態を示すコンピュータシステム構成図である。
図1に示すように、本実施形態におけるシステムはJOBが実行されたとき主記憶装置に取得するJOB実行空間100、実行側とデータでース間のインタフェースとなるソフトウエアDBMS200、主記憶装置上にありDBMSがデータの操作を行うページの連続領域である仮想空間300、仮想空間にデータが存在しない場合データベースより仮想記憶にページ単位でデータを取得するOS(operating system)400、補助記憶装置にあるデータベース500からなっている。
JOB実行空間には、業務固有の処理を行うユーザアプリケーションプログラム100a、ユーザアプリケーションプログラム100aがデータベース500へのアクセスを行うためのSQL発行プログラム100b、前出のSQL発行プログラム100bが読込んだレコードの設定を行うデータベース格納エリア100cが存在する。
図2は、処理対象となるユーザアプリケーションプログラム100aから、SQL発行プログラム100bへ引き渡すインタフェースへの項目設定手順を示すフローチャートである。
図3に両モジュール間の受渡を行うインタフェースのレイアウトを示す。
先ず、ステップS201にて該当データベース500をアクセスするためのインデックスの検索キーをSQL発行プログラム100bのインタフェースに設定する。
ステップS202ではそのプログラムが大量データを扱う処理かどうかを判断する。
大量データを扱わない処理である場合は、ステップS203に進み一括読込フラグを設定せずSQL発行プログラム100bを実行し、大量データを扱う場合はステップS204に進み次にアクセスするDBがテーブルDBであるかどうか判断する。
テーブルDBでない場合はステップS205に進みS203と同様の処理を行う、テーブルDBの場合はステップS206に進み一括読込フラグを設定し、SQL発行プログラム100bを実行する。
図4は、SQL発行プログラム100bの処理を示すフローチャートである。
先ずステップS401にてユーザアプリケーションプログラム100aから引き渡されたインタフェースの一括読込みフラグが設定されているかどうかを判別する。
設定されていない場合、ステップS402に進み、図5(a)のように設定された検索キーでデータベース500を検索するSQLを発行し、DBMS200に引渡し、ステップS403にてDBMS200にて取得したデータをユーザアプリケーションへの引渡しのインタフェースに設定し、ユーザアプリケーションプログラム100aに処理を戻す。
一括読込みフラグが設定されている場合は、ステップS404にてデータベース格納エリア100cの状態を解析し、テーブル全件格納できるかどうかをチェックする。
格納できない場合は、ステップS402に進み前記の処理を実行する。
格納できる場合は、ステップS405に進み図5(b)のようにカーソル発行のSQLを発行し、DBMS200に引渡し、ステップS406にて図5(c)のように発行したカーソルにてデータを検索するSQLを発行し、DBMS200に引き渡す。
ステップS407にてDBMS200にてデータを取得された場合は、ステップS408に進みデータベース格納エリア100cにデータを設定する。
データが続く間繰り返しステップS406からステップS408を繰り返し、データが終了したらステップS409に進み、ユーザアプリケーションプログラム100aから要求された検索キーのデータをデータベース格納エリア100cから取得し、ユーザアプリケーションへの引渡しのインタフェースに設定し、ユーザアプリケーションプログラム100aに処理を戻す。
図6は、DBMS200と仮想記憶300とOS400とデータベース500に関する処理のフローチャートである。
DBMS200はステップS601にてSQL発行プログラム100bから発行されたSQLより仮想記憶にデータがあるかどうかを検索する。
データがない場合は、ステップS602にてOS400を経由してデータベース500より該当データが格納されているページを取得する。
その際、ステップS603にて仮想記憶にそのページを書き込める空きがあるかどうかをチェックし、空きがない場合はステップS604にて仮想記憶に登録されているページの中から最古のページをページアウトし、ステップS605にて仮想記憶に登録する。
空きがある場合は、ステップS605にて仮想記憶に登録する。そして、ステップS606にて仮想記憶に最初から存在する場合、またない場合、前記のように仮想記憶に登録されたデータをDBMS200が取り込む。
そして、SQL発行プログラム100bへの戻りのインタフェースに設定し引き渡す。その後、テーブルデータ全件読み込み中の際は、ステップS607にてテーブルデータを全て読込んだかを確認し、全部取り込んだ場合はステップS608にて仮想記憶中の該当テーブルDBのページをすぐページアウト対象になるように最古の検索状態にする。
図7は、データベース格納エリア100c設定後のSQLプログラム100bの処理を示すフローチャートである。
ユーザアプリケーションプログラム100aよりDB検索の要求を受けたSQL発行プログラム100bは、ステップS701にて該当のデータベースがすでにデータベース格納エリア100cに格納されているかを確認し、格納されていない場合はステップS702のように通常のSQL発行プログラムの処理(図2の処理)を行い、ステップS704のように取得したデータをユーザアプリケーションプログラムへのインタフェースに設定する。
既に格納されている場合は、ステップS703のようにユーザアプリケーションプログラム100aより設定された検索キーに該当するデータを検索し、ステップS704のように取得したデータをユーザアプリケーションプログラムへのインタフェースに設定する。
本発明のシステム全体の構成図である。 ユーザアプリケーションプログラムのインタフェースレイアウトの構成を示す図である。 SQL発行プログラムへ渡すインタフェース項目設定手順を示すフローチャートである。 SQL発行プログラムの処理を示すフローチャートである。 SQL記述例を示す図である。 DBMSと仮想空間の動きを示すフローチャートである。 データベース格納エリア設定後のSQL発行プログラムの動きを示すフローチャートである。
符号の説明
100 JOB実行空間
100a ユーザアプリケーションプログラム
100b SQL発行プログラム
100c データベース格納エリア
200 DBMS
300 仮想空間
400 OS
500 データベース

Claims (1)

  1. ユーザアプリケーションプログラムが同一のリレーショナルデータベースにアクセスする際の制御方法であって、
    ユーザアプリケーションから大量データを扱う処理であるという宣言を受けた場合、SQL発行プログラムよりリレーショナルデータベースを全件実行空間上のデータベース格納エリアに設定し、ユーザアプリケーションプログラムより次要求が発生した際は設定したデータベース格納エリアを検索し、要求元にデータを返すステップを備えることを特徴とするリレーショナルデータベースのアクセス制御方法。
JP2005048334A 2005-02-24 2005-02-24 リレーショナルデータベースのアクセス制御方法 Pending JP2006235903A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005048334A JP2006235903A (ja) 2005-02-24 2005-02-24 リレーショナルデータベースのアクセス制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005048334A JP2006235903A (ja) 2005-02-24 2005-02-24 リレーショナルデータベースのアクセス制御方法

Publications (1)

Publication Number Publication Date
JP2006235903A true JP2006235903A (ja) 2006-09-07

Family

ID=37043493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005048334A Pending JP2006235903A (ja) 2005-02-24 2005-02-24 リレーショナルデータベースのアクセス制御方法

Country Status (1)

Country Link
JP (1) JP2006235903A (ja)

Similar Documents

Publication Publication Date Title
US11775524B2 (en) Cache for efficient record lookups in an LSM data structure
US10664497B2 (en) Hybrid database table stored as both row and column store
US10346383B2 (en) Hybrid database table stored as both row and column store
CN107273522B (zh) 面向多应用的数据存储系统和数据调用方法
US10296462B2 (en) Method to accelerate queries using dynamically generated alternate data formats in flash cache
EP2987096B1 (en) Caching external data sources for sql processing
CN106575297B (zh) 使用盲更新操作的高吞吐量数据修改
US7146365B2 (en) Method, system, and program for optimizing database query execution
US8176233B1 (en) Using non-volatile memory resources to enable a virtual buffer pool for a database application
US20140244628A1 (en) Hybrid Database Table Stored as Both Row and Column Store
US20140101132A1 (en) Swapping expected and candidate affinities in a query plan cache
US11886401B2 (en) Database key compression
CN102955792A (zh) 一种实时全文搜索引擎事务处理的实现方法
WO2017161540A1 (zh) 数据查询的方法、数据对象的存储方法和数据系统
US11249968B2 (en) Large object containers with size criteria for storing mid-sized large objects
US10558636B2 (en) Index page with latch-free access
US10642745B2 (en) Key invalidation in cache systems
CN114443722A (zh) 缓存管理方法、装置、存储介质及电子设备
JP2006235903A (ja) リレーショナルデータベースのアクセス制御方法
Tang et al. An Efficient In-Memory Analytics System Based on Persistent Memory
JPH1185585A (ja) 完全メモリ常駐型インデックス方法および装置
CN116257519A (zh) 一种数据读写的方法、装置、计算机设备及存储介质
WO2017019128A1 (en) File system metadata representations