JPH0833854B2 - 関係データベースのアクセスパス決定処理方法 - Google Patents

関係データベースのアクセスパス決定処理方法

Info

Publication number
JPH0833854B2
JPH0833854B2 JP63183308A JP18330888A JPH0833854B2 JP H0833854 B2 JPH0833854 B2 JP H0833854B2 JP 63183308 A JP63183308 A JP 63183308A JP 18330888 A JP18330888 A JP 18330888A JP H0833854 B2 JPH0833854 B2 JP H0833854B2
Authority
JP
Japan
Prior art keywords
access
access path
result
search
accessing
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 - Fee Related
Application number
JP63183308A
Other languages
English (en)
Other versions
JPH0232472A (ja
Inventor
仁之輔 中村
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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP63183308A priority Critical patent/JPH0833854B2/ja
Publication of JPH0232472A publication Critical patent/JPH0232472A/ja
Publication of JPH0833854B2 publication Critical patent/JPH0833854B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 この発明は,リレーショナルデータベースの検索にお
いて,アクセスパスを決定するための関係データベース
のアクセスパス決定処理方法に関するものである。
〔従来の技術〕
リレーショナルデータベースの検索においては,処理
速度を向上させるために一般に複数のアクセスパスが存
在し,利用者はこのアクセスパスの種類を意識せずに検
索命令を記述する。たとえば,データベース言語SQL(J
IS X 3005−1987)の命令では,次のような検索命令が
利用者から入力される。
SELECT T1.C1,T1.C2,T2.C3 FROM T1.T2 WHERE T1.C2>=100 AND T2.C3=500 T1.C1=T2.C4 ここで,SELECTは検索開始の命令で,出力結果の列を指
定する。T1.C1,T1.C2,T2.C3,T2.C4が列に相当する。FRO
Mは検索対象表を指定する。T1,T2が表の名前に相当す
る。WHEREは検索条件を指定するもので,列C2のデータ
値が100より大きくかつ列C3のデータ値が500に等しくか
つ表T1の列C1のデータ値と表T2の列C4のデータ値とが等
しい行同士を結合することを指定している。
データベース管理システムでは,これらの検索命令か
ら,実際にデータベースにアクセスするパスを決定し,
その後,実行命令時にそのアクセスパスに従ってアクセ
スを実行する。アクセスパス決定時に,複数のアクセス
パスの中から実行時間が最短であるパスを選択すれば実
行時性能が向上できる。このアクセスパス決定がリレー
ショナルデータベースの性能を左右し,アクセスパス決
定法に対して種々の方法が提案されている。
一般に効果が高い方法として,アクセスパス決定時
に,磁気ディスクへのI/O回数を予測し,最小のI/O回数
をとるアクセスパスを選択するコスト評価方式がある
〔M.M.アストラハン(Astrahan)他,“システム アー
ル:リレーショナル アプローチ ツー データベース
マネージメント(SYSTEM R:Relational Approach to
Database Management)",エーシーエム トランザクシ
ョン オン データベース,システムズ(ACM Transact
ion on Database Systems),第1巻第2号(1976年6
月),第97頁〜137頁〕。この方式は,データベースへ
のアクセスを行う前に,アクセスパスを決定しており,
実行時にはそのアクセスパスに従ってアクセスすればよ
いため,実行時の性能は良いが,アクセスパスの選択が
以下に示すように予測に基づくため,最適なアクセスパ
スが選択されない場合がある。
第5図はこの方法を説明するための説明図であり,上
述した通りのアクセスパス決定の処理フローを示してい
る。
〔発明が解決しようとする問題点〕
この方法で予測に用いられている情報(統計情報)
は,各表の行数,各列の異なり数,データベースの格納
サイズ等があるが,各情報を常に最新にしておくには,
行の更新がある毎に統計情報を更新する必要があるた
め,更新の処理速度低下を招くことになり,一般には,
あるタイミングで統計情報の更新が行われる。この更新
は,利用者がトリガをかけるものと,システムで自動的
に行う方法とがある。いずれにしても,参照する情報が
最新でないため,アクセスパス選択の正確性を低下させ
ている。また,参照する情報から正確に予測できない評
価項目(実際に検索される行数等)があり,正確性低下
の問題があった。
この発明の目的は,以上述べた従来の問題点を解決
し,予測に基づいたものでない情報によるアクセスパス
選択を実行時に行うようにしてデータベースアクセス時
間を短縮することである。
〔問題点を解決するための手段〕
この発明では,従来の方法のようにすべてのアクセス
パスの決定を事前にかつ予測に基づいた情報により行う
のではなく,2番目以降の表へのアクセスパスおよび関係
演算のパス決定を,事前にアクセスした結果の情報に基
づいて実行時に行う。具体的には,関係演算のうち,結
合処理と副問合せとを含む様な複数表へのアクセスが必
要な命令に対し,最初の表へのアクセスパスの決定およ
びアクセス順序の決定は従来通り,事前に予測情報に基
づいて行い,2番目以降の表へのアクセスパスについて
は,事前にアクセスした表の検索結果の情報(行数,容
量等)に基づいて次の表へのアクセスパス決定を行う。
また,結合処理,副問合せ処理のパスについても1つめ
のアクセスの結果あるいは2つの表へのアクセスの結果
に基づいて決定する。3つ以上の表が対象の場合には,
まず2つの表について処理を行い,次にその結果と次の
1つの表とについて処理を行う。これを表がなくなるま
で繰り返す。以下,この発明の実施例について詳細に説
明する。
〔実施例1〕 結合処理の例 第1図は結合処理時の実行時アクセスパス選択法の説
明図である。図中,100は検索命令,101は第1番目の表,1
02は第2番目の表,103は第3番目の表,104は事前アクセ
スパス決定機構,105は実行時アクセスパス決定機構,106
は結合方式決定機構,107は表アクセス機構,108は結合機
構,109は出力機構,110は検索結果を保持するバッファ
(110−nはn個のバッファが存在していることを示
す),111は検索結果情報管理機構,112は検索結果情報管
理表である。表101,102,103は表アクセス機構107で検索
され,アクセス結果がバッファ110に保存される。表10
1,102,103は,行が複数存在しており,各行は複数の列
(データ項目)より構成されている。表へのアクセス条
件はこの列に対して指定され,各列の条件を満足する行
が検索結果として返却されバッファ110に結果が保存さ
れる。この時,検索結果条件(行数,検索結果の容量)
が検索結果情報管理機構111に同時に返却され,検索結
果情報管理表112の形態で管理される。以下説明の都合
上,第1番目の表の検索結果のバッファを110−1,第2
番目の表の検索結果のバッファを110−2,第1番目の表
と第2番目の表との結合処理の結果のバッファを110−2
1,第3番目の表の検索結果のバッファを110−3,第1番
目の表と第2番目の表と第3番目の表との結合処理結果
のバッファを110−32とする。検索処理は,以下の手続
きで行う。
(1)検索命令100を事前アクセスパス決定機構104に入
力し,当該機構104で各表の結合順序および第1番目の
表へのアクセスパスを決定する。この例では,結合順序
は第1番目の表と第2番目の表とを結合し,その結果と
第3番目の表とを結合する順序とする。
(2)第1番目の表101に,表アクセス機構107でアクセ
スし,結果をバッファ110−1に返す。同時に,検索結
果情報を検索結果情報管理機構111に送り,そこで検索
結果情報管理表112に登録する。
(3)実行時アクセスパス決定機構105で,検索結果情
報管理表112の第1番目の表へのアクセス結果情報を参
照し,第2番目の表へのアクセスパスを決定する。
(4)(3)で決定されたアクセスパスにより,表アク
セス機構107で表102にアクセスし,結果をバッファ110
−2に返す。同時に検索結果情報を検索結果情報管理機
構111に送り,検索結果情報管理表112に登録する。
(5)結合方式決定機構106で,検索結果情報管理表112
の表101と表102へのアクセス結果の情報から結合方式を
決定する。
(6)(5)で決定された結合方式に従い,結合機構10
8で,結合処理を行い,結果をバッファ110−21に返す。
同時に結果の情報を検索結果情報管理機構111に送り,
検索結果情報管理表112に登録する。
(7)(6)で登録された情報に従い,実行時アクセス
パス決定機構105で第3番目の表103へのアクセスパスを
決定する。
(8)(7)で決定されたアクセスパスに従い,表アク
セス機構107で表103にアクセスし,結果をバッファ110
−3に返す。同時に,結果の情報を検索結果情報管理機
構111に送り,検索結果情報管理表112に登録する。
(9)結合方式決定機構106で,(6)および(8)で
登録されたアクセス結果の情報から結合方式を決定す
る。
(10)(9)で決定された結合方式に従い,結合機構10
8で,結合処理を行い,結果をバッファ110−32に返す。
同時に結果の状態情報を検索結果情報管理機構111に送
り,検索結果情報管理表112に登録する。
(11)対象の表がさらに存在する場合には,(7)から
(10)を対象の表を変えて,対象の表がなくなるまで繰
り返す。
(12)すべての処理が終了した後,出力機構109でバッ
ファから結果を返却する。
第2図は二つの表の結合処理のアクセスパス選択を実
行時に行う場合の動作例を説明するための図であり,150
は検索命令,151は会社情報を管理する会社表,152は部品
情報を管理する部品表,155は実行時アクセスパス決定機
構,156は結合方式決定機構,160−1は会社表へのアクセ
ス結果を保存するバッファ,160−2は部品表へのアクセ
ス結果を保存するバッファ,160−3は結合処理を終了し
た結果を保存するバッファ,162は検索結果情報管理表で
ある。検索命令は以下のものを対象としている。
SELECT 品名,在庫,会社,社番,社名,地区 FROM 会社,部品 WHERE 会社.社番=部品.社番 AND 地区=‘東京'AND 在庫<=50 上記命令は,会社表151と部品表152とを社番が等しい
もので結合し,かつ地区が東京で在庫が50以下の行を返
却することを指定している。
アクセスは以下の順序で実行される。
(1)第1番目の会社表151に対して,事前に決定され
たアクセスパス(全サーチ)に従って,条件 地区=
‘東京’でアクセスされる。アクセス結果は,必要な列
からなる一時的な表の形態でバッファ160−1に保存さ
れる。この時,検索結果情報は,行数=500,バッファの
容量=10であり,検索結果情報管理表162に登録され
る。
(2)(1)のアクセス結果の情報から,実行時アクセ
スパス決定機構155で部品表152へのアクセスパスを決定
する。この時,会社表151へのアクセス結果の行数が500
と少ないので,部品表152へのアクセスパスとして,条
件,在庫<=50と条件 社番 IN(3,4,2,…)をANDで
結んだ条件式でのアクセスを行う。アクセス結果は,必
要な列からなる一時的な表の形態でバッファ160−2に
保存される。この時,検索結果情報は,行数=6,000,バ
ッファの容量=150であり,検索結果情報管理表162に登
録される。
(3)(1)と(2)とのアクセス結果情報から,結合
方式決定機構156で結合方式を決定する。ここでは,両
者の行数が多いため,ソートマージ結合処理方式が選択
される。
(4)(3)で決定された結合方式での結合が実行さ
れ,結果がバッファ160−3に一時的な表の状態で保存
される。
(5)(4)で実行された結果バッファ160−3から,
行が返却される。
この例からわかるように,アクセスパスの決定が最初
にアクセスした表の検索結果情報である行数,容量に基
づいて行われているため,次の表へのアクセスパス選択
がより適切なものとなる。また,結合方式の決定につい
ても,二つの表へのアクセス結果に基づいて行われるた
め,より適切な結合方式が選択される。
〔実施例2〕 副問合せ処理の例 第3図は副問合せ処理時の実行時アクセスパス選択法
の説明図であり,200は検索命令,201は第1番目の表,202
は第2番目の表,204は事前アクセスパス決定機構,206は
副問合せ処理方式決定機構,207は表アクセス機構,208は
出力機構,210−1は副問合せ結果を保存するバッファ,2
10−2は間合せ結果を保存するバッファ,211は検索結果
情報管理機構,212は検索結果情報管理表である。表201,
202は表アクセス機構207で検索され,アクセス結果が,
バッファ210に保存される。表201,202は,行が複数存在
しており,各行は複数の列より構成されている。表への
アクセス条件はこの列に対して指定され,各列の条件を
満足する行が検索結果として返却されバッファ210に結
果が保存される。この時,検索結果情報(行数,検索結
果の容量)が検索結果情報管理機構211に同時に返却さ
れ,検索結果情報管理表212の形態で管理される。検索
処理は,以下の手続きで行う。
(1)検索命令200のステートメントを事前アクセスパ
ス決定機構204に入力し,当該機構204で副問合せ内の表
へのアクセスパスと表へのアクセス順序とを決定する。
この例では,まず副問合せ内の表201にアクセスし,そ
の次に間合せの表202にアクセスする。
(2)第1番目の表201に,表アクセス機構207でアクセ
スし,結果をバッファ210−1に返却する。同時に,検
索結果情報を検索結果情報管理機構211に送り,そこで
検索結果情報管理表212に登録する。ここで,副問合せ
内に結合処理など複数の表へのアクセスがあれば,それ
らの処理がすべて終了した結果がバッファ210−1に返
却される。
(3)副問合せ処理方式決定機構206で,検索結果情報
管理表212の表201へのアクセス結果情報を参照し,副問
合せ処理方式を決定する。
(4)(3)で決定された副問合せ処理方式に従い,副
問合せを含む表202へのアクセスを行い結果をバッファ2
10−2に返却する。
(5)副問合せの入れ子が存在する場合には,すべての
入れ子がなくなるまで繰り返す。
(6)すべての処理が終了した後,出力機構208でバッ
ファ210−2から結果を返却する。
第4図は入れ子が一段の副問合せを含む間合せ処理の
アクセスパス選択を実行時に行う場合の動作例を説明す
るための図である。250は検索命令,251は副問合せ内で
アクセスする表であって,会社に関する情報を管理する
会社表,252は部品に関する情報を管理する部品表,256は
副問合せ処理方式決定機構,260−1は副問合せ実行結果
を保存するバッファ,260−2は部品表へのアクセス結果
を保存するバッファ,262は検索結果情報管理表である。
検索命令は,以下のものを対象にしている。
SELECT 品名,在庫 FROM 部品 WHERE 在庫<=50 AND 社番=ANY(SELECT 社番 FROM 会社 WHERE 地区=‘東京’) 上記間合せは,部品表252の中から,在庫が50以下で
かつ会社表251中の地区が東京である社番と同じ社番を
持つ行を求め,その中から品品と在庫とを返却すること
を指定している。
アクセスは以下の順序で実行される。
(1)副問合せ内の会社表251に事前に決定されている
アクセスパスに従って条件 地区=‘東京’でアクセス
し,結果をバッファ260−1に保存する。この時,検索
結果情報は,行数=500,バッファ容量=1であり,検索
結果情報管理表262に登録される。
(2)(1)のアクセス結果情報から部品表252へのア
クセスパスを副問合せ処理方式決定機構256で決定す
る。この場合,副問合せ結果の行数が500と少ないの
で,部品表へのアクセスパスとして,条件 在庫<=50
と条件 社番 IN(3,4,2,…)をANDで結んだ条件式で
のアクセスを行う。アクセス結果は,バッファ260−2
に保存される。
(3)(2)で実行された結果が,行毎に返却される。
この例からわかるように,アクセスパスの決定が副問
合せ内の処理結果の情報を参照して行われており,従来
の予測に基づいてアクセスパスを決定する方法に比べ
て,より適切なアクセスパスを選択することができ,実
行時間の短縮が実現できる。
〔発明の効果〕
以上説明したように,この発明によれば,アクセスパ
スの選択を関係演算実行時に,事前にアクセスした結果
情報に基づいて行うため,従来の方法に比べて,正確な
情報による判定を実施することになり,処理時間を最短
にするアクセスパスを選択する確度が高い。そのため,
全体の処理時間短縮が実現できる。
【図面の簡単な説明】
第1図は結合処理時の実行時アクセスパス選択法の説明
図,第2図は結合処理実行時のアクセスパス選択の実行
例,第3図は副問合せ処理時の実行時アクセスパス選択
法の説明図,第4図は副問合せ処理時の実行時アクセス
パス選択の実行例,第5図は従来の事前に予測情報に基
づいてアクセスパス決定を行う方法の処理フローであ
る。 図中,100,200は検索命令,104,204は事前アクセスパス決
定機構,105は実行時アクセスパス決定機構,106は結合方
式決定機構,107,207は表アクセス機構,108は結合機構,1
09,208は出力機構,206は副問合せ処理方式決定機構,11
1,211は検索結果情報管理機構,112,212は検索結果情報
管理表を表わす。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】関係データベースをアクセスする処理に関
    して、 複数の表へのアクセスにより関係演算を実現する処理
    で、 かつ複数の表へのアクセスに当っては、一つの表へのア
    クセスが終了した時点で次の表にアクセスする処理を繰
    り返すようにする処理で、 かつ表にアクセスする前には、その表へのアクセス結果
    の件数と容量とを含む情報が確定できない処理で、 かつ表にアクセスする前に表へのアクセスに用いるアク
    セスパスを確定し、また、これとは別に関係演算を実行
    する前に関係演算の実行に用いるアクセスパスを確定す
    る 関係データベースのアクセスパス決定処理方法におい
    て、 関係演算処理実行中に、当該関係演算処理実行以前に第
    1の表へアクセスした結果の上記情報に基づいて次の第
    2の表へのアクセスパスを決定し、 つづいて、当該関係演算処理実行以前に第1の表へのア
    クセスした結果の上記情報と、第2の表へのアクセスし
    た結果の情報とに基づいて、関係演算の実行に用いるア
    クセスパスを決定するようにし、かつ第3の表が存在す
    れば、先の関係演算の実行結果の情報にもとづき第3の
    表へのアクセスパスを決定するようにしすべての表への
    アクセスが、終了するまでこれらの処理を繰り返すよう
    にした ことを特徴とする関係データベースのアクセスパス決定
    処理方法。
JP63183308A 1988-07-22 1988-07-22 関係データベースのアクセスパス決定処理方法 Expired - Fee Related JPH0833854B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63183308A JPH0833854B2 (ja) 1988-07-22 1988-07-22 関係データベースのアクセスパス決定処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP63183308A JPH0833854B2 (ja) 1988-07-22 1988-07-22 関係データベースのアクセスパス決定処理方法

Publications (2)

Publication Number Publication Date
JPH0232472A JPH0232472A (ja) 1990-02-02
JPH0833854B2 true JPH0833854B2 (ja) 1996-03-29

Family

ID=16133413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63183308A Expired - Fee Related JPH0833854B2 (ja) 1988-07-22 1988-07-22 関係データベースのアクセスパス決定処理方法

Country Status (1)

Country Link
JP (1) JPH0833854B2 (ja)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2760794B2 (ja) * 1988-01-29 1998-06-04 株式会社日立製作所 データベース処理方法および装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
「情報処理学会第36回(昭和63年前期)全国大会講演論文集」(昭63−3−18)P.505−506

Also Published As

Publication number Publication date
JPH0232472A (ja) 1990-02-02

Similar Documents

Publication Publication Date Title
US7113957B1 (en) Row hash match scan join using summary contexts for a partitioned database system
US6009265A (en) Program product for optimizing parallel processing of database queries
US5574900A (en) System and method for optimizing parallel processing of database queries
US5557791A (en) Outer join operations using responsibility regions assigned to inner tables in a relational database
US6665684B2 (en) Partition pruning with composite partitioning
US6609131B1 (en) Parallel partition-wise joins
US7966330B2 (en) Techniques for partition pruning
US10120899B2 (en) Selective materialized view refresh
US20160378827A1 (en) Query optimization for group-by extensions and distinct aggregate functions
US20030061244A1 (en) System and method for database query optimization
EP1107135A2 (en) Parallel optimized triggers in parallel processing database systems
US7836022B2 (en) Reduction of join operations when archiving related database tables
US20030233380A1 (en) User-defined aggregate functions in database systems without native support
US9904708B2 (en) Apparatus and method for processing query in database with hybrid storage
US7080072B1 (en) Row hash match scan in a partitioned database system
US7840552B2 (en) Cost-based subquery correlation and decorrelation
US7814094B2 (en) Optimizing access to a database by utilizing a star join
US6944633B1 (en) Performing a join in a partitioned database system
US7203686B1 (en) Partition join in a partitioned database system
US8214408B2 (en) Method, database system and computer program for joining temporal database tables
US20070198471A1 (en) Using query persistence for efficient subquery evaluation in federated databases
US20050021287A1 (en) Computing frequent value statistics in a partitioned relational database
US7188334B1 (en) Value-ordered primary index and row hash match scan
US7085754B2 (en) System and a two-pass algorithm for determining the optimum access path for multi-table SQL queries
US7617189B2 (en) Parallel query processing techniques for minus and intersect operators

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees