[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2001142898A - 問合せ処理の実行可否判定方法 - Google Patents

問合せ処理の実行可否判定方法

Info

Publication number
JP2001142898A
JP2001142898A JP32500499A JP32500499A JP2001142898A JP 2001142898 A JP2001142898 A JP 2001142898A JP 32500499 A JP32500499 A JP 32500499A JP 32500499 A JP32500499 A JP 32500499A JP 2001142898 A JP2001142898 A JP 2001142898A
Authority
JP
Japan
Prior art keywords
program
query
execution
execution plan
execution time
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
JP32500499A
Other languages
English (en)
Inventor
Akira Shimizu
清水  晃
Shigekazu Inohara
茂和 猪原
Itaru Nishizawa
格 西澤
Nobutoshi Sagawa
暢俊 佐川
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 Ltd
Original Assignee
Hitachi 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 Ltd filed Critical Hitachi Ltd
Priority to JP32500499A priority Critical patent/JP2001142898A/ja
Publication of JP2001142898A publication Critical patent/JP2001142898A/ja
Pending legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】ユーザが予測する以上に長く実行する問合せで
ある長時間実行問合せの実行を抑止する。 【解決手段】問合せ処理の実行時間を予測する実行時間
予測(123)と、実行時間予測により問合せ実行の可
否を判定する実行可否判定(124)と、問合せ処理中
に予測した実行時間を修正する実行時間予測修正部(1
26)とを導入する。 【効果】長時間実行問合せの実行を抑止可能となる結
果、データシステムハブまたはDBMSのスループット
が向上する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はコンピュータシステ
ムに関し、特に1つ以上のデータベースを用いてユーザ
の問合せを処理するデータ処理システムによる問合せ実
行の可否判定方法に関する。
【0002】
【従来の技術】現在、企業の計算機システムには、数多
くのデータベース管理システム(DBMS)が存在して
いる。これらのDBMSは、歴史的に企業の発展ととも
に目的別に追加されてきたものである。現在、業種間の
規制緩和が急速に進展しており、これに伴い各企業は新
規事業を追加していく傾向が強い。この際、新規事業の
導入に伴って、さらに新しいDBMSが導入される場面
が多くなっている。
【0003】一方、規制緩和に伴い、各企業は他企業に
ない新たなサービスなどにより顧客によりよいサービス
を提供し、その結果優良な顧客をより多く獲得しようと
試みている。この際、DBMS群に蓄積された過去の企
業活動、顧客動向などを分析する必要性が高まり、デー
タウェアハウスやデータマートの構築を行う企業が非常
に多くなっている。
【0004】データウェアハウスやデータマートの構築
には、先に述べた多数のDBMSに蓄積されたデータ
を、ひとつの論理的に統合されたデータベースとするこ
とが必要となる。また、データウェアハウスやデータマ
ートのような分析処理のベースとなるデータベースを構
築する以外にも、新規業務を迅速に立ち上げる目的で、
従来のDBMS群を論理的に統合することが、企業の競
争力を高める目的で行われている。論理的に統合したデ
ータベースをベースとすることにより、新規業務のため
の応用プログラム(アプリケーション)構築の高速化を
図ることが可能となるためである。
【0005】DBMS群を論理的に統合する方法とし
て、DBMS群とアプリケーション群の間に、DBMS
群への統一的なアクセスを提供する「データベースハ
ブ」のシステムを置く方法がある。データベースハブ
は、アプリケーションからの問合せ(典型的には、St
ructured Query Language(S
QL)言語で記述された問合せ)を受けつけ、その問合
せをDBMS群への問合せへ分解・変換する。そしてデ
ータベースハブは、分解・変換した問合せをDBMS群
に発行し、DBMS群から問合せ結果を作成するための
データを収集し、アプリケーションの問合せに対する最
終的な結果を得て、アプリケーションにその結果を返
す。
【0006】このようなデータベースハブには、多種多
様なアプリケーションの問合せが発行される。このよう
な問合せ群は、分析系業務で発行する実行時間の長い複
雑な問合せから定型業務で発行する実行時間の短い単純
な問合せまで、多種多様である。
【0007】分析系業務で発行される問合せは複雑なた
め、ユーザが予測する以上に実行時間が長い問合せ(長
時間実行問合せ)が発行されてしまう場合がある。ま
た、タイプミス等で意図せず長時間実行問合せを発行し
てしまうこともある。
【0008】このような長時間実行問合せは、データベ
ースハブまたはDBMSなどのデータ処理システムのス
ループットの低下を招く。なぜなら、長時間実行問合せ
はCPUやメモリなどの計算機資源を長く使用するた
め、他の問合せ実行を妨げてしまう。また、ユーザが問
合せ結果を必要とする時までに処理が終了しないため、
業務に支障をきたす可能性がある。このため、データ処
理システムを効率よく運営するために、長時間実行問合
せを抑止する機能が必要となる。
【0009】長時間実行問合せの実行を抑止するため
に、従来技術では問合せ処理を実行するために必要とさ
れるCPU時間や二次記憶装置へのI/O回数などのコ
ストを予測し、該コストを問合せ実行の可否判定の基準
としている。文献「DB2 Universal Dat
abase for OS/390 Release Pl
anning Guide Version6」(pp.
67−pp.79、IBM社1999年6月;以下文献
1と称す)に記載されているシステム(以下公知例1と
称す)がこれにあたる。
【0010】
【発明が解決しようとする課題】問合せ処理コストは実
行時間を反映しているが、実行時間そのものではない。
同じ処理コストでも、使用できる計算機資源や実行時の
計算機負荷によって実行時間は異なる。そのため、コス
トを基準とした実行可否判定では、実際に長時間実行問
合せでない問合せの実行を抑止してしまうこともある。
逆に、長時間実行問合せであるにもかかわらず該問合せ
の実行を抑止できないこともある。このため、実行時間
を基準として実行可否判定を行う必要がある。
【0011】即ち、本発明が解決しようとする第1の課
題は、実行時間を基準とした実行可否判定を行い長時間
実行問合せの実行を抑止することである。
【0012】また、実行前の問合せ処理の実行時間予測
には誤差が含まれる場合があるため、誤って長時間実行
問合せが実行される可能性もある。このため、実行中の
問合せに関しても長時間実行を行っている問合せを停止
する必要が出てくる。
【0013】即ち、本発明が解決しようとする第2の課
題は、実行中の長時間実行問合せの実行を抑止すること
である。
【0014】データベースハブの場合、アプリケーショ
ンから発行される問合せ(第1の問合せ)を処理する際
に、DBMSに問合せ(第2の問合せ)を発行する。該
DBMSはデータベースハブ以外から発行される問合せ
も処理しているため、第2の問合せがデータベースハブ
以外から発行される問合せ処理の妨げにならないほうが
望ましい。該DBMSはデータベースハブとは独立に管
理されるのが普通なので、該DBMSで他の問合せ処理
の妨げになる第2の問合せを抑止することは困難であ
る。このため、データベースハブで該DBMSの問合せ
処理の妨げになる第2の問合せの発行を抑止する必要が
ある。
【0015】即ち、本発明が解決しようとする第3の課
題は、DBMSの問合せ処理を妨げる問合せの発行をデ
ータベースハブで抑止することである。
【0016】問合せ実行の実行時間を予測する際、正確
な実行プランを生成する必要がある。データベースハブ
の場合には、DBMSでの実行プランを指定できない。
このため、データベースハブはDBMSでの実行プラン
の予測を行う。
【0017】即ち、本発明が解決しようとする第4の課
題は、データベースハブでDBMSで処理される正確な
実行プランを取得することである。
【0018】以上4つの課題を解決することにより、分
析系業務におけるデータベースハブおよびDBMSの効
率のよい運営を可能とすることが本発明の目的である。
【0019】
【課題を解決するための手段】第1の課題に対する解決
手段として、本発明では、データベースハブ(またはD
BMS)に、実行時間予測を導入する。実行時間予測
は、アプリケーションから発行された問合せより実行時
間を予測する方法である。初めに、問合せの実行プラン
から問合せ処理に必要なコストを計算する。該コストか
ら問合せ処理を実行する計算機性能と計算機負荷を用い
て、該コストより実行時間を予測する。予測した実行時
間(予測実行時間)を基準に実行可否判定を行う。これ
により、実行時間を基準とした実行可否判定を行い長時
間実行問合せの実行を抑止する第1の課題が解決され
た。
【0020】第2の課題に対する解決手段として、本発
明では、データベースハブ(またはDBMS)に、実行
時間予測修正を導入する。実行時間予測修正は、実行中
の問合せ処理の経過情報を用いて実行前に予測実行時間
を修正する方法である。例えば、ある処理までの実行時
間が該処理までの予測実行時間の1.5倍であった場
合、問合せ処理全体の予測実行時間を1.5倍にすると
いった修正である。修正された予測実行時間を基準に実
行中の問合せの実行可否判定を行う。これにより、実行
中の長時間実行問合せの実行を抑止する第2の課題が解
決された。
【0021】第3の課題に対する解決手段として、本発
明では、データベースハブがDBMSに発行する問合せ
に対する実行可否判定基準を設定できることを可能に
し、データベースハブの実行可否判定においてDBMS
に発行される問合せでも実行可否判定を行う。これによ
り、DBMSの問合せ処理を妨げる問合せの発行をデー
タベースハブで抑止する第3の課題が解決された。
【0022】第4の課題に対する解決手段として、本発
明では、データベースハブにおいて、DBMSから得ら
れる実行プランを用いて実行プランを修正する実行プラ
ン修正を導入する。問合せから実行プラン生成後、DB
MSでの実行プランを取得し、データベースハブでの実
行プランに修正を加える。またDBMSでの実行プラン
取得時にコストも取得できる場合、該コストを利用す
る。これにより、データベースハブでDBMSで処理さ
れる正確な実行プランを取得する第4の課題が解決され
た。
【0023】
【発明の実施の形態】本発明の実施の一形態を、図面を
参照しながら説明する。
【0024】全体構成 図1を用いて、本発明の実施の一形態(第1の実施例)
の全体構成を説明する。
【0025】図1は第1の実施例が好適に用いられるコ
ンピュータシステムである。第1の実施例の全体は、1
つ以上のコンピュータ(データ処理システム100、1
つ以上のクライアントコンピュータ101、101’、
…、管理用コンピュータ102、1つ以上のDBサーバ
105、105’、…)がクライアント側ネットワーク
103およびサーバ側ネットワーク104で相互に接続
されたコンピュータシステムである。
【0026】クライアント側ネットワーク103および
サーバ側ネットワーク104のいずれも、ある団体(企
業や学校や類似の団体)の全体や一部門でよく使用され
るLANでもよく、また地理的に分散した複数の地点を
結合するWANの一部または全部でもよい。またこれら
のネットワークは、計算機間結合網や並列計算機内部の
プロセッサ要素間の結合網でもよい。また、クライアン
ト側ネットワーク103とサーバ側ネットワーク104
が同一のネットワークであっても差し支えない。
【0027】データ処理システム100、クライアント
コンピュータ101、101’、…、管理用コンピュー
タ102、DBサーバ105、105’、…はいずれ
も、パーソナルコンピュータ、ワークステーション、並
列計算機、大型計算機、小型携帯型コンピュータ等、任
意のコンピュータでよい。また、図1ではデータ処理シ
ステム100、クライアントコンピュータ101、10
1’、…、管理用コンピュータ102、DBサーバ10
5、105’、…をそれぞれ独立したコンピュータとし
て図示しているが、これらのうち任意の組み合わせが、
1つのコンピュータであっても差し支えない。また、図
1に示したデータ処理システム100、クライアントコ
ンピュータ101、101’、…、管理用コンピュータ
102、DBサーバ105、105’、…の数と構成は
例として示したもので、本発明の範囲を限定するもので
はない。
【0028】クライアントコンピュータ101、10
1’、…では、ユーザの処理を行うプログラムであるア
プリケーション110、110’、…が動作する。アプ
リケーション110、110’、…は、データベースに
対する参照または更新を行うために問合せ(例えばSt
ructured Query Language(SQ
L)言語のような問合せ言語で記述された問合せ)を発
行する。
【0029】DBサーバ105、105’、…では、1
つ以上のデータベースを管理しているDBMS112、
112’、…が動作している。DBMS112、11
2’、…は、管理しているデータベースを二次記憶装置
106、106’、…上に保持しており、他のプログラ
ムの問合せに応じてデータベースに対する参照または更
新を行う。データベースは、データを1つ上のカラムか
ら成る1つ以上のレコードから成る1つ以上の表から構
成されるリレーショナルデータベースで差し支えない
し、他の形式のデータベース(ネットワーク型データベ
ースや階層型データベース、オブジェクト指向データベ
ース、オブジェクトストレージ)やファイルシステムで
も差し支えない。
【0030】管理用コンピュータ102では、管理用ア
プリケーション111が動作している。管理用アプリケ
ーション111はデータ処理システム100の管理を行
うプログラムであり、データ処理システム100または
図1のシステム全体の管理者が利用する。
【0031】データ処理システム100はクライアント
コンピュータ101、101’、…の発行する第1の問
合せを受け付け、必要に応じDBサーバ105、10
5’、…への1つ以上の第2の問合せを作成し発行し、
第1の問合せが指定した参照または更新を行い、結果の
データを第1の問合せの発行元に返す。即ち、データ処
理システム100は、DBサーバ105、105’、…
の保持するデータベース群への統一的なアクセスを実現
し、クライアントコンピュータ101、101’、…へ
統合されたデータベースを提供するデータベースハブで
ある。
【0032】入出力処理部120、問合せ解析・最適化
部121、実行プラン修正部122、実行時間予測部1
23、実行可否判定部124、127、実行制御部12
5、実行時間予測修正部126、DBMS情報取得部1
28、実行可否判定管理部129は、データ処理システ
ム100を構成する構成要素である。各構成要素の詳細
な説明は後で述べることにし、ここでは概略を説明する
のに留める。
【0033】入出力処理部120は、クライアントコン
ピュータ101、101’、…から問合せ要求を受け付
け、管理用コンピュータ102から管理要求を受けつ
け、これらの問合せの返答を行う。
【0034】問合せ解析・最適化部121は、入力処理
部120では受け付けた問合せに対し問合せ解析と問合
せ最適化を行い、実行プランを作成する。
【0035】実行プラン修正部122は、問合せ解析・
最適化部121で生成された実行プランに対し、DBM
Sから得られた実行プランを用い修正を加える。
【0036】実行時間予測部123は、実行プラン修正
部122で作成された実行プランを用い実行時間を予測
する。
【0037】実行可否判定部124、127は、実行時
間予測部123及び実行時間予測修正部126で予測さ
れた実行時間と実行可否判定基準制御部129から得ら
れた実行可否判定基準とを比較し、問合せ実行の可否を
判定する。
【0038】実行制御部125は、実行プランに基づき
問合せを処理をし、問合せへの結果を作成する。
【0039】実行時間予測修正部126は、実行制御部
125から実行中の問合せの経過情報を用いて予測実行
時間を修正する。
【0040】DBMS情報取得部128は、DBMSの
各種情報を管理しており、実行プラン修正部122及び
実行時間予測部123の要求に対しDBMSの種類に応
じた情報取得問合せを発行する。
【0041】実行可否判定管理部129は、実行可否判
定部124、127で用いる実行可否判定基準を管理す
る。
【0042】以上が第1の実施例の全体構成である。
【0043】DBMS112、112’、…の役割を兼
ねたデータ処理システムの実施例は、実行プラン修正部
122とDBMS情報取得部128を取り除いた構成で
ある。また、以降説明するデータ処理システムで行う処
理も第1の実施例と本質的に同じなため、DBMS11
2、112’、…の役割を兼ねたデータ処理システムの
実施例の詳しい説明は省略する。
【0044】データ処理システムで行う処理 データ処理システム100で行う処理は、問合せ処理、
実行可否判定基準設定処理がある。
【0045】問合せ処理の流れ 図1を用いてデータ処理システムの問合せ処理の流れを
説明する。
【0046】アプリケーション110が発行した第1の
問合せは、クライアント側ネットワークを経由して入出
力処理部120に到達する(130)。
【0047】入出力処理部120では、アプリケーショ
ン110の要求が問合せであることを認識すると、第1
問合せを問合せ解析・最適化部121に渡す(13
1)。
【0048】問合せ解析・最適化部121では、第1の
問合せに対し問合せ解析と問合せ最適化を行い第1の実
行プランを作成し、実行プラン修正部122に第1の実
行プランを渡す(132)。問合せ解析では、第1の問
合せに対し字句解析、構文解析、意味解析を行い、第1
の問合せの第1の解析木を生成する。問合せ最適化で
は、問合せ解析で生成された第1の解析木から第1の実
行プランを作成する。問合せ最適化にはルールベース最
適化とコストベース最適化があるが、データ処理システ
ム100ではどちらを用いても差し支えない。問合せ解
析と問合せ最適化で行われる動作は、コンパイラ、デー
タベース管理システムで用いられている技術なので、こ
こではこれ以上詳細には述べない。
【0049】図3で示したデータ構造が生成される実行
プランの一例である。実行プランは木構造になってお
り、各ノード311、312、313、314、31
5、316、317はノード内データ構造300と同じ
構成をしている。ノードID301は、実行プラン内で
一意な識別子である。例えば、実行プランのノードごと
に連続した整数を用いてもよいし、ノードのデータがあ
るアドレスを用いてもよい。操作内容302は、ノード
で行われる操作内容を示している。例えば、「join
−at−DBMS1」は「DBMS1でジョインを行う」
ことを示しており、「access−DBMS1.T3」
は「DBMS1の表T3を参照する」ことを示しており、
「database−hub−join」は「データ処理
システム100でジョインする」ことを示している。予
測結果行数303は、操作内容302の結果行数の予測
値である。予測結果行数303が−1の場合、予測結果
行数303が計算されていないことを示す。予測コスト
304は、ノード以下の部分木を処理するのに必要なコ
ストを示す。コストにはCPU時間、CPUステップ
数、I/O回数などが用いられる。予測コスト304の
値が−1の場合、予測コスト304が計算されていない
ことを示す。予測実行時間305は、ノード以下の部分
木を処理するのに必要な実行時間を示す。予測実行時間
305が−1の場合、予測実行時間305が計算されて
いないことを示す。
【0050】実行プラン修正部122では、DBMSか
ら得られる実行プランの情報を用いて第1の実行プラン
に修正を加え、第2の実行プランを生成し、実行時間予
測部123に第2の実行プランを渡す(133)。実行
プランを修正する動作は、実行プラン修正処理の流れで
詳しく説明する。
【0051】実行時間予測部123は、実行プラン修正
部122から受け取った第2の実行プランを用い実行時
間を予測し、予測された実行時間(第1の予測実行時
間)を第2の実行プランのノードの予測時間305に設
定し、第2の実行プランを実行可否判定部124に渡す
(134)。実行プランから実行時間を計算する動作は
実行時間予測処理の流れで詳しく説明する。
【0052】実行可否判定部124は、実行時間予測部
123で予測された第1の予測実行時間を基準にして第
1の問合せの実行可否を判定し、実行可であれば実行制
御部125に第2の実行プランを渡し(135)、実行
不可であれば第1の問合せの結果としてエラーを入出力
処理部120に返す(160)。実行可否判定の詳細に
ついては実行可否判定処理の流れで説明する。
【0053】実行制御部125は、第2の問合せ処理動
作に基づき第1の問合せを処理し、その結果を入出力処
理部120に返す。第2の問合せ処理動作に従いDBM
S112、112’、…に第2の問合せをサーバ側ネッ
トワーク104を介して発行し(136)、第2の問合
せの結果を取得する(137)。加工が必要であれば第
2の問合せの結果を加工し、第1の問合せの結果を作成
する。作成された第1の問合せの結果を入出力処理部1
20に返す(138)。第1の問合せ処理実行時に実行
時間予測修正及び実行可否判定処理を行い、実行不可と
判定された場合処理を中止し、第1の問合せの結果とし
てエラーを入出力処理部120に返す(174)。実行
時間予測修正及び実行可否判定処理の動作については、
実行時間予測修正及び実行可否判定処理の流れで詳しく
述べる。実行時間予測修正及び実行可否判定処理を行う
タイミングはいつでもよい。例えば、「30分毎に実行
しているすべての問合せに対して行う」のようにデータ
処理システム100全体への指定でもよいし、問合せ処
理動作の中に「DBMS112への問合せの後に実行時
間予測修正及び実行可否判定処理を行う」のように問合
せ毎に指定を行ってもよい。
【0054】入出力処理部120は、第1の問合せの結
果を実行可否判定部124または実行制御部125から
うけとり、第1の問合せを発行したアプリケーション1
10に第1の問合せの結果をクライアント側ネットワー
ク103を介して返す(138)。
【0055】以上が問合せ処理の流れである。
【0056】実行プラン修正処理の流れ 実行プラン修正処理の流れを図2と図1を用いて説明す
る。
【0057】ステップ200では、問合せ解析・最適化
部121から受け取った第1の実行プラン(予測実行プ
ラン)から各DBMSに発行する第2の問合せ群を生成
する。
【0058】ステップ201では、DBMS情報取得部
128を介して、第2の問合せ群からDBMSの実行プ
ラン(取得実行プラン)を受け取る。
【0059】DBMS情報取得部128では、実行プラ
ン修正部122から問合せ群を受け取り(140)、実
行プランを取得する問合せをDBMSに応じ発行する
(141)。実行プランを取得する問合せには、例えば
DB2/OS390の場合EXPLAIN文を用いるこ
とができる。各DBMSから結果を受け取ると(14
2)、データ処理システム100で用いている実行プラ
ンのデータ構造にし、実行プラン修正部122に返す
(143)。
【0060】ステップ203では、取得実行プランを受
け取ると、修正する対象となる予測実行プランの中の各
DBMSで処理される部分木を列挙する。
【0061】ステップ204では、ステップ203で列
挙された全ての部分木が対応する取得実行プランと比較
されているか判定する。全ての部分木が比較されていな
い場合(N)、ステップ205に進む。全ての部分木が
比較されている場合(Y)、実行プラン修正処理を終了
する。
【0062】ステップ205では、取得実行プラン中に
コストまたは結果行数が設定されている場合、予測実行
プランの対応するノードの予測結果行数303または予
測コスト304を設定する。
【0063】ステップ206では、取得実行プランと予
測実行プランの部分木を比較し、同じ実行プランかどう
かを判定する。同じ実行プランの場合(Y)、ステップ
204に戻る。実行プランが異なる場合(N)、ステッ
プ207に進む。
【0064】ステップ207では、取得実行プランと同
じ実行プランになるように予測実行プランの部分木を修
正する。
【0065】実行プラン修正処理の一例を図3、図4、
図5に示す。図3の実行プランが修正前の予測実行プラ
ンで、図4がDBMS1から取得した取得実行プラン
で、図5が修正された予測実行プランである。ノード3
12以下の部分木が図4の取得実行プランに対応してい
るが、実行プランが異なるため図5では図4の実行プラ
ンと同じになるように修正されている。またDBMS1
の取得実行プランではコストも取得できているため、ノ
ード502の予測コストの値が設定されている。
【0066】DBMSでの実行プランが修正された実行
プランは実行時間予測部123に渡される(133)。
【0067】以上が問合せ処理動作修正処理の流れであ
る。
【0068】実行時間予測処理の流れ 実行時間予測処理の流れを図6と図1を用いて説明す
る。
【0069】ステップ601では、実行時間予測部12
3はDBMS情報取得部128からDBMS統計情報お
よびDBMS性能情報700を取得する(144)。
【0070】DBMS統計情報には、DBMSで処理さ
れる実行プランの部分木のコストを計算するのに必要な
情報である。例えば、表の大きさ(表中のレコード
数)、カラム中の値の最大値、最小値、平均値、カラム
中の異なる値の数、カラム中の値の分布などがある。
【0071】DBMS性能情報700は図7の構成をし
ている。DBMS名701はDBMSを識別するデータ
処理システム100で一意な名前である。CPU数70
2は、DBMSが動作している計算機のCPUの数であ
る。MIPS値703は、DBMSが動作している計算
機のCPU1個が1秒間に処理できる命令数である。l
oad average704は、DBMSが動作して
いる計算機の単位時間当りの実行プロセス数である。
【0072】ステップ602では、各DBMSで処理さ
れる実行プランの部分木を列挙する。
【0073】ステップ603では、ステップ602で列
挙された全ての部分木の予測実行時間305が計算され
ているかを判定する。全ての部分木で予測実行時間30
5が計算されていなければ(N)、ステップ604に進
む。全ての部分木の予測実行時間305が計算されてい
れば(Y)、ステップ607に進む。
【0074】ステップ604では、対象としている部分
木の予測コスト304が計算されているかを判定する。
予測コスト304が計算されていれば(Y)ステップ6
06に進み、計算されていなければ(N)ステップ60
5に進む。
【0075】ステップ605では、ステップ601で取
得したDBMS統計情報を用いて部分木の予測コスト3
04を求める。部分木の予測コスト304の計算方法
は、データベースの分野で古くから研究されており、こ
こでは詳しくは述べない。
【0076】ステップ606では、部分木の予測コスト
304からDBMS性能情報700を用いて予測実行時
間305を計算する。予測実行時間305は、関数Fを
用いて予測コスト304とDBMS性能情報700から
計算する。例えば、予測コスト304がCPUステップ
数で計算されている場合、予測実行時間305=F(予
測コスト304、DBMS性能情報700)=予測コス
ト304/{CPU数702*MIPS値703/lo
ad average704}と計算する。
【0077】ステップ607では、部分木の予測実行時
間305から実行プランの実行時間305を求める。ま
ず、データ処理システム100で処理されるノードで構
成されている部分木のコストを求め、コストから実行時
間を計算する。データ処理システム100で処理される
ノードで構成されている部分木のコスト及び実行時間の
計算方法は、前述のDBMSで処理される部分木の予測
コスト304と予測実行時間305の計算方法と同じな
ので省略する。実行プランの予測実行時間305は、D
BMSで処理される部分木の予測実行時間305とデー
タ処理システム100で処理されるノードで構成される
部分木の計算された実行時間から計算する。例えば、D
BMSで処理される部分木の予測実行時間とデータ処理
システム100で処理されるノードで構成される部分木
の計算された実行時間の総和を実行プランの予測実行時
間305とする方法がある。また別の計算方法として、
DBMSで処理される部分木の予測実行時間の最大値と
データ処理システム100で処理されるノードで構成さ
れた部分木の計算された実行時間の和を実行プランの予
測実行時間とするものもある。
【0078】予測実行時間305が計算された実行プラ
ンは実行可否判定部124に渡される(134)。
【0079】以上が実行時間予測処理の流れである。
【0080】実行可否判定処理の流れ 実行可否判定処理の流れを図8と図1を用いて説明す
る。
【0081】ステップ801では、実行可否判定部12
4が実行可否判定管理部129から実行可否判定基準9
00を受け取る(182)。
【0082】実行可否判定基準900は図9の構成をし
ている。DBMS名901は、実行可否を判定する問合
せで問合せが発行されるDBMSを示す。例えば、DB
MSを識別するデータ処理システム100で一意な名前
や、データ処理システム100と全DBMSを示す
「*」である。ユーザ名902は、実行可否を判定する
問合せを発行するユーザを示す。例えば、データ処理シ
ステム100を利用するユーザアカウントや、全てのユ
ーザを示す「*」である。実行時間903は、DBMS
名901で指定されるDBMSに発行されるユーザ名9
02で指定されるユーザの問合せの実行可能な予測実行
時間305の最大値である。CPUステップ数904
は、DBMS名901で指定されるDBMSに発行され
るユーザ名902で指定されるユーザの問合せの実行可
能なCPUステップ数の最大値である。図9の実行可否
判定基準900の各行は上から順に、「データ処理シス
テム100に発行される全てのユーザの問合せは、実行
時間の基準では7、200秒以下、CPUステップ数の
基準では720、000Mステップ以下であること」、
「DBMS1に発行されるUSER1の問合せは、実行
時間の基準では1、200秒以下、CPUステップ数の
基準では480、000Mステップ以下であること」、
「DBMS1に発行される全ユーザの問合せは、実行時
間の基準では600秒以下、CPUステップ数の基準で
は240、000Mステップ以下であること」、「DB
MS2に発行される全ユーザの問合せは、実行時間の基
準では3、600秒以下、CPUステップ数の基準では
360、000Mステップ以下であること」を示してい
る。
【0083】ステップ802では、対象となる全ての実
行可否判定基準900で実行プランの実行可否を判定し
てるかを判定する。対象となる実行可否判定基準900
とは、ユーザ名902が問合せを発行したユーザ名と等
しい行か、もしくはユーザ名902が「*」である行の
DBMS名901がユーザ名902が問合せを発行した
ユーザ名と等しい行のDBMS名901と等しくない行
である。対象となる全ての実行可否判定基準900で実
行可否を判定していなければ(N)ステップ803に進
み、対象となる全ての実行可否判定基準900で実行可
否を判定していれば(Y)ステップ805に進む。
【0084】ステップ803では、一つの実行可否判定
基準に基づき実行プランの実行可否を判定する。実行プ
ランの実行可否を判定する基準は複数あるので、全ての
条件を満たした場合だけ実行可と判定してもよい。他に
も、複数ある基準のうち特定数の基準の条件を満たして
いる場合を実行可と判断してもよいし、特定の基準を満
たしている場合を実行可と判断してもよい。実行可と判
定された場合(Y)ステップ802に戻り、実行可と判
定されなかった場合(N)ステップ804に進む。
【0085】ステップ804では、実行プランを実行不
可と判定し、入出力処理部120に問合せの結果として
エラーを返す(160)。
【0086】ステップ805では、実行プランを実行可
と判定し、実行プランを実行制御部125に渡す(13
5)。
【0087】以上が実行可否判定処理の流れである。
【0088】実行時間予測修正及び実行可否判定処理の
流れ実行時間予測修正及び実行可否判定処理の流れを図
10と図1を用いて説明する。
【0089】ステップ1001では、実行制御部125
から問合せ実行の経過情報1100を受け取る(17
0)。
【0090】経過情報1100は図11の構成をしてい
る。ノードID1101は、実行プランを構成している
ノードのノードID301である。実行時間1102
は、ノードID1101で指定されたノードより下の部
分木の実行時間である。
【0091】ステップ1002では、ステップ1001
で受け取った経過情報1100を用いて実行プランの予
測実行時間305を修正する。予測実行時間の修正方法
の一例として、ノードID1101で特定されるノード
の予測実行時間305を実行時間1102に設定し、再
びステップ607と同じ方法で実行プランの予測実行時
間305を計算する方法がある。他にも、実行時間11
02がノードID1101の予測実行時間305の1.
5倍だった場合実行プランの予測実行時間305を1.
5倍する方法も考えられる。予測実行時間を修正された
実行プランは実行可否判定部127へ渡される(17
1)。
【0092】ステップ1003では、修正された予測実
行時間305を持つ実行プランの実行可否判定を実行可
否判定部127が行う。実行可否判定の動作については
前述の実行可否判定処理の流れと同じなので、ここでは
省略する。
【0093】ステップ1004では、ステップ1003
の実行可否判定の結果を判定する。実行プランが実行可
と判定されていれば(Y)ステップ1005へ進み、実
行プランが実行不可と判定されていれば(N)、ステッ
プ1006に進む。
【0094】ステップ1005では、問合せ処理の実行
を継続する。
【0095】ステップ1006では、実行不可を実行制
御部125に通知する(172)。
【0096】ステップ1007では、実行不可となった
問合せ処理の後処理を行い問合せ処理を中止させ、入出
力処理部120へ問合せの結果としてエラーを返す(1
73)。
【0097】以上が実行時間予測修正及び実行可否判定
処理の流れである。
【0098】実行可否判定基準設定の流れ 実行可否判定基準設定処理の流れを図1を用いて説明す
る。
【0099】実行可否判定基準設定要求は管理アプリケ
ーション111からデータ処理システム100に発行さ
れる(180)。
【0100】入出力処理部120は、要求が実行可否判
定基準設定要求と識別すると、該実行可否判定基準設定
要求を実行可否判定管理部129に送る(181)。
【0101】実行可否判定管理部129では実行可否判
定基準設定要求に応じ、実行可否判定基準900を管理
方法に応じ変更する。実行可否判定基準がDBMSで管
理されている場合、実行可否判定基準は要求に応じた問
合せに変換され、実行可否判定基準を管理しているDB
MSに発行される。またメモリ上で管理されている場合
には、実行可否判定管理部129が直接実行可否判定基
準900を書きかえる。
【0102】以上が実行可否判定基準設定の流れであ
る。
【0103】
【発明の効果】本発明によれば、以下の効果がある。
【0104】(1)実行時間予測部123とDBMS性
能情報700と実行可否判定部124とにより、問合せ
実行時間を予測して実行可否を判定でき、長時間実行問
合せの実行を抑止できる。
【0105】(2)実行時間予測修正部126と経過情
報1100と実行可否判定部127によって、実行時間
予測の誤差で実行されてしまっている長時間実行問合せ
の実行を抑止できる。
【0106】(3)実行可否判定基準900をDBMS
ごとに設定可能とすることにより、DBMSの問合せ処
理を妨げるデータベースハブから発行される問合せをデ
ータベースハブで抑止できる。
【0107】(4)実行プラン修正部122によって、
データベースハブで正確な実行プランを取得できるよう
になる。
【0108】以上の効果により、分析系業務におけるデ
ータベースハブおよびDBMSのスループットを向上で
き、効率よい運営が可能となる。
【図面の簡単な説明】
【図1】第1の実施例の全体構成を示すブロック図。
【図2】実行プラン修正処理の流れ図。
【図3】予測実行プランの一例を示す図。
【図4】取得実行プランの一例を示す図。
【図5】修正後の予測実行プランを示す図。
【図6】実行時間予測処理の流れ図。
【図7】DBMS性能情報の構成図。
【図8】実行可否判定処理の流れ図。
【図9】実行可否判定基準の構成図。
【図10】実行時間予測修正及び実行可否判定処理の流
れ図。
【図11】経過情報の構成図。
【符号の説明】
100:データ処理システム 101、101’、…:クライアントコンピュータ 102:管理用コンピュータ 103:クライアント側ネットワーク、 104:サーバ側ネットワーク 105、105’…:DBサーバ 106、106、106’…:二次記憶装置 110、110’…:クライアントアプリケーション 111:管理用アプリケーション 112、112’…:DBMS、120:入出力処理部 121:問合せ解析・最適化部、122:実行プラン修
正部 123:実行時間予測部、124:実行可否判定部 125:実行制御部、126:実行時間予測修正部 127:実行可否判定部、128:DBMS情報取得部 129:実行可否判定管理部。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 西澤 格 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 (72)発明者 佐川 暢俊 東京都国分寺市東恋ケ窪一丁目280番地 株式会社日立製作所中央研究所内 Fターム(参考) 5B075 KK07 ND34 QR00 QS20 5B082 GA08 GC04

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】データ処理を行う第1のプログラムと、ア
    プリケーションプログラムに相当する1つ以上の第2の
    プログラムと、データベース管理を行う1つ以上の第3
    のプログラムとが、1つのコンピュータ上、またはネッ
    トワークで結合された複数のコンピュータ上で動作し、
    第3のプログラムが、1つ以上のカラムを持つ1つ以上
    のレコードからなる1つ以上の表からなる1つ以上のデ
    ータベースを保持し、第1のプログラムが、第2のプロ
    グラムから第1の問合せを受けつけ、第1のプログラム
    が、第1の問合せから第3のプログラムに発行する問合
    せ群と該問合せ群の実行プランを生成し、第1のプログ
    ラムが、該実行プランに従い該問合せ群を第3のプログ
    ラムに発行し、第1のプログラムが、第3のプログラム
    から得た該データベース中のデータを用いて第1の問合
    せに対する結果を得る問合せ処理方法であって、実行プ
    ランより第1の問合せの実行時間を予測する処理と、予
    測された実行時間を用いて第1の問合せの実行可否を判
    定する処理とを有することを特徴とする問合せ処理の実
    行可否判定方法。
  2. 【請求項2】前記予測する処理は、第3のプログラムが
    動作している計算機の負荷を用いて実行プランより実行
    時間を予測する処理を有する請求項1記載の問合せ処理
    の実行可否判定方法。
  3. 【請求項3】データ処理を行う第1のプログラムと、ア
    プリケーションプログラムに相当する1つ以上の第2の
    プログラムと、データベース管理を行う1つ以上の第3
    のプログラムとが、1つのコンピュータ上、またはネッ
    トワークで結合された複数のコンピュータ上で動作し、
    第3のプログラムが、1つ以上のコードを持つ1つ以上
    の表を備えた1つ以上のデータベースを保持し、第1の
    プログラムが、第2のプログラムから第1の問合せを受
    けつけ、第1のプログラムが、第1の問合せから第3の
    プログラムに発行する問合せ群と該問合せ群の実行プラ
    ンを生成し、第1のプログラムが、該実行プランに従い
    該問合せ群を第3のプログラムに発行し、第1のプログ
    ラムが、第3のプログラムから得た該データベース中の
    データを用いて第1の問合せに対する結果を得る問合せ
    処理方法であって、第3のプログラムに発行される問合
    せ群中の1つの問合せの実行時間を予測する処理と、予
    測された実行時間を用いて第1の問合せの実行可否を判
    定する処理とを有することを特徴とする問合せ処理の実
    行可否判定方法。
  4. 【請求項4】前記判定する処理は、第3のプログラムか
    ら問合せ実行に関する情報を得る処理を有する請求項1
    又は3記載の問合せ処理の実行可否判定方法。
  5. 【請求項5】前記問合せ実行に関する情報を得る処理
    は、実行プランを第3のプログラムから得られる問合せ
    実行に関する情報を用いて修正する実行プラン修正処理
    を有する請求項4記載の問合せ処理の実行可否判定方
    法。
  6. 【請求項6】データ処理を行う第1のプログラムと、ア
    プリケーションプログラムに相当する1つ以上の第2の
    プログラムと、データベース管理を行う1つ以上の第3
    のプログラムとが、1つのコンピュータ上、またはネッ
    トワークで結合された複数のコンピュータ上で動作し、
    第3のプログラムが、1つ以上のカラムを持つ1つ以上
    のレコードからなる1つ以上の表からなる1つ以上のデ
    ータベースを保持し、第1のプログラムが、第2のプロ
    グラムから第1の問合せを受けつけ、第1のプログラム
    が、第1の問合せから第3のプログラムに発行する問合
    せ群と該問合せ群の実行プランを生成し、第1のプログ
    ラムが、該実行プランに従い該問合せ群を第3のプログ
    ラムに発行し、第1のプログラムが、第3のプログラム
    から得た該データベース中のデータを用いて第1の問合
    せに対する結果を得る問合せ処理方法であって、問合せ
    処理を実行中に経過情報を用い予測された実行時間を修
    正する処理と、修正された実行時間を用い問合せ実行継
    続の可否を判定する処理とを有することを特徴とする問
    合せ処理の実行可否判定方法。
  7. 【請求項7】前記第1のプログラムが第3のプログラム
    の役割を兼ね、前記コンピュータが、1つ以上の第3の
    プログラムの代わりに、1つ以上の第1のデータベース
    を備え、前記第1のプログラムが、該問合せに必要なデ
    ータを第3のプログラムに代わって、前記第1のデータ
    ベースから得る請求項1記載の問合せ処理の実行可否判
    定方法。
  8. 【請求項8】データ処理を行う第1のプログラムと、ア
    プリケーションプログラムに相当する1つ以上の第2の
    プログラムと、データベース管理を行う1つ以上の第3
    のプログラムとが、1つのコンピュータ上、またはネッ
    トワークで結合された複数のコンピュータ上で動作し、
    第3のプログラムが、1つ以上のカラムを持つ1つ以上
    のレコードからなる1つ以上の表からなる1つ以上のデ
    ータベースを保持し、第1のプログラムが、第2のプロ
    グラムから第1の問合せを受けつけ、第1のプログラム
    が、第1の問合せから第3のプログラムに発行する問合
    せ群と該問合せ群の実行プランを生成し、第1のプログ
    ラムが、該実行プランに従い該問合せ群を第3のプログ
    ラムに発行し、第1のプログラムが、第3のプログラム
    から得た該データベース中のデータを用いて第1の問合
    せに対する結果を得るコンピュータシステムのデータ処
    理システムであって、データ転送量を実行プランより予
    測する処理と、予測された該データ転送量を用い問合せ
    実行の可否を判定する処理とを有することを特徴とする
    問合せ処理の実行可否判定方法。
JP32500499A 1999-11-16 1999-11-16 問合せ処理の実行可否判定方法 Pending JP2001142898A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP32500499A JP2001142898A (ja) 1999-11-16 1999-11-16 問合せ処理の実行可否判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP32500499A JP2001142898A (ja) 1999-11-16 1999-11-16 問合せ処理の実行可否判定方法

Publications (1)

Publication Number Publication Date
JP2001142898A true JP2001142898A (ja) 2001-05-25

Family

ID=18172069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP32500499A Pending JP2001142898A (ja) 1999-11-16 1999-11-16 問合せ処理の実行可否判定方法

Country Status (1)

Country Link
JP (1) JP2001142898A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127418A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
JP4906968B1 (ja) * 2011-05-22 2012-03-28 株式会社三菱東京Ufj銀行 データベース問合せ端末
JP2012243301A (ja) * 2012-01-06 2012-12-10 Bank Of Tokyo-Mitsubishi Ufj Ltd データベース問合せ端末
JP2018509666A (ja) * 2016-02-19 2018-04-05 華為技術有限公司Huawei Technologies Co.,Ltd. Sql実行計画を決定するための方法および装置
JP2018526746A (ja) * 2015-09-08 2018-09-13 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited データベーストランザクションを最適化するための方法および装置
JP2020135717A (ja) * 2019-02-25 2020-08-31 Kddi株式会社 分析装置及び分析方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127418A (ja) * 2004-11-01 2006-05-18 Hitachi Ltd 計算機システム、計算機、データベースアクセス方法及びデータベースシステム
JP4906968B1 (ja) * 2011-05-22 2012-03-28 株式会社三菱東京Ufj銀行 データベース問合せ端末
JP2012243170A (ja) * 2011-05-22 2012-12-10 Bank Of Tokyo-Mitsubishi Ufj Ltd データベース問合せ端末
JP2012243301A (ja) * 2012-01-06 2012-12-10 Bank Of Tokyo-Mitsubishi Ufj Ltd データベース問合せ端末
JP2018526746A (ja) * 2015-09-08 2018-09-13 アリババ・グループ・ホールディング・リミテッドAlibaba Group Holding Limited データベーストランザクションを最適化するための方法および装置
JP2018509666A (ja) * 2016-02-19 2018-04-05 華為技術有限公司Huawei Technologies Co.,Ltd. Sql実行計画を決定するための方法および装置
US10901976B2 (en) 2016-02-19 2021-01-26 Huawei Technologies Co., Ltd. Method and apparatus for determining SQL execution plan
JP2020135717A (ja) * 2019-02-25 2020-08-31 Kddi株式会社 分析装置及び分析方法
JP7242343B2 (ja) 2019-02-25 2023-03-20 Kddi株式会社 分析装置及び分析方法

Similar Documents

Publication Publication Date Title
US7734615B2 (en) Performance data for query optimization of database partitions
US6505187B1 (en) Computing multiple order-based functions in a parallel processing database system
US6360214B1 (en) Automatic database statistics creation
US8135703B2 (en) Multi-partition query governor in a computer database system
US6366901B1 (en) Automatic database statistics maintenance and plan regeneration
US7143078B2 (en) System and method for managed database query pre-optimization
US6339771B1 (en) Method and system for managing connections to a database management system
US6996556B2 (en) Metadata manager for database query optimizer
JPH07319923A (ja) マルチプロセッサコンピュータシステムの並行データベースを処理するための方法および装置
JP2001084257A (ja) 問合せ処理方法及びシステム
US20070094270A1 (en) Method and apparatus for the processing of heterogeneous units of work
US7792819B2 (en) Priority reduction for fast partitions during query execution
JPH06214843A (ja) データベース管理システムおよび問合せの処理方法
US20090094258A1 (en) Off-loading star join operations to a storage server
CN110659327A (zh) 实现异构数据库之间数据交互式查询的方法和相关装置
US11687512B2 (en) Index suggestion engine for relational databases
US20020049747A1 (en) Method for integrating and accessing of heterogeneous data sources
CN111913986A (zh) 一种查询优化方法及装置
US20090171921A1 (en) Accelerating Queries Based on Exact Knowledge of Specific Rows Satisfying Local Conditions
JP2001142898A (ja) 問合せ処理の実行可否判定方法
US6516325B1 (en) Virtual partition vector for a computer directory system
US11868353B1 (en) Fingerprints for database queries
Dinda et al. Nondeterministic queries in a relational grid information service
KR102202792B1 (ko) 클러스터 기반 처리 시스템을 이용해 동종 및 이기종 데이터 소스에 대해 멀티 캐싱을 수행하는 방법 및 장치
KR100228548B1 (ko) 지리정보 시스템용 시간지원 데이타베이스 관리 장치