JP3297403B2 - 照会を最適化する方法および装置 - Google Patents
照会を最適化する方法および装置Info
- Publication number
- JP3297403B2 JP3297403B2 JP20114099A JP20114099A JP3297403B2 JP 3297403 B2 JP3297403 B2 JP 3297403B2 JP 20114099 A JP20114099 A JP 20114099A JP 20114099 A JP20114099 A JP 20114099A JP 3297403 B2 JP3297403 B2 JP 3297403B2
- Authority
- JP
- Japan
- Prior art keywords
- query
- row
- subquery
- scalar
- relational database
- 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
Links
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24535—Query rewriting; Transformation of sub-queries or views
-
- 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/99931—Database or file accessing
- Y10S707/99932—Access augmentation or optimizing
-
- 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/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
-
- 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/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (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
【0001】
【発明の属する技術分野】本発明は、概して云えば、コ
ンピュータによって遂行されるデータベース管理システ
ムに関するものであり、更に詳しく云えば、リレーショ
ナル・データベース管理システムにおけるスカラ副照会
(subquery)の最適化に関するものである。
ンピュータによって遂行されるデータベース管理システ
ムに関するものであり、更に詳しく云えば、リレーショ
ナル・データベース管理システムにおけるスカラ副照会
(subquery)の最適化に関するものである。
【0002】
【従来の技術】構造化照会言語(SQL)インターフェ
ースを使用するリレーショナル・データベース管理シス
テム(RDBMS)を組み込んだコンピュータ・システ
ムはこの分野ではよく知られている。SQLインターフ
ェースはRDBMSソフトウエアのための標準言語に発
展し、米国規格協会(ANSI)及び国際標準化機構
(ISO)の両方によってそれ自体を採用されている。
ースを使用するリレーショナル・データベース管理シス
テム(RDBMS)を組み込んだコンピュータ・システ
ムはこの分野ではよく知られている。SQLインターフ
ェースはRDBMSソフトウエアのための標準言語に発
展し、米国規格協会(ANSI)及び国際標準化機構
(ISO)の両方によってそれ自体を採用されている。
【0003】RDBMSソフトウエアでは、すべてのデ
ータが外部的にテーブルの形に構造化される。SQLイ
ンターフェースは、ユーザがテーブルにおける関係演算
を、バッチ・ファイルにおいて対話的に公式化するこ
と、又は、C、COBOL等のようなホスト言語に組み
込むことを可能にする。SQLでは、ユーザがデータを
操作することを可能にする演算子が設けられる。各演算
子は1つ又は2つのテーブルにおいて演算し、その結果
として新しいテーブルを作成する。SQLのパワーは、
複雑なプロシージャのセットを単一のステートメントで
もって遂行するために、それが複数のテーブル又はビュ
ーからの情報を一体的に連結するという機能にある。
ータが外部的にテーブルの形に構造化される。SQLイ
ンターフェースは、ユーザがテーブルにおける関係演算
を、バッチ・ファイルにおいて対話的に公式化するこ
と、又は、C、COBOL等のようなホスト言語に組み
込むことを可能にする。SQLでは、ユーザがデータを
操作することを可能にする演算子が設けられる。各演算
子は1つ又は2つのテーブルにおいて演算し、その結果
として新しいテーブルを作成する。SQLのパワーは、
複雑なプロシージャのセットを単一のステートメントで
もって遂行するために、それが複数のテーブル又はビュ
ーからの情報を一体的に連結するという機能にある。
【0004】SQL標準では、SELECT(選択)ス
テートメントがデータを検索するために使用され、それ
は、一般に、次のようなフォーマット: "SELECT
<クローズ(clause)>FROM<クローズ>W
HERE<クローズ>GROUP BY<クローズ>H
AVING<クローズ>ORDER BY<クローズ
>" を含んでいる。それらのクローズは、一般的には、
このシーケンスに従わなければならないが、SELEC
T及びFROMクローズしか必要とされない。SELE
CTステートメントの結果は、リレーショナル・データ
ベースに記憶された1つ又は複数の既存のテーブル又は
ビューからRDBMSソフトウエアによって検索された
データのサブセットである。なお、FROMクローズ
は、データが選択されるテーブル又はビューの名前をR
DBMSソフトウエアに知らせる。そのデータのサブセ
ットは、一般には一時的なテーブルを構成する結果セッ
トと呼ばれる新たなテーブルとして扱われる。一般に、
SELECTステートメントのSELECTクローズに
おいて指定された項目は、FROMクローズにおいて識
別されたテーブルから結果テーブルにおける戻される列
を決定する。
テートメントがデータを検索するために使用され、それ
は、一般に、次のようなフォーマット: "SELECT
<クローズ(clause)>FROM<クローズ>W
HERE<クローズ>GROUP BY<クローズ>H
AVING<クローズ>ORDER BY<クローズ
>" を含んでいる。それらのクローズは、一般的には、
このシーケンスに従わなければならないが、SELEC
T及びFROMクローズしか必要とされない。SELE
CTステートメントの結果は、リレーショナル・データ
ベースに記憶された1つ又は複数の既存のテーブル又は
ビューからRDBMSソフトウエアによって検索された
データのサブセットである。なお、FROMクローズ
は、データが選択されるテーブル又はビューの名前をR
DBMSソフトウエアに知らせる。そのデータのサブセ
ットは、一般には一時的なテーブルを構成する結果セッ
トと呼ばれる新たなテーブルとして扱われる。一般に、
SELECTステートメントのSELECTクローズに
おいて指定された項目は、FROMクローズにおいて識
別されたテーブルから結果テーブルにおける戻される列
を決定する。
【0005】WHEREクローズは、結果テーブルにお
けるどの行が戻されるべきかを決定する。一般に、WH
EREクローズは、結果テーブルにおける戻された各行
が満足しなければならないサーチ条件を含む。そのサー
チ条件に適合する行は中間セットを形成し、その中間セ
ットはその後SELECTクローズにおける仕様に従っ
て更に処理される。一般に、サーチ条件は1つ又は複数
の述部を含み、その述部の各々は、列を含む2つの値、
定数、又は相関値の間の比較を指定する。WHEREク
ローズにおける複数の述部は、一般にそれら自身をブー
ル演算子によって接続される。
けるどの行が戻されるべきかを決定する。一般に、WH
EREクローズは、結果テーブルにおける戻された各行
が満足しなければならないサーチ条件を含む。そのサー
チ条件に適合する行は中間セットを形成し、その中間セ
ットはその後SELECTクローズにおける仕様に従っ
て更に処理される。一般に、サーチ条件は1つ又は複数
の述部を含み、その述部の各々は、列を含む2つの値、
定数、又は相関値の間の比較を指定する。WHEREク
ローズにおける複数の述部は、一般にそれら自身をブー
ル演算子によって接続される。
【0006】結合オペレーションは、1つのテーブル又
はビューからの行を他のテーブル又はビューに結合する
ことによってテーブル又はビューを結合することを可能
にする。種々のテーブル又はビューからの行又は行の一
部分が水平方向に連結される。その結合オペレーション
は、SELECTステートメントのFROMクローズに
おいて複数のテーブル又はビューを名前で呼ぶことによ
って暗黙指定される。必要なことではないけれども、結
合オペレーションは、通常、列を識別するWHEREク
ローズを含み、それらの列を通して行が結合される。W
HEREクローズは、結合されるべき行を選択するため
に使用される1つ又は複数の条件演算子を含んだ述部を
含むことも可能である。
はビューからの行を他のテーブル又はビューに結合する
ことによってテーブル又はビューを結合することを可能
にする。種々のテーブル又はビューからの行又は行の一
部分が水平方向に連結される。その結合オペレーション
は、SELECTステートメントのFROMクローズに
おいて複数のテーブル又はビューを名前で呼ぶことによ
って暗黙指定される。必要なことではないけれども、結
合オペレーションは、通常、列を識別するWHEREク
ローズを含み、それらの列を通して行が結合される。W
HEREクローズは、結合されるべき行を選択するため
に使用される1つ又は複数の条件演算子を含んだ述部を
含むことも可能である。
【0007】SELECT−FROM−WHERE照会
では、1つのタプルがその照会によって検索されるだけ
であるという状況(「1−タプル条件」と呼ばれる)を
識別することが重要な照会変換及び最適化を可能にす
る。1−タプル条件の識別の事例が、下記の文献及び特
許に開示されているように、従来技術において遂行され
ていた。 (1)Proceedings of ACM SIGMOD '92 International
Conference on Management of Data, San Diego, CA, 1
992 における Hamid Pirahesh、Joseph Hellerstein 及
び Waqar Hasan 氏による「スターバーストにおける拡
張可能/ルール・ベースの照会再書込最適化(Extensib
le/Rule Based Query Rewrite Optimization in STARBU
RST)」と題した記事。 (2)Relational Database Writings 1989-1991, Chap
ter 10, pp.133-154, 1992 における Hugh Darwen 氏に
よる「照会分解における機能的従属の役割(TheRole of
Functional Dependence in Query Decomposition)」
と題した記事。 (3)Proceedings of IEEE '94 International Confer
ence on Data Engineering, Houston, TX, 1994, pp.68
-79 における G.N.Paulley 及び Per-Ake Larson氏によ
る「照会最適化における特異性の利用(Exploiting Uni
queness in QueryOptimization)」と題した記事。 (4)T.Y.Leung、M.H.Pirahesh、D.E.Simmen、L.G.Str
ain 及び S.Tiwari を発明者とする「SQL照会の最適
化のために1−タプル条件を使用した特異性の利用(Ex
ploitation of Uniqueness Properties using a 1-Tupl
e Condition forthe Optimization of SQL Queries)」
と題した1997年3月25日発行の米国特許第5,6
15,361号。
では、1つのタプルがその照会によって検索されるだけ
であるという状況(「1−タプル条件」と呼ばれる)を
識別することが重要な照会変換及び最適化を可能にす
る。1−タプル条件の識別の事例が、下記の文献及び特
許に開示されているように、従来技術において遂行され
ていた。 (1)Proceedings of ACM SIGMOD '92 International
Conference on Management of Data, San Diego, CA, 1
992 における Hamid Pirahesh、Joseph Hellerstein 及
び Waqar Hasan 氏による「スターバーストにおける拡
張可能/ルール・ベースの照会再書込最適化(Extensib
le/Rule Based Query Rewrite Optimization in STARBU
RST)」と題した記事。 (2)Relational Database Writings 1989-1991, Chap
ter 10, pp.133-154, 1992 における Hugh Darwen 氏に
よる「照会分解における機能的従属の役割(TheRole of
Functional Dependence in Query Decomposition)」
と題した記事。 (3)Proceedings of IEEE '94 International Confer
ence on Data Engineering, Houston, TX, 1994, pp.68
-79 における G.N.Paulley 及び Per-Ake Larson氏によ
る「照会最適化における特異性の利用(Exploiting Uni
queness in QueryOptimization)」と題した記事。 (4)T.Y.Leung、M.H.Pirahesh、D.E.Simmen、L.G.Str
ain 及び S.Tiwari を発明者とする「SQL照会の最適
化のために1−タプル条件を使用した特異性の利用(Ex
ploitation of Uniqueness Properties using a 1-Tupl
e Condition forthe Optimization of SQL Queries)」
と題した1997年3月25日発行の米国特許第5,6
15,361号。
【0008】
【発明が解決しようとする課題】スカラ副照会を結合オ
ペレーションに変換するための1−タプル条件は非常に
信頼されていた。しかし、スカラ副照会を最適化する、
特に、UPDATEステートメントにおけるスカラ副照
会を最適化する、改良された方法に対する要求がその分
野にはある。
ペレーションに変換するための1−タプル条件は非常に
信頼されていた。しかし、スカラ副照会を最適化する、
特に、UPDATEステートメントにおけるスカラ副照
会を最適化する、改良された方法に対する要求がその分
野にはある。
【0009】
【課題を解決するための手段】上記の従来技術における
限定事項を克服するために、及び本願明細書を読み及び
理解する時に明らかとなる他の限定事項を克服するため
に、本発明はSQL照会を最適化するための方法、装
置、及びコンピュータ・プログラム・キャリアを開示す
る。照会は、それが1つ又は複数のスカラ副照会及び1
つ又は複数の存在副照会を含むかどうかを決定するため
に分析される。スカラ副照会及び存在副照会は包含(s
ubsumption)方法を利用することによって結
合オペレーションに変換され、結合オペレーションはマ
ージされて単一の照会ブロックになる。その照会ブロッ
クは、データをリレーショナル・データベースから検索
するためのより効率的な実行計画の生成を可能にする。
限定事項を克服するために、及び本願明細書を読み及び
理解する時に明らかとなる他の限定事項を克服するため
に、本発明はSQL照会を最適化するための方法、装
置、及びコンピュータ・プログラム・キャリアを開示す
る。照会は、それが1つ又は複数のスカラ副照会及び1
つ又は複数の存在副照会を含むかどうかを決定するため
に分析される。スカラ副照会及び存在副照会は包含(s
ubsumption)方法を利用することによって結
合オペレーションに変換され、結合オペレーションはマ
ージされて単一の照会ブロックになる。その照会ブロッ
クは、データをリレーショナル・データベースから検索
するためのより効率的な実行計画の生成を可能にする。
【0010】本発明の目的は、スカラ副照会及び存在副
照会の両方を含むSQL照会を最適化することにある。
更に詳しく云えば、本発明の目的は、1つ又は複数のス
カラ副照会を1つ又は複数の結合オペレーションに変換
すること、1つ又は複数の存在副照会を1つ又は複数の
結合オペレーションに変換すること、及び、その結果生
じた結合オペレーションをマージして単一の照会ブロッ
クにすることにある。照会再書込み変換のこの特異な結
合の結果、スカラ及び存在副照会は結合オペレーション
に縮小され、冗長な結合オペレーションは除去され、そ
れによって、優れたパフォーマンスが提供される。
照会の両方を含むSQL照会を最適化することにある。
更に詳しく云えば、本発明の目的は、1つ又は複数のス
カラ副照会を1つ又は複数の結合オペレーションに変換
すること、1つ又は複数の存在副照会を1つ又は複数の
結合オペレーションに変換すること、及び、その結果生
じた結合オペレーションをマージして単一の照会ブロッ
クにすることにある。照会再書込み変換のこの特異な結
合の結果、スカラ及び存在副照会は結合オペレーション
に縮小され、冗長な結合オペレーションは除去され、そ
れによって、優れたパフォーマンスが提供される。
【0011】本発明のもう1つの目的は、スカラ副照会
が1つ又は複数の照会ブロックに縮小される結合オペレ
ーションに変換されるように、そのスカラ副照会が精々
1つの行を戻すだけであってエンプティ・セットを戻さ
ないということを、照会コンパイレーション時に証明す
ることにある。その結果、本発明は、劇的に改良された
照会実行時間を提供する。
が1つ又は複数の照会ブロックに縮小される結合オペレ
ーションに変換されるように、そのスカラ副照会が精々
1つの行を戻すだけであってエンプティ・セットを戻さ
ないということを、照会コンパイレーション時に証明す
ることにある。その結果、本発明は、劇的に改良された
照会実行時間を提供する。
【0012】
【発明の実施の形態】望ましい実施例に関する以下の説
明では、本発明を実施し得る特定の実施例の一部分を形
成し、その実施例を図示する添付図面を参照することに
する。本発明の趣旨から逸脱することなく、他の実施例
が利用可能であること、構造的及び機能的変更を行うこ
とが可能であることは理解されるべきことである。
明では、本発明を実施し得る特定の実施例の一部分を形
成し、その実施例を図示する添付図面を参照することに
する。本発明の趣旨から逸脱することなく、他の実施例
が利用可能であること、構造的及び機能的変更を行うこ
とが可能であることは理解されるべきことである。
【0013】A.ハードウエア環境 図1は、本発明が使用し得る例示的なコンピュータ・ハ
ードウエア環境を示す。その例示的環境では、コンピュ
ータ・システム102は、1つ又は複数のリレーショナ
ル・データベースを記憶するディスク・ドライブのよう
な1つ又は複数の電子的記憶装置104及び106に接
続された1つ又は複数のプロセッサから構成される。
ードウエア環境を示す。その例示的環境では、コンピュ
ータ・システム102は、1つ又は複数のリレーショナ
ル・データベースを記憶するディスク・ドライブのよう
な1つ又は複数の電子的記憶装置104及び106に接
続された1つ又は複数のプロセッサから構成される。
【0014】コンピュータ・システム102のオペレー
タは、IMS/DB/DC、CICS、TSO、OS/
2のような標準のオペレータ(ターミナル)インターフ
ェース108又は他の同様なインターフェースを使用し
て、データベースに対する照会と呼ばれる種々のサーチ
及び検索機能を遂行するためのコマンドを表す電気的信
号をコンピュータ・システム102に及びコンピュータ
・システム102から伝送する。本発明では、これらの
照会は構造化照会言語(SQL)標準に適合し、リレー
ショナル・データベース管理システム(RDBMS)ソ
フトウエアによって遂行される機能を呼び出す。本発明
の望ましい実施例では、RDBMSソフトウエアは、M
VS又はOS/2オペレーティング・システム用にIB
M社により提供されたDB2製品を含む。しかし、本発
明が任意のRDBMSソフトウエアに対するアプリケー
ションを有することは当業者には明らかであろう。
タは、IMS/DB/DC、CICS、TSO、OS/
2のような標準のオペレータ(ターミナル)インターフ
ェース108又は他の同様なインターフェースを使用し
て、データベースに対する照会と呼ばれる種々のサーチ
及び検索機能を遂行するためのコマンドを表す電気的信
号をコンピュータ・システム102に及びコンピュータ
・システム102から伝送する。本発明では、これらの
照会は構造化照会言語(SQL)標準に適合し、リレー
ショナル・データベース管理システム(RDBMS)ソ
フトウエアによって遂行される機能を呼び出す。本発明
の望ましい実施例では、RDBMSソフトウエアは、M
VS又はOS/2オペレーティング・システム用にIB
M社により提供されたDB2製品を含む。しかし、本発
明が任意のRDBMSソフトウエアに対するアプリケー
ションを有することは当業者には明らかであろう。
【0015】図1に示されるように、DB2製品は3つ
の主要なコンポーネント、即ち、IMSリソース・ロッ
ク・マネージャ(IRLM)110、システム・サービ
ス・モジュール112、及びデータベース・サービス・
モジュール114を含む。IRLM110は、DB2が
データを共用リソースとして扱うので、ロッキング・サ
ービスを処理し、それによって、任意の数のユーザが同
じデータを同時にアクセスすることを可能にし、従っ
て、ユーザを隔離するために及びデータ整合性を維持す
るために、同時性制御が必要とされる。システム・サー
ビス・モジュール112は、ログ・データ・セット10
6を管理すること、統計を収集すること、始動及び遮断
を処理すること、及び管理サポートを提供することを含
むDB2実行環境全体を制御する。
の主要なコンポーネント、即ち、IMSリソース・ロッ
ク・マネージャ(IRLM)110、システム・サービ
ス・モジュール112、及びデータベース・サービス・
モジュール114を含む。IRLM110は、DB2が
データを共用リソースとして扱うので、ロッキング・サ
ービスを処理し、それによって、任意の数のユーザが同
じデータを同時にアクセスすることを可能にし、従っ
て、ユーザを隔離するために及びデータ整合性を維持す
るために、同時性制御が必要とされる。システム・サー
ビス・モジュール112は、ログ・データ・セット10
6を管理すること、統計を収集すること、始動及び遮断
を処理すること、及び管理サポートを提供することを含
むDB2実行環境全体を制御する。
【0016】DB2アーキテクチャの中心には、データ
ベース・サービス・モジュール114がある。データベ
ース・サービス・モジュール114は、リレーショナル
・データベース・システム(RDS)116、データ・
マネージャ118、及びバッファ・マネージャ120、
並びに、SQLコンパイラ/インタープリタのような他
のエレメントを含む幾つものサブモジュールを含む。こ
れらのサブモジュールはSQL言語の機能、即ち、定
義、アクセス制御、検索、並びにユーザ及びシステム・
データの更新をサポートする。
ベース・サービス・モジュール114がある。データベ
ース・サービス・モジュール114は、リレーショナル
・データベース・システム(RDS)116、データ・
マネージャ118、及びバッファ・マネージャ120、
並びに、SQLコンパイラ/インタープリタのような他
のエレメントを含む幾つものサブモジュールを含む。こ
れらのサブモジュールはSQL言語の機能、即ち、定
義、アクセス制御、検索、並びにユーザ及びシステム・
データの更新をサポートする。
【0017】一般に、RDBMSソフトウエアのコンポ
ーネント、モジュール、及びサブモジュールの各々は、
命令及び/又はデータを含み、コンピュータ読取り可能
デバイス、媒体、又はキャリア、例えば、データ記憶装
置、データ通信装置によってコンピュータ102に結合
されたリモート装置等に組み込まれ、又はそこから検索
可能である。更に、これらの命令及び/又はデータは、
コンピュータによって読み取られ、実行され、及び/又
は解釈される時、本発明を実施し及び/又は使用するた
めに必要なステップをコンピュータ102に遂行させ
る。
ーネント、モジュール、及びサブモジュールの各々は、
命令及び/又はデータを含み、コンピュータ読取り可能
デバイス、媒体、又はキャリア、例えば、データ記憶装
置、データ通信装置によってコンピュータ102に結合
されたリモート装置等に組み込まれ、又はそこから検索
可能である。更に、これらの命令及び/又はデータは、
コンピュータによって読み取られ、実行され、及び/又
は解釈される時、本発明を実施し及び/又は使用するた
めに必要なステップをコンピュータ102に遂行させ
る。
【0018】従って、本発明は、ソフトウエア、ファー
ムウエア、ハードウエア、又はそれらの任意の組合せを
作るために標準的なプログラミング及び/又はエンジニ
アリング・テクニックを使用する方法、装置、又は製造
物として実現可能である。本願において使用される「製
造物」又はそれの代わりに「コンピュータ・プログラム
・キャリア」という用語は、任意のコンピュータ読取り
可能なデバイス、キャリア、又はメディアからアクセス
可能なコンピュータ・プログラムを包含することを意図
されている。勿論、本発明の技術的範囲から逸脱するこ
となくこの構成に対して多くの修正を施し得ることは当
業者には明らかであろう。
ムウエア、ハードウエア、又はそれらの任意の組合せを
作るために標準的なプログラミング及び/又はエンジニ
アリング・テクニックを使用する方法、装置、又は製造
物として実現可能である。本願において使用される「製
造物」又はそれの代わりに「コンピュータ・プログラム
・キャリア」という用語は、任意のコンピュータ読取り
可能なデバイス、キャリア、又はメディアからアクセス
可能なコンピュータ・プログラムを包含することを意図
されている。勿論、本発明の技術的範囲から逸脱するこ
となくこの構成に対して多くの修正を施し得ることは当
業者には明らかであろう。
【0019】上記のコンポーネントの任意の組合せ、又
はコンピュータ・プログラム、周辺装置、及び他のデバ
イスを含む任意の数の種々のコンポーネントが、同様の
機能を遂行する限り、本発明を実施するために使用可能
である。
はコンピュータ・プログラム、周辺装置、及び他のデバ
イスを含む任意の数の種々のコンポーネントが、同様の
機能を遂行する限り、本発明を実施するために使用可能
である。
【0020】B.対話的SQL実行 図2は、本発明に従って、対話的環境におけるSQLス
テートメントの解釈及び実行のために必要なステップを
示すフローチャートである。ブロック202は、コンピ
ュータ・システム102へのSQLステートメントの入
力を表す。ブロック204は、SQLステートメントを
コンパイル又は解釈するステップを表す。ブロック20
4における最適化機能は、本明細書において後で更に詳
細に説明される方法でSQL照会を変換又は最適化する
ことが可能である。ブロック206は、アプリケーショ
ン・プランと呼ばれる実行時構造のコンパイル・セット
をそのコンパイルされたSQLステートメントから生成
するステップを表す。一般的に、入力として受信された
SQLステートメントは所望のデータを指定するだけで
あり、そのデータを検索する方法を指定しない。このス
テップは、利用可能なアクセス・パス(インデックス、
順次読取り等)及びアクセスされるべきデータに関する
システム保持された統計(テーブルのサイズ、特定の列
における異なる値の数等)の両方を考慮して、それがそ
の照会に対する最も効率的なアクセス・パスであると見
なすものを選択する。ブロック208はアプリケーショ
ン・プランの実行を表し、ブロック210はその結果の
出力を表す。
テートメントの解釈及び実行のために必要なステップを
示すフローチャートである。ブロック202は、コンピ
ュータ・システム102へのSQLステートメントの入
力を表す。ブロック204は、SQLステートメントを
コンパイル又は解釈するステップを表す。ブロック20
4における最適化機能は、本明細書において後で更に詳
細に説明される方法でSQL照会を変換又は最適化する
ことが可能である。ブロック206は、アプリケーショ
ン・プランと呼ばれる実行時構造のコンパイル・セット
をそのコンパイルされたSQLステートメントから生成
するステップを表す。一般的に、入力として受信された
SQLステートメントは所望のデータを指定するだけで
あり、そのデータを検索する方法を指定しない。このス
テップは、利用可能なアクセス・パス(インデックス、
順次読取り等)及びアクセスされるべきデータに関する
システム保持された統計(テーブルのサイズ、特定の列
における異なる値の数等)の両方を考慮して、それがそ
の照会に対する最も効率的なアクセス・パスであると見
なすものを選択する。ブロック208はアプリケーショ
ン・プランの実行を表し、ブロック210はその結果の
出力を表す。
【0021】C.組込/バッチSQL実行 図3は、本発明に従って、ソース・コードに組み込まれ
たSQLステートメントの解釈及び実行のために必要な
ステップを示すフローチャートである。ブロック302
はホスト言語(COBOL又はCのような)を含み、S
QLステートメントを組み込まれたプログラム・ソース
・コードを表す。そこで、そのプログラム・ソース・コ
ードがプレコンパイル・ステップ304に入力される。
プレコンパイル・ステップ304から2つの出力、即
ち、修正済みソース・モジュール306及びデータベー
ス・リクエスト・モジュール(DBRM)308があ
る。修正済みソース・モジュール306はDB2に対す
るホスト言語コールを含む。プレコンパイル・ステップ
304は、そのホスト言語コールをSQLステートメン
トに代わって挿入する。DBRM308は、プログラム
・ソース・コード302からのSQLステートメントを
含む。コンパイル及びリンク・エディット・ステップ3
10は修正済みソース・モジュール306を使用してロ
ード・モジュール312を作り、一方、最適化及び結合
ステップ314は、DBRM308を使用してアプリケ
ーション・プラン316に対するランタイム構造のコン
パイル済みセットを作る。
たSQLステートメントの解釈及び実行のために必要な
ステップを示すフローチャートである。ブロック302
はホスト言語(COBOL又はCのような)を含み、S
QLステートメントを組み込まれたプログラム・ソース
・コードを表す。そこで、そのプログラム・ソース・コ
ードがプレコンパイル・ステップ304に入力される。
プレコンパイル・ステップ304から2つの出力、即
ち、修正済みソース・モジュール306及びデータベー
ス・リクエスト・モジュール(DBRM)308があ
る。修正済みソース・モジュール306はDB2に対す
るホスト言語コールを含む。プレコンパイル・ステップ
304は、そのホスト言語コールをSQLステートメン
トに代わって挿入する。DBRM308は、プログラム
・ソース・コード302からのSQLステートメントを
含む。コンパイル及びリンク・エディット・ステップ3
10は修正済みソース・モジュール306を使用してロ
ード・モジュール312を作り、一方、最適化及び結合
ステップ314は、DBRM308を使用してアプリケ
ーション・プラン316に対するランタイム構造のコン
パイル済みセットを作る。
【0022】図2に関連して上記したように、プログラ
ム・ソース・コード302からのSQLステートメント
は所望のデータを指定するだけであり、そのデータを検
索する方法を指定しない。最適化及び結合ステップ31
4は、本明細書において更に詳しく後述する方法でSQ
L照会をリオーダ又は最適化することができる。その
後、最適化及び結合ステップ314は、利用可能なアク
セス・パス(インデックス、順次読取り等)及びアクセ
スされるべきデータに関するシステム保持された統計
(テーブルのサイズ、特定の列における明瞭な値の数
等)の両方を考慮して、それがその照会のための最も効
率的なアクセス・パスであると見なすものを選択する。
しかる後、ロード・モジュール312及びアプリケーシ
ョン・プラン316がステップ318において一緒に実
行される。
ム・ソース・コード302からのSQLステートメント
は所望のデータを指定するだけであり、そのデータを検
索する方法を指定しない。最適化及び結合ステップ31
4は、本明細書において更に詳しく後述する方法でSQ
L照会をリオーダ又は最適化することができる。その
後、最適化及び結合ステップ314は、利用可能なアク
セス・パス(インデックス、順次読取り等)及びアクセ
スされるべきデータに関するシステム保持された統計
(テーブルのサイズ、特定の列における明瞭な値の数
等)の両方を考慮して、それがその照会のための最も効
率的なアクセス・パスであると見なすものを選択する。
しかる後、ロード・モジュール312及びアプリケーシ
ョン・プラン316がステップ318において一緒に実
行される。
【0023】D.最適化テクニックの説明 本発明は、一般には、図2のステップ204又は図3の
ステップ314において遂行される改良された最適化テ
クニックを開示する。この最適化テクニックは、照会が
1つ又は複数のスカラ副照会及び1つ又は複数の存在副
照会を含むかどうかを決定するためにその照会を分析す
る。それが肯定される場合、それらのスカラ副照会及び
存在副照会は結合オペレーションに変換され、それらの
結合オペレーションはマージされて少数の照会ブロック
(望ましくは、単一の照会ブロック)になる。
ステップ314において遂行される改良された最適化テ
クニックを開示する。この最適化テクニックは、照会が
1つ又は複数のスカラ副照会及び1つ又は複数の存在副
照会を含むかどうかを決定するためにその照会を分析す
る。それが肯定される場合、それらのスカラ副照会及び
存在副照会は結合オペレーションに変換され、それらの
結合オペレーションはマージされて少数の照会ブロック
(望ましくは、単一の照会ブロック)になる。
【0024】本発明のオペレーションは前後関係で、即
ち、RDBMSソフトウエアによって遂行されるデータ
・ウエアハウス・アプリケーションのような実世界の例
を使用して最善の理解を得ることができる。そのような
データ・ウエアハウス・アプリケーションでは、一般に
は、自身の一次キー又は独特のキーを形成する1つ又は
複数の列を持ったテーブルが存在するか、又はそのテー
ブルの1つ又は複数の列に関する独特の制約が存在す
る。
ち、RDBMSソフトウエアによって遂行されるデータ
・ウエアハウス・アプリケーションのような実世界の例
を使用して最善の理解を得ることができる。そのような
データ・ウエアハウス・アプリケーションでは、一般に
は、自身の一次キー又は独特のキーを形成する1つ又は
複数の列を持ったテーブルが存在するか、又はそのテー
ブルの1つ又は複数の列に関する独特の制約が存在す
る。
【0025】下記のようなSQLステートメントを使用
して作成し得る、図4に示されたようなFACTテーブ
ルを含む構造の一般的な例を考察する:
して作成し得る、図4に示されたようなFACTテーブ
ルを含む構造の一般的な例を考察する:
【表1】 CREATE TABLE FACT( KEYCOL INT,/*KEY OR UNIQUE CONSTRAINT*/ COL1 INT, COL2 INT, COL3 INT)
【0026】FACTテーブルは1つのキー列(KEY
COL)及び3つの更なる列(COL1,COL2 A
ND COL3)並びに複数の行又はタプルを有する。
COL)及び3つの更なる列(COL1,COL2 A
ND COL3)並びに複数の行又はタプルを有する。
【0027】列の数は、本願において与えられる最適化
テクニックに無関係であることに注意してほしい。更
に、最適化は如何なるデータ・タイプにも、及び複数列
の複合キーにも等しく適用可能であることに注意してほ
しい。
テクニックに無関係であることに注意してほしい。更
に、最適化は如何なるデータ・タイプにも、及び複数列
の複合キーにも等しく適用可能であることに注意してほ
しい。
【0028】定期的に、FACTテーブルは、オリジナ
ルFACTテーブルよりもサイズが小さいことが多い
(いつもそうとは限らないけれども)新たなデータ・セ
ットでもって更新される。一般に、新たなデータ・セッ
トは同じスキーマの他のテーブル、例えば、図5に示さ
れるようなDELTA_FACTに記憶される。
ルFACTテーブルよりもサイズが小さいことが多い
(いつもそうとは限らないけれども)新たなデータ・セ
ットでもって更新される。一般に、新たなデータ・セッ
トは同じスキーマの他のテーブル、例えば、図5に示さ
れるようなDELTA_FACTに記憶される。
【0029】この例では、DELTA_FACTに対す
るスキーマはFACTテーブルとはわずかに異なってい
るが、他と実施例では、そのスキーマはFACTテーブ
ルのスキーマと同じであることがある。従って、DEL
TA_FACTテーブルは次のようなSQLステートメ
ントによって作成可能である:
るスキーマはFACTテーブルとはわずかに異なってい
るが、他と実施例では、そのスキーマはFACTテーブ
ルのスキーマと同じであることがある。従って、DEL
TA_FACTテーブルは次のようなSQLステートメ
ントによって作成可能である:
【表2】 CREATE TABLE DELTA_FACT( KEYCOL INT,/*KEY OR UNIQUE CONSTRAINT*/ COL1 INT COL3 INT)
【0030】DELTA_FACTテーブルはFACT
テーブルを更新するために使用される新たなデータを記
憶する。図5における行のようなKEYCOL値を30
に等しいKEYCOLと一致させる行に対して、FAC
Tテーブルにおける対応する行が更新されなければなら
ない。FACTテーブルに対する更新オペレーションの
種類はアプリケーション特有のものである。
テーブルを更新するために使用される新たなデータを記
憶する。図5における行のようなKEYCOL値を30
に等しいKEYCOLと一致させる行に対して、FAC
Tテーブルにおける対応する行が更新されなければなら
ない。FACTテーブルに対する更新オペレーションの
種類はアプリケーション特有のものである。
【0031】例えば、COL1及びCOL3における新
たな値がFACTテーブルにおける対応する行に加えら
れるべきものであると仮定する。これは、次のように相
関したスカラ副照会を使用してUPDATE照会を遂行
することによって達成可能である:
たな値がFACTテーブルにおける対応する行に加えら
れるべきものであると仮定する。これは、次のように相
関したスカラ副照会を使用してUPDATE照会を遂行
することによって達成可能である:
【表3】 UPDATE FACT F SET(COL1,COL3)= (SELECT F.COL1+D.COL1,F.COL3+ D.COL3 FROM DELTA_FACT D WHERE F.KEYCOL=D.KEYCOL) WHERE F.KEYCOL IN(SELECT KEYCOL FRO M DELTA_FACT E)
【0032】このUPDATE照会を実行する時、FA
CTテーブルは図6に示されたデータを含む。即ち、更
新されるべきFACTテーブルにおける各行に対して、
RDBMSソフトウエアは、先ず、その行がDELTA
_FACTテーブルにあるかどうかを決定し、それがそ
のテーブルにある場合、相関したスカラ副照会がDEL
TA_FACTテーブルにおける行から列の値を検索す
るために評価される。そこで、これらの検索された値
は、FACTテーブルの行における対応する列に対する
結果を計算するために使用される。
CTテーブルは図6に示されたデータを含む。即ち、更
新されるべきFACTテーブルにおける各行に対して、
RDBMSソフトウエアは、先ず、その行がDELTA
_FACTテーブルにあるかどうかを決定し、それがそ
のテーブルにある場合、相関したスカラ副照会がDEL
TA_FACTテーブルにおける行から列の値を検索す
るために評価される。そこで、これらの検索された値
は、FACTテーブルの行における対応する列に対する
結果を計算するために使用される。
【0033】図7はこの評価ストラテジを示す照会グラ
フ・モデルであり、そのモデルは最も下から上に遂行さ
れる実行階層を示す。ここでは、ブロックの各々はその
階層における照会又は副照会ブロックを表し、ブロック
相互間の線は低レベルのブロックから高レベルのブロッ
クに与えられる中間結果を表す。図7に示された評価方
法は、UPDATE照会を遂行するための非最適化方法
を表し、それは従来技術のRDBMSソフトウエアの代
表的なものである。FACTテーブルからの行は存在副
照会を使用してフィルタされる。修飾されるFACT行
に関して、更新SETクローズに対する結果を計算する
ために、相関したスカラ副照会が評価される。
フ・モデルであり、そのモデルは最も下から上に遂行さ
れる実行階層を示す。ここでは、ブロックの各々はその
階層における照会又は副照会ブロックを表し、ブロック
相互間の線は低レベルのブロックから高レベルのブロッ
クに与えられる中間結果を表す。図7に示された評価方
法は、UPDATE照会を遂行するための非最適化方法
を表し、それは従来技術のRDBMSソフトウエアの代
表的なものである。FACTテーブルからの行は存在副
照会を使用してフィルタされる。修飾されるFACT行
に関して、更新SETクローズに対する結果を計算する
ために、相関したスカラ副照会が評価される。
【0034】対照的に、本発明は、この例では、DEL
TA_FACTテーブルが2回(即ち、存在副照会にお
いて1回及びスカラ副照会において1回)の代わりに1
回だけアクセスされるような方法で照会を最適化する方
法を開示する。これは幾つもの照会再書込変換をその照
会に適用することによって達成される。
TA_FACTテーブルが2回(即ち、存在副照会にお
いて1回及びスカラ副照会において1回)の代わりに1
回だけアクセスされるような方法で照会を最適化する方
法を開示する。これは幾つもの照会再書込変換をその照
会に適用することによって達成される。
【0035】図8は、存在副照会を使用するフィルタリ
ングが更新結果の計算における場合と同じSELECT
演算において行われるという同等のストラテジを示す照
会グラフ・モデルである。ビュー・マージのような従来
技術を使用してこの最適化を行うことが可能である。
ングが更新結果の計算における場合と同じSELECT
演算において行われるという同等のストラテジを示す照
会グラフ・モデルである。ビュー・マージのような従来
技術を使用してこの最適化を行うことが可能である。
【0036】図9は、複数の存在副照会及び複数の相関
スカラ副照会が存在するUPDATE(更新)ステート
メントの一般的な形式を示す照会グラフ・モデルであ
る。例えば、ここで示されるテクニックは次のようなU
PDATE照会を最適化することができる。
スカラ副照会が存在するUPDATE(更新)ステート
メントの一般的な形式を示す照会グラフ・モデルであ
る。例えば、ここで示されるテクニックは次のようなU
PDATE照会を最適化することができる。
【表4】 UPDATE FACT F SET COL1=(SELECT F.COL1+D1.COL1 FROM DELTA_FACT1 D1 WHERE F.KEYCOL=D1.KEYCOL) COL3=(SELECT F.COL3+D2.COL1 FROM DELTA_FACT2 D2 WHERE F.KEYCOL=D2.KEYCOL) WHERE F.KEYCOL IN(SELECT KEYCOL FRO M DELTA_FACT1E1)AND F.KEYCOL IN(SELEC T KEYCOL FROM DELTA_FACT2 E2)
【0037】本発明の主要な概念は、スカラ副照会が1
つの結合オペレーションに変換可能であること、存在副
照会が1つの結合オペレーションに変換可能であるこ
と、及び結合オペレーションがマージされて、冗長な結
合が除去されることを可能にし、しかも優れたパフォー
マンスを提供する単一の照会ブロックになることを可能
にすることである。しかし、スカラ副照会最適化テクニ
ックがUPDATE照会に制限されず、他のタイプの照
会にも同様に適用可能であることが強調されなければな
らない。
つの結合オペレーションに変換可能であること、存在副
照会が1つの結合オペレーションに変換可能であるこ
と、及び結合オペレーションがマージされて、冗長な結
合が除去されることを可能にし、しかも優れたパフォー
マンスを提供する単一の照会ブロックになることを可能
にすることである。しかし、スカラ副照会最適化テクニ
ックがUPDATE照会に制限されず、他のタイプの照
会にも同様に適用可能であることが強調されなければな
らない。
【0038】(a)スカラ副照会 定義によって、スカラ副照会は2つの要件を有する。第
1に、その副照会が2つ以上の行を戻す場合、ランタイ
ム・エラーが発生されるであろう。第2に、その副照会
がエンプティ・セットを戻す場合、ヌル値を有する行が
代わりに戻されるであろう。
1に、その副照会が2つ以上の行を戻す場合、ランタイ
ム・エラーが発生されるであろう。第2に、その副照会
がエンプティ・セットを戻す場合、ヌル値を有する行が
代わりに戻されるであろう。
【0039】上記UPDATE照会に関しては、T.Y.Le
ung、M.H.Pirahesh、D.E.Simmen、L.G.Strain、及び S.
Tiwari 氏を発明者とする「SQL照会の最適化のため
に1−タプル条件を使用する特異性の利用(Explotatio
n of Uniqueness Propertiesusing a 1-Tuple Conditio
n for Optimization of SQL Queries)」と題した19
97年3月25日発行の米国特許第5,615,361号
において開示されているテクニックを使用して、そのス
カラ副照会は精々1行を戻すということをコンパイル時
に証明することができる。その原理は、FACTテーブ
ルにおける各行に対して、相関述部(F.KEYCOL
=D.KEYCOL)は、D.KEYCOLがDELTA
_FACTテーブルにおける一次キー列であるためにD
ELTA_FACTテーブルにおける精々1行と一致す
るであろうと云うことである。しかし、その副照会がヌ
ル行を戻す場合、その戻されたヌル行は応答セットを変
更しないであろうということが証明されなければなら
ず、従って、スカラ副照会は結合オペレーションに変換
され、その結合オペレーションはマージされて同じ照会
ブロックになり得る。本発明は照会コンパイル時にこれ
らの特性を両方とも証明し、所望の最適化を遂行し、そ
れ自体、照会実行時間を劇的に改良する。
ung、M.H.Pirahesh、D.E.Simmen、L.G.Strain、及び S.
Tiwari 氏を発明者とする「SQL照会の最適化のため
に1−タプル条件を使用する特異性の利用(Explotatio
n of Uniqueness Propertiesusing a 1-Tuple Conditio
n for Optimization of SQL Queries)」と題した19
97年3月25日発行の米国特許第5,615,361号
において開示されているテクニックを使用して、そのス
カラ副照会は精々1行を戻すということをコンパイル時
に証明することができる。その原理は、FACTテーブ
ルにおける各行に対して、相関述部(F.KEYCOL
=D.KEYCOL)は、D.KEYCOLがDELTA
_FACTテーブルにおける一次キー列であるためにD
ELTA_FACTテーブルにおける精々1行と一致す
るであろうと云うことである。しかし、その副照会がヌ
ル行を戻す場合、その戻されたヌル行は応答セットを変
更しないであろうということが証明されなければなら
ず、従って、スカラ副照会は結合オペレーションに変換
され、その結合オペレーションはマージされて同じ照会
ブロックになり得る。本発明は照会コンパイル時にこれ
らの特性を両方とも証明し、所望の最適化を遂行し、そ
れ自体、照会実行時間を劇的に改良する。
【0040】そのような最適化に対する原理は、存在副
照会(等価の結合に変換されてしまっていても良い)を
満足させるFACTテーブルにおける各行に対して、同
じ一致条件(例えば、KEYCOL列における結合)を
使用してスカラ副照会が評価され、従って、スカラ副照
会において完全に1つの一致がなければならないという
ことである。換言すれば、たとえFACTテーブルにお
ける行がスカラ副照会における如何なる行とも一致しな
くても(即ち、スカラ副照会がヌル行を戻しても)、F
ACT行は存在副照会を満足させないので、ヌル行は使
用されないであろうし、応答セットに影響を与えないで
あろう。従って、スカラ副照会を安全に結合オペレーシ
ョンに変換することが可能である。事実、存在副照会に
おける一致条件がスカラ副照会における一致条件よりも
もっと制限的である限り、スカラ副照会において一致が
なければならず、従って、エンプティ応答セット(即
ち、ヌル行)に関する要件が安全に除去可能である。更
に、同じ論法が、存在副照会に等価である結合にも適用
する。
照会(等価の結合に変換されてしまっていても良い)を
満足させるFACTテーブルにおける各行に対して、同
じ一致条件(例えば、KEYCOL列における結合)を
使用してスカラ副照会が評価され、従って、スカラ副照
会において完全に1つの一致がなければならないという
ことである。換言すれば、たとえFACTテーブルにお
ける行がスカラ副照会における如何なる行とも一致しな
くても(即ち、スカラ副照会がヌル行を戻しても)、F
ACT行は存在副照会を満足させないので、ヌル行は使
用されないであろうし、応答セットに影響を与えないで
あろう。従って、スカラ副照会を安全に結合オペレーシ
ョンに変換することが可能である。事実、存在副照会に
おける一致条件がスカラ副照会における一致条件よりも
もっと制限的である限り、スカラ副照会において一致が
なければならず、従って、エンプティ応答セット(即
ち、ヌル行)に関する要件が安全に除去可能である。更
に、同じ論法が、存在副照会に等価である結合にも適用
する。
【0041】(b)存在副照会から結合への変換 副照会から結合への変換は、Proceedings of ACM SIGMO
D Conference, 1992における H.Pirahesh、J.M.Hellers
tein、及び W.Hasan 氏による「スターバーストにおけ
る拡張可能/ルール・ベースの照会再書込最適化(Exte
nsible/RuleBased Query Rewrite Optimaization in St
arburst)」と題した文献において広範に研究されてい
る。
D Conference, 1992における H.Pirahesh、J.M.Hellers
tein、及び W.Hasan 氏による「スターバーストにおけ
る拡張可能/ルール・ベースの照会再書込最適化(Exte
nsible/RuleBased Query Rewrite Optimaization in St
arburst)」と題した文献において広範に研究されてい
る。
【0042】次のものはそのような最適化の例である。
次のような非最適化SQL照会を考察することにする:
次のような非最適化SQL照会を考察することにする:
【表5】 SELECT F.* FROM FACT F WHERE F.KEYCOL IN(SELECT D.KEYCOL FROM DELTA_FACT E )
【0043】上記存在副照会は次のように最適化され、
結合オペレーションに縮小される:
結合オペレーションに縮小される:
【表6】 SELECT.* FROM FACT F,DELTA_FACT E WHERE F.KEYCOL=E.KEYCOL
【0044】存在副照会はキー値(E.KEYCOL)
を戻し、従って、照会の結合変換されたバージョンはオ
リジナル照会におけるように正しい数の複写を作るであ
ろうということに注意してほしい。
を戻し、従って、照会の結合変換されたバージョンはオ
リジナル照会におけるように正しい数の複写を作るであ
ろうということに注意してほしい。
【0045】図10は、UPDATE照会の例に関し
て、存在副照会が結合に変換され、マージされてメイン
照会ブロックにされる方法を示す照会グラフ・モデルで
ある。
て、存在副照会が結合に変換され、マージされてメイン
照会ブロックにされる方法を示す照会グラフ・モデルで
ある。
【0046】(c)包含 包含はその分野における周知の概念である。SELEC
TボックスXは、Xの結果セットがYの結果セットのサ
ブセットである場合、他のSELECTボックスYによ
って包含されると云われる。単純な状況は、ボックスX
における述部セットがYにおける述部セットのスーパセ
ットである時である。即ち、SELECTボックスX
は、それがボックスYよりも多くの述部を有するので、
多くの行をフィルタ・アウトするであろう。
TボックスXは、Xの結果セットがYの結果セットのサ
ブセットである場合、他のSELECTボックスYによ
って包含されると云われる。単純な状況は、ボックスX
における述部セットがYにおける述部セットのスーパセ
ットである時である。即ち、SELECTボックスX
は、それがボックスYよりも多くの述部を有するので、
多くの行をフィルタ・アウトするであろう。
【0047】例えば、次のような照会L及びMを考察す
ると:
ると:
【表7】 L:SELECT*FROM T WHERE C1>0 AND C2>0 M:SELECT*FROM T WHERE C1>0
【0048】Lによって作られた結果セットはMによっ
て作られた結果セットのサブセットである。その理由
は、同じテーブルTからの照会セレクト行及びMにおけ
るすべての述部の両方ともLにおいて現れるということ
である。従って、MはLを包含する。
て作られた結果セットのサブセットである。その理由
は、同じテーブルTからの照会セレクト行及びMにおけ
るすべての述部の両方ともLにおいて現れるということ
である。従って、MはLを包含する。
【0049】述部セットによる照会包含は、照会ブロッ
クを使用して次のように定義可能である。単一の限定子
(quantifier)Qを持ったSELECTボッ
クスAが共通の副次式Tの上に広がり、限定子Q'を持
った別のSELECTボックスBが同じテーブルTの上
に広がるものと仮定する。なお、限定子Q及びQ'はS
ELECTボックスのテーブル参照を含む。Bにおける
述部セットがAにおける述部セットのサブセットである
場合、AはBによって包含される。即ち、Aによって作
られた行はすべて、Bによって作られた結果セットにお
いて見ることができる。
クを使用して次のように定義可能である。単一の限定子
(quantifier)Qを持ったSELECTボッ
クスAが共通の副次式Tの上に広がり、限定子Q'を持
った別のSELECTボックスBが同じテーブルTの上
に広がるものと仮定する。なお、限定子Q及びQ'はS
ELECTボックスのテーブル参照を含む。Bにおける
述部セットがAにおける述部セットのサブセットである
場合、AはBによって包含される。即ち、Aによって作
られた行はすべて、Bによって作られた結果セットにお
いて見ることができる。
【0050】図10を参照すると、SELECTボック
スAはDELTA_FACTテーブル上に広がる限定子
Eを有し、SELECTボックスBはDELTA_FA
CTテーブル上に広がる限定子Dを有する。ボックスA
における述部セット(F.KEYCOL=E.KEYCO
L)はボックスBにおけるそれのスーパセットである
(事実、Aにおけるすべての述部がBに現れる)。従っ
て、FからのタプルがDELTA_TABLEからの行
と結合述部を介して一致する場合(F.KEYCOL=
E.KEYCOL)。タプルは、相関述部を介してスカ
ラ副照会における一致を見つけなければならない(F.
KEYCOL=D.KEYCOL)。FACTテーブル
(限定子F)における各タプルに対して、相関述部は、
1−タプル条件を通してDELTA_FACTテーブル
における精々1行しか一致しないということを想起して
ほしい。今や、スカラ副照会を安全に結合に変換し得る
ことを証明することが可能である。一般に、包含は、存
在副照会がスカラ副照会よりも多くの述部を有する場合
に真である。
スAはDELTA_FACTテーブル上に広がる限定子
Eを有し、SELECTボックスBはDELTA_FA
CTテーブル上に広がる限定子Dを有する。ボックスA
における述部セット(F.KEYCOL=E.KEYCO
L)はボックスBにおけるそれのスーパセットである
(事実、Aにおけるすべての述部がBに現れる)。従っ
て、FからのタプルがDELTA_TABLEからの行
と結合述部を介して一致する場合(F.KEYCOL=
E.KEYCOL)。タプルは、相関述部を介してスカ
ラ副照会における一致を見つけなければならない(F.
KEYCOL=D.KEYCOL)。FACTテーブル
(限定子F)における各タプルに対して、相関述部は、
1−タプル条件を通してDELTA_FACTテーブル
における精々1行しか一致しないということを想起して
ほしい。今や、スカラ副照会を安全に結合に変換し得る
ことを証明することが可能である。一般に、包含は、存
在副照会がスカラ副照会よりも多くの述部を有する場合
に真である。
【0051】図11は、図9に示された一般的にUPD
ATE照会に対する照会グラフ・モデルである。そこで
は、存在副照会が等価の結合に変換され、そしてマージ
されてメイン照会ブロックにされている。
ATE照会に対する照会グラフ・モデルである。そこで
は、存在副照会が等価の結合に変換され、そしてマージ
されてメイン照会ブロックにされている。
【0052】図12は、包含テスト及びビュー・マージ
の後のスカラ・結合変換の結果を示す照会グラフ・モデ
ルである。
の後のスカラ・結合変換の結果を示す照会グラフ・モデ
ルである。
【0053】(d)冗長な結合の排除 キー列における自己結合の場合、その自己結合を完全に
除去することが可能である。例えば、次のような例を考
察することにする:
除去することが可能である。例えば、次のような例を考
察することにする:
【表8】 CREATE TABLE DEPARTMENT( DEPTNO INT NOT NULL PRIMARY KEY, MGRNO INT, DNAME...); CREATE TABLE EMPLOYEE( EMPNO INT NOT NULL PRIMARY KEY, LASTNAME..., SALARY..., BONUS...);
【0054】DEPARTMENT及びEMPLOYE
Eテーブルを使用して、次のようなビュー及び照会が作
成されるものと仮定する:
Eテーブルを使用して、次のようなビュー及び照会が作
成されるものと仮定する:
【表9】 CREATE VIEW MANAGER(MGRNO,INCOME)AS ( SELECT E.EMPNO,E.SALARY FROM EMPLOYEE E,DEPARTMENT D WHERE E.EMPNO=D.MGRNO SELECT E.LASTNAME,E.EMPNO FROM EMPLOYEE E,MANAGER M WHERE E.EMPNO=M.MGRNO AND M.INCOME > 100K
【0055】ビューが(標準的な照会再書込テクニック
を介して)マージされた後、その照会は次のようにな
る:
を介して)マージされた後、その照会は次のようにな
る:
【表10】 SELECT E.LASTNAME,E.EMPNO FROM EMPLOYEE E,EMPLOYEE M, DEPARTMWENT D WHERE E.EMPNO=M.EMPNO AND M.EMPNO=D.MGRNO AND M.SALARY>100K
【0056】EMPLOYEEテーブルが2回参照され
ること及びそれがそれの主要なキー列を通して自己結合
されることに注意すべきである。従って、結合は冗長で
あり、しかも排除可能であり、その結果、次のような最
適化された照会を生じる:
ること及びそれがそれの主要なキー列を通して自己結合
されることに注意すべきである。従って、結合は冗長で
あり、しかも排除可能であり、その結果、次のような最
適化された照会を生じる:
【表11】 SELECT E.LASTNAME,E.EMPNO FROM EMPLOYEE E,DEPARTMENT D WHERE E.EMPNO=D.MGRNO AND E.SALARY > 100K
【0057】冗長な結合の除去のテクニックは、Procee
dings of ACM SIGMOD Conference,1992 における H.Pir
ahesh, J.M.Hellerstein 及び W.Hasan 氏による「スタ
ーバーストにおける拡張可能/ルール・ベースの照会再
書込最適化(Extensible/Rule Based Query Rewrite Op
timization in Starburst)」と題した記事において説
明されている。
dings of ACM SIGMOD Conference,1992 における H.Pir
ahesh, J.M.Hellerstein 及び W.Hasan 氏による「スタ
ーバーストにおける拡張可能/ルール・ベースの照会再
書込最適化(Extensible/Rule Based Query Rewrite Op
timization in Starburst)」と題した記事において説
明されている。
【0058】上記のUPDATE照会に対して、DEL
TA_FACTテーブルが2回参照され、列トランシビ
ティを使用してKEYCOL列を介して自己結合される
(D.KEYCOL=E.KEYCOL)。従って、冗長
な結合の除去はこの自己結合に適用され、その結果、D
ELTA_FACTテーブルへの1つのアクセスしか生
じない。DELTA_FACTテーブル及びFACTテ
ーブルを結合することから生じる結果は、冗長な結合の
削除の後の結果として生じた単一の照会ブロック・モデ
ルを表す図13に示されるように、UPDATE照会の
ために使用される。次のようなスターバースト・シンタ
ックスを使用して、そのUPDATE照会を表すことが
できる:
TA_FACTテーブルが2回参照され、列トランシビ
ティを使用してKEYCOL列を介して自己結合される
(D.KEYCOL=E.KEYCOL)。従って、冗長
な結合の除去はこの自己結合に適用され、その結果、D
ELTA_FACTテーブルへの1つのアクセスしか生
じない。DELTA_FACTテーブル及びFACTテ
ーブルを結合することから生じる結果は、冗長な結合の
削除の後の結果として生じた単一の照会ブロック・モデ
ルを表す図13に示されるように、UPDATE照会の
ために使用される。次のようなスターバースト・シンタ
ックスを使用して、そのUPDATE照会を表すことが
できる:
【表12】 UPDATE FACT SET COL1=Q4.C2,COL3=Q4.C4,TID=Q4.C0 FROM TABLE(SELECT Q5.TID, Q5.COL1+ Q6.COL1,Q5.COL3+Q6.COL3 FROM DELTA_FACTQ6,FACTQ5 WHERE Q5.KEYCOL=Q6.KEYCOL) AS Q4(C0,C2,C4)
【0059】即ち、UPDATE照会のこの再書込され
た形式はFACTテーブル及びDELTA_FACTテ
ーブルを結合し、FACTテーブル及びDELTA_F
ACTテーブルにおけるCOL1列の和(及び、同様
に、COL3列の和)を出力する。それは、それがFA
CTテーブルを更新するために使用されるようにFAC
Tテーブルのタプル識別子も出力する。UPDATE照
会のこの再書込された形式は、その結合が処理される
時、RDBMSソフトウエアの最適化機能がFACTテ
ーブル又はDELTA_FACTテーブルを選択するこ
とを可能にし、しかもその最適化機能がコスト・ベース
の方法を使用して適切な結合メソッドを選択することを
可能にする。そのような照会再書込の最適化がない場
合、その最適化プログラムはそのような代替方法を与え
られないであろう。
た形式はFACTテーブル及びDELTA_FACTテ
ーブルを結合し、FACTテーブル及びDELTA_F
ACTテーブルにおけるCOL1列の和(及び、同様
に、COL3列の和)を出力する。それは、それがFA
CTテーブルを更新するために使用されるようにFAC
Tテーブルのタプル識別子も出力する。UPDATE照
会のこの再書込された形式は、その結合が処理される
時、RDBMSソフトウエアの最適化機能がFACTテ
ーブル又はDELTA_FACTテーブルを選択するこ
とを可能にし、しかもその最適化機能がコスト・ベース
の方法を使用して適切な結合メソッドを選択することを
可能にする。そのような照会再書込の最適化がない場
合、その最適化プログラムはそのような代替方法を与え
られないであろう。
【0060】スカラ副照会に対する上記照会再書込最適
化は、その副照会がUPDATE照会の一部であるかど
うかに関係なく適用可能であることが再び強調されなけ
ればならない。更に、上記ステップはすべて結合されて
単一の変換にされる。その主要キー又は独特のキーは複
数の列を含み、最適化はデータ・タイプ及びFACTテ
ーブルにおける列の数に無関係である。
化は、その副照会がUPDATE照会の一部であるかど
うかに関係なく適用可能であることが再び強調されなけ
ればならない。更に、上記ステップはすべて結合されて
単一の変換にされる。その主要キー又は独特のキーは複
数の列を含み、最適化はデータ・タイプ及びFACTテ
ーブルにおける列の数に無関係である。
【0061】E.最適化テクニックのロジック 図14は、本発明に従って図2のステップ204及び図
3のステップ314におけるSQL照会を最適化する方
法を表すフローチャートである。
3のステップ314におけるSQL照会を最適化する方
法を表すフローチャートである。
【0062】ブロック1102は、コンピュータ102
のメモリにおけるSQL照会を分析するRDBMSソフ
トウエアを表す。
のメモリにおけるSQL照会を分析するRDBMSソフ
トウエアを表す。
【0063】ブロック1104は、存在副照会を結合オ
ペレーションに変換するRDBMSソフトウエアを表
す。
ペレーションに変換するRDBMSソフトウエアを表
す。
【0064】ブロック1106は、スカラ副照会を結合
オペレーションに変換するRDBMSソフトウエアを表
す。
オペレーションに変換するRDBMSソフトウエアを表
す。
【0065】ブロック1108は、結合オペレーション
をマージして単一の照会ブロックにするRDBMSソフ
トウエアを表す。
をマージして単一の照会ブロックにするRDBMSソフ
トウエアを表す。
【0066】ブロック1110は、テーブルにおける冗
長な結合を除去し、それによって優れたパフォーマンス
を提供するRDBMSソフトウエアを表す。
長な結合を除去し、それによって優れたパフォーマンス
を提供するRDBMSソフトウエアを表す。
【0067】これらの照会変換ステップが遂行された
後、ブロック1112は、リレーショナル・データベー
スに対するSQLの実行及び結果セットの出力を含むそ
の後の処理ステップのために、図2におけるブロック2
04又は図3におけるブロック314に制御を戻す。
後、ブロック1112は、リレーショナル・データベー
スに対するSQLの実行及び結果セットの出力を含むそ
の後の処理ステップのために、図2におけるブロック2
04又は図3におけるブロック314に制御を戻す。
【0068】F.結論 これは本発明の望ましい実施例の説明を結論づけるもの
である。以下では、本発明を達成するための幾つかの代
替の実施例を説明する。例えば、メインフレーム、ミニ
コンピュータ、又はパーソナル・コンピュータは本発明
によって使用され得るものである。更に、SQL言語を
(部分的に、或いは、全体的に)支持するいずれのソフ
トウエア・プログラムも本発明から利益を受けることが
できるであろう。
である。以下では、本発明を達成するための幾つかの代
替の実施例を説明する。例えば、メインフレーム、ミニ
コンピュータ、又はパーソナル・コンピュータは本発明
によって使用され得るものである。更に、SQL言語を
(部分的に、或いは、全体的に)支持するいずれのソフ
トウエア・プログラムも本発明から利益を受けることが
できるであろう。
【0069】要約すると、本発明は、SQL照会を最適
化するための方法、装置、及びコンピュータ・プログラ
ム・キャリアを開示する。照会は、それが1つ又は複数
のスカラ副照会及び1つ又は複数の存在副照会を含むか
どうかを決定するために分析される。スカラ副照会及び
存在副照会は結合オペレーションに変換され、そしてそ
れらの結合オペレーションはマージされてより少ない照
会ブロックになる。冗長な結合は除去可能である。そこ
で、最適化された照会ブロックは優れた実行計画を発生
してデータをリレーショナル・データベースから検索す
るために使用可能である。
化するための方法、装置、及びコンピュータ・プログラ
ム・キャリアを開示する。照会は、それが1つ又は複数
のスカラ副照会及び1つ又は複数の存在副照会を含むか
どうかを決定するために分析される。スカラ副照会及び
存在副照会は結合オペレーションに変換され、そしてそ
れらの結合オペレーションはマージされてより少ない照
会ブロックになる。冗長な結合は除去可能である。そこ
で、最適化された照会ブロックは優れた実行計画を発生
してデータをリレーショナル・データベースから検索す
るために使用可能である。
【0070】本発明の望ましい実施例に関する上記の記
述は説明を目的として与えられた。それは、論じ尽くさ
れること及び開示された正確な形式に本発明を限定する
ことを意図するものではない。上記の教示するところに
従って、数多くの修正及び変更が可能である。本発明の
技術的範囲は、詳細な説明によって限定されるものでは
なく、むしろ、特許請求の範囲の記載によるものである
ことは勿論である。
述は説明を目的として与えられた。それは、論じ尽くさ
れること及び開示された正確な形式に本発明を限定する
ことを意図するものではない。上記の教示するところに
従って、数多くの修正及び変更が可能である。本発明の
技術的範囲は、詳細な説明によって限定されるものでは
なく、むしろ、特許請求の範囲の記載によるものである
ことは勿論である。
【0071】まとめとして、本発明の構成に関して以下
の事項を開示する。
の事項を開示する。
【0072】(1)コンピュータに接続された電子的記
憶装置に記憶されたリレーショナル・データベースから
データを検索するために前記コンピュータによって遂行
される照会を前記コンピュータにおいて最適化する方法
にして、(a)前記照会が1つ又は複数のスカラ副照会
及び1つ又は複数の存在副照会を含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、(b)前記分析された照会における前記存
在副照会を1つ又は複数の結合オペレーションに変換す
るステップと、(c)前記分析された照会における前記
スカラ副照会を1つ又は複数の結合オペレーションに変
換するステップと、(d)前記結合オペレーションをマ
ージして単一の照会ブロックにするステップと、(e)
前記単一の照会ブロックにおける冗長な結合オペレーシ
ョンを除去するステップと、(f)前記リレーショナル
・データベースからデータを検索するために前記コンピ
ュータにおいて前記照会ブロックを実行するステップ
と、を含む方法。 (2)前記スカラ副照会は前記リレーショナル・データ
ベースから1つの行だけを検索する、上記(1)に記載
の方法。 (3)前記スカラ副照会によって生成されたヌル行はそ
の後応答セットを計算するために使用されない、上記
(1)に記載の方法。 (4)前記照会がコンパイルされる時、前記スカラ副照
会は前記リレーショナル・データベースから多くとも1
つの行しか検索しないこと、及び、一致がない時に前記
スカラ副照会がヌル行を戻す場合、前記ヌル行は応答セ
ットに影響を与えず、従って、前記スカラ副照会は結合
オペレーションに変換可能であることを証明するステッ
プを更に含む、上記(1)に記載の方法。 (5)前記スカラ副照会が偽であるような前記リレーシ
ョナル・データベースから検索された各行に関して、前
記行は前記存在副照会の評価を偽にし、従って、前記ス
カラ副照会によって検索されたヌル行は前記応答セット
に影響を与えない、上記(4)に記載の方法。 (6)前記変換するステップ(c)は、更に、包含を使
用して前記スカラ副照会を結合オペレーションに変換す
るステップを含む、上記(1)に記載の方法。 (7)前記除去するステップ(e)は、更に、冗長な結
合オペレーションの除去を使用して前記結合オペレーシ
ョンをマージするステップを含む、上記(1)に記載の
方法。 (8)前記冗長な結合オペレーションは自己結合オペレ
ーションを含む、上記(7)に記載の方法。 (9)前記自己結合オペレーションは前記リレーショナ
ル・データベースからテーブルのキー列を介して遂行さ
れる、上記(8)に記載の方法。 (10)コンピュータに結合された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を前記コンピュータにおいて最適化する方法にして、
(a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の結合オペレーションを含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、(b)前記分析された照会における前記ス
カラ副照会を1つ又は複数の結合オペレーションに変換
するステップと、(c)前記結合オペレーションをマー
ジして単一の照会ブロックにするステップと、(d)前
記単一の照会ブロックにおける冗長な結合オペレーショ
ンを除去するステップと、(e)前記リレーショナル・
データベースからデータを検索するために前記コンピュ
ータにおいて前記照会ブロックを実行するステップと、
を含む方法。 (11)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(10)に
記載の方法。 (12)前記スカラ副照会はその後応答セットを計算す
るために使用されるヌル行を生成しない、上記(10)
に記載の方法。 (13)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するステ
ップを更に含む、上記(10)に記載の方法。 (14)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(13)に記載の方法。 (15)前記変換するステップ(b)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(10)に記載の方法。 (16)前記除去するステップ(d)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(10)に記
載の方法。 (17)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(16)に記載の方法。 (18)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(17)に記載の方法。 (19)照会を最適化するための装置にして、(a)リ
レーショナル・データベースを記憶するための電子的記
憶装置を接続され、前記リレーショナル・データベース
からデータを検索するために前記照会を遂行するコンピ
ュータと、(b)前記照会が1つ又は複数のスカラ副照
会及び1つ又は複数の存在副照会を含むかどうかを決定
するために前記コンピュータにおいて前記照会を分析
し、前記分析された照会における存在副照会を1つ又は
複数の結合オペレーションに変換し、前記分析された照
会における前記スカラ副照会を1つ又は複数の結合オペ
レーションに変換し、前記結合オペレーションをマージ
して前記単一の照会ブロックにし、前記単一の照会ブロ
ックにおける冗長な結合オペレーションを除去し、前記
リレーショナル・データベースからデータを検索するた
めに前記コンピュータにおいて前記照会ブロックを実行
するための前記コンピュータによって遂行される1つ又
は複数の命令実行手段と、を含む装置。 (20)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(19)に
記載の装置。 (21)前記スカラ副照会によって生成されるヌル行は
その後応答セットを計算するために使用される、上記
(19)に記載の装置。 (22)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するため
の1つ又は複数の命令を更に含む、上記(19)に記載
の装置。 (23)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記存在副照会の評価を偽にし、従って、前記
スカラ副照会からのヌル行は前記応答セットに影響を与
えない、上記(22)に記載の装置。 (24)前記変換するための命令は、更に、包含を使用
して前記スカラ副照会を結合オペレーションに変換する
ための命令を含む、上記(19)に記載の装置。 (25)前記除去するための命令は、更に、冗長な結合
オペレーションの除去を使用して前記結合オペレーショ
ンをマージするための1つ又は複数の命令を含む、上記
(19)に記載の装置。 (26)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(25)に記載の装置。 (27)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(26)に記載の装置。 (28)照会を最適化するための装置にして、(a)リ
レーショナル・データベースを記憶するための電子的記
憶装置を接続され、前記リレーショナル・データベース
からデータを検索するために前記照会を遂行するコンピ
ュータと、(b)前記照会が1つ又は複数のスカラ副照
会及び1つ又は複数の結合オペレーションを含むかどう
かを決定するために前記コンピュータにおいて前記照会
を分析し、前記分析された照会における前記スカラ副照
会を1つ又は複数の結合オペレーションに変換し、前記
結合オペレーションをマージして単一の照会ブロックに
し、前記単一の照会ブロックにおける冗長な結合オペレ
ーションを除去し、前記リレーショナル・データベース
からデータを検索するために前記コンピュータにおいて
前記照会ブロックを実行するための前記コンピュータに
よって遂行される1つ又は複数の命令実行手段と、を含
む装置。 (29)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(28)に
記載の装置。 (30)前記スカラ副照会はその後応答セットを計算す
る場合に使用されるヌル行を生成しない、上記(28)
に記載の装置。 (31)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するため
の1つ又は複数の命令を更に含む、上記(28)に記載
の装置。 (32)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(31)に記載の装置。 (33)前記変換するするための命令は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するための1つ又は複数の命令を含む、上記(28)に
記載の装置。 (34)前記除去するための命令は、更に、冗長な結合
オペレーションの除去を使用して前記結合オペレーショ
ンをマージするための命令を含む、上記(28)に記載
の装置。 (35)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(34)に記載の装置。 (36)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(35)に記載の装置。 (37)コンピュータに接続された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を前記コンピュータにおいて最適化するための方法にし
て、(a)前記照会が1つ又は複数のスカラ副照会及び
1つ又は複数の存在副照会を含むかどうかを決定するた
めに前記コンピュータにおいて前記照会を分析するステ
ップと、(b)前記分析された照会における前記存在副
照会を1つ又は複数の結合オペレーションに変換するス
テップと、(c)前記分析された照会における前記スカ
ラ副照会を1つ又は複数の結合オペレーションに変換す
るステップと、(d)前記結合オペレーションをマージ
して単一の照会ブロックにするステップと、(e)前記
単一の照会ブロックにおける冗長な結合オペレーション
を除去するステップと、(f)前記リレーショナル・デ
ータベースからデータを検索するために前記コンピュー
タにおいて前記照会ブロックを実行するステップと、を
含む方法。 (38)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(37)に
記載の方法。 (39)前記スカラ副照会によって生成されたヌル行は
その後応答セットを計算するために使用されない、上記
(37)に記載の方法。 (40)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び一致がない時に前記
スカラ副照会がヌル行を戻す場合、前記ヌル行は応答セ
ットに影響を与えず、従って、前記スカラ副照会は結合
オペレーションに変換可能であることを証明するステッ
プを更に含む、上記(37)に記載の方法。 (41)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記存在副照会の評価を偽にし、従って、前記
スカラ副照会から検索されたヌル行は前記応答セットに
影響を与えない、上記(40)に記載の方法。 (42)前記変換するステップ(c)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(37)に記載の方法。 (43)前記除去するステップ(e)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(37)に記
載の方法。 (44)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(7)に記載の方法。 (45)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(44)に記載の方法。 (46)コンピュータに結合された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を最適化するための方法にして、(a)前記照会が1つ
又は複数のスカラ副照会及び1つ又は複数の結合オペレ
ーションを含むかどうかを決定するために前記コンピュ
ータにおいて前記照会を分析するステップと、(b)前
記分析された照会における前記スカラ副照会を1つ又は
複数の結合オペレーションに変換するステップと、
(c)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、(d)前記単一の照会ブロ
ックにおける冗長な結合オペレーションを除去するステ
ップと、(e)前記リレーショナル・データベースから
データを検索するために前記コンピュータにおいて前記
照会ブロックを実行するステップと、を含む方法。 (47)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(46)に
記載の方法。 (48)前記スカラ副照会はその後応答セットを計算す
るために使用されるヌル行を生成しない、上記(46)
に記載の方法。 (49)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するステ
ップを更に含む、上記(46)に記載の方法。 (50)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(49)に記載の方法。 (51)前記変換するステップ(b)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(46)に記載の方法。 (52)前記除去するステップ(d)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(46)に記
載の方法。 (53)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(52)に記載の方法。 (54)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(53)に記載の方法。
憶装置に記憶されたリレーショナル・データベースから
データを検索するために前記コンピュータによって遂行
される照会を前記コンピュータにおいて最適化する方法
にして、(a)前記照会が1つ又は複数のスカラ副照会
及び1つ又は複数の存在副照会を含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、(b)前記分析された照会における前記存
在副照会を1つ又は複数の結合オペレーションに変換す
るステップと、(c)前記分析された照会における前記
スカラ副照会を1つ又は複数の結合オペレーションに変
換するステップと、(d)前記結合オペレーションをマ
ージして単一の照会ブロックにするステップと、(e)
前記単一の照会ブロックにおける冗長な結合オペレーシ
ョンを除去するステップと、(f)前記リレーショナル
・データベースからデータを検索するために前記コンピ
ュータにおいて前記照会ブロックを実行するステップ
と、を含む方法。 (2)前記スカラ副照会は前記リレーショナル・データ
ベースから1つの行だけを検索する、上記(1)に記載
の方法。 (3)前記スカラ副照会によって生成されたヌル行はそ
の後応答セットを計算するために使用されない、上記
(1)に記載の方法。 (4)前記照会がコンパイルされる時、前記スカラ副照
会は前記リレーショナル・データベースから多くとも1
つの行しか検索しないこと、及び、一致がない時に前記
スカラ副照会がヌル行を戻す場合、前記ヌル行は応答セ
ットに影響を与えず、従って、前記スカラ副照会は結合
オペレーションに変換可能であることを証明するステッ
プを更に含む、上記(1)に記載の方法。 (5)前記スカラ副照会が偽であるような前記リレーシ
ョナル・データベースから検索された各行に関して、前
記行は前記存在副照会の評価を偽にし、従って、前記ス
カラ副照会によって検索されたヌル行は前記応答セット
に影響を与えない、上記(4)に記載の方法。 (6)前記変換するステップ(c)は、更に、包含を使
用して前記スカラ副照会を結合オペレーションに変換す
るステップを含む、上記(1)に記載の方法。 (7)前記除去するステップ(e)は、更に、冗長な結
合オペレーションの除去を使用して前記結合オペレーシ
ョンをマージするステップを含む、上記(1)に記載の
方法。 (8)前記冗長な結合オペレーションは自己結合オペレ
ーションを含む、上記(7)に記載の方法。 (9)前記自己結合オペレーションは前記リレーショナ
ル・データベースからテーブルのキー列を介して遂行さ
れる、上記(8)に記載の方法。 (10)コンピュータに結合された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を前記コンピュータにおいて最適化する方法にして、
(a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の結合オペレーションを含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、(b)前記分析された照会における前記ス
カラ副照会を1つ又は複数の結合オペレーションに変換
するステップと、(c)前記結合オペレーションをマー
ジして単一の照会ブロックにするステップと、(d)前
記単一の照会ブロックにおける冗長な結合オペレーショ
ンを除去するステップと、(e)前記リレーショナル・
データベースからデータを検索するために前記コンピュ
ータにおいて前記照会ブロックを実行するステップと、
を含む方法。 (11)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(10)に
記載の方法。 (12)前記スカラ副照会はその後応答セットを計算す
るために使用されるヌル行を生成しない、上記(10)
に記載の方法。 (13)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するステ
ップを更に含む、上記(10)に記載の方法。 (14)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(13)に記載の方法。 (15)前記変換するステップ(b)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(10)に記載の方法。 (16)前記除去するステップ(d)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(10)に記
載の方法。 (17)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(16)に記載の方法。 (18)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(17)に記載の方法。 (19)照会を最適化するための装置にして、(a)リ
レーショナル・データベースを記憶するための電子的記
憶装置を接続され、前記リレーショナル・データベース
からデータを検索するために前記照会を遂行するコンピ
ュータと、(b)前記照会が1つ又は複数のスカラ副照
会及び1つ又は複数の存在副照会を含むかどうかを決定
するために前記コンピュータにおいて前記照会を分析
し、前記分析された照会における存在副照会を1つ又は
複数の結合オペレーションに変換し、前記分析された照
会における前記スカラ副照会を1つ又は複数の結合オペ
レーションに変換し、前記結合オペレーションをマージ
して前記単一の照会ブロックにし、前記単一の照会ブロ
ックにおける冗長な結合オペレーションを除去し、前記
リレーショナル・データベースからデータを検索するた
めに前記コンピュータにおいて前記照会ブロックを実行
するための前記コンピュータによって遂行される1つ又
は複数の命令実行手段と、を含む装置。 (20)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(19)に
記載の装置。 (21)前記スカラ副照会によって生成されるヌル行は
その後応答セットを計算するために使用される、上記
(19)に記載の装置。 (22)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するため
の1つ又は複数の命令を更に含む、上記(19)に記載
の装置。 (23)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記存在副照会の評価を偽にし、従って、前記
スカラ副照会からのヌル行は前記応答セットに影響を与
えない、上記(22)に記載の装置。 (24)前記変換するための命令は、更に、包含を使用
して前記スカラ副照会を結合オペレーションに変換する
ための命令を含む、上記(19)に記載の装置。 (25)前記除去するための命令は、更に、冗長な結合
オペレーションの除去を使用して前記結合オペレーショ
ンをマージするための1つ又は複数の命令を含む、上記
(19)に記載の装置。 (26)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(25)に記載の装置。 (27)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(26)に記載の装置。 (28)照会を最適化するための装置にして、(a)リ
レーショナル・データベースを記憶するための電子的記
憶装置を接続され、前記リレーショナル・データベース
からデータを検索するために前記照会を遂行するコンピ
ュータと、(b)前記照会が1つ又は複数のスカラ副照
会及び1つ又は複数の結合オペレーションを含むかどう
かを決定するために前記コンピュータにおいて前記照会
を分析し、前記分析された照会における前記スカラ副照
会を1つ又は複数の結合オペレーションに変換し、前記
結合オペレーションをマージして単一の照会ブロックに
し、前記単一の照会ブロックにおける冗長な結合オペレ
ーションを除去し、前記リレーショナル・データベース
からデータを検索するために前記コンピュータにおいて
前記照会ブロックを実行するための前記コンピュータに
よって遂行される1つ又は複数の命令実行手段と、を含
む装置。 (29)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(28)に
記載の装置。 (30)前記スカラ副照会はその後応答セットを計算す
る場合に使用されるヌル行を生成しない、上記(28)
に記載の装置。 (31)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するため
の1つ又は複数の命令を更に含む、上記(28)に記載
の装置。 (32)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(31)に記載の装置。 (33)前記変換するするための命令は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するための1つ又は複数の命令を含む、上記(28)に
記載の装置。 (34)前記除去するための命令は、更に、冗長な結合
オペレーションの除去を使用して前記結合オペレーショ
ンをマージするための命令を含む、上記(28)に記載
の装置。 (35)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(34)に記載の装置。 (36)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(35)に記載の装置。 (37)コンピュータに接続された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を前記コンピュータにおいて最適化するための方法にし
て、(a)前記照会が1つ又は複数のスカラ副照会及び
1つ又は複数の存在副照会を含むかどうかを決定するた
めに前記コンピュータにおいて前記照会を分析するステ
ップと、(b)前記分析された照会における前記存在副
照会を1つ又は複数の結合オペレーションに変換するス
テップと、(c)前記分析された照会における前記スカ
ラ副照会を1つ又は複数の結合オペレーションに変換す
るステップと、(d)前記結合オペレーションをマージ
して単一の照会ブロックにするステップと、(e)前記
単一の照会ブロックにおける冗長な結合オペレーション
を除去するステップと、(f)前記リレーショナル・デ
ータベースからデータを検索するために前記コンピュー
タにおいて前記照会ブロックを実行するステップと、を
含む方法。 (38)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(37)に
記載の方法。 (39)前記スカラ副照会によって生成されたヌル行は
その後応答セットを計算するために使用されない、上記
(37)に記載の方法。 (40)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び一致がない時に前記
スカラ副照会がヌル行を戻す場合、前記ヌル行は応答セ
ットに影響を与えず、従って、前記スカラ副照会は結合
オペレーションに変換可能であることを証明するステッ
プを更に含む、上記(37)に記載の方法。 (41)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記存在副照会の評価を偽にし、従って、前記
スカラ副照会から検索されたヌル行は前記応答セットに
影響を与えない、上記(40)に記載の方法。 (42)前記変換するステップ(c)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(37)に記載の方法。 (43)前記除去するステップ(e)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(37)に記
載の方法。 (44)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(7)に記載の方法。 (45)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(44)に記載の方法。 (46)コンピュータに結合された電子的記憶装置に記
憶されたリレーショナル・データベースからデータを検
索するために前記コンピュータによって遂行される照会
を最適化するための方法にして、(a)前記照会が1つ
又は複数のスカラ副照会及び1つ又は複数の結合オペレ
ーションを含むかどうかを決定するために前記コンピュ
ータにおいて前記照会を分析するステップと、(b)前
記分析された照会における前記スカラ副照会を1つ又は
複数の結合オペレーションに変換するステップと、
(c)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、(d)前記単一の照会ブロ
ックにおける冗長な結合オペレーションを除去するステ
ップと、(e)前記リレーショナル・データベースから
データを検索するために前記コンピュータにおいて前記
照会ブロックを実行するステップと、を含む方法。 (47)前記スカラ副照会は前記リレーショナル・デー
タベースから1つの行だけを検索する、上記(46)に
記載の方法。 (48)前記スカラ副照会はその後応答セットを計算す
るために使用されるヌル行を生成しない、上記(46)
に記載の方法。 (49)前記照会がコンパイルされる時、前記スカラ副
照会は前記リレーショナル・データベースから多くとも
1つの行しか検索しないこと、及び、一致がない時に前
記スカラ副照会がヌル行を戻す場合、前記ヌル行は応答
セットに影響を与えず、従って、前記スカラ副照会は結
合オペレーションに変換可能であることを証明するステ
ップを更に含む、上記(46)に記載の方法。 (50)前記スカラ副照会が偽であるような前記リレー
ショナル・データベースから検索された各行に関して、
前記行は前記結合オペレーションの評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、上記(49)に記載の方法。 (51)前記変換するステップ(b)は、更に、包含を
使用して前記スカラ副照会を結合オペレーションに変換
するステップを含む、上記(46)に記載の方法。 (52)前記除去するステップ(d)は、更に、冗長な
結合オペレーションの除去を使用して前記結合オペレー
ションをマージするステップを含む、上記(46)に記
載の方法。 (53)前記冗長な結合オペレーションは自己結合オペ
レーションを含む、上記(52)に記載の方法。 (54)前記自己結合オペレーションは前記リレーショ
ナル・データベースからテーブルのキー列を介して遂行
される、上記(53)に記載の方法。
【図1】本発明のコンピュータ・ハードウエア環境を示
す。
す。
【図2】本発明に従って、対話的な環境においてSQL
ステートメントを解釈及び実行するために必要なステッ
プを示すフローチャートである。
ステートメントを解釈及び実行するために必要なステッ
プを示すフローチャートである。
【図3】本発明に従って、ソース・コードで組み込まれ
たSQLステートメントを解釈及び実行するために必要
なステップを示すフローチャートである。
たSQLステートメントを解釈及び実行するために必要
なステップを示すフローチャートである。
【図4】本願における与えられた例において使用される
ようなFACTテーブルを示す。
ようなFACTテーブルを示す。
【図5】本願における与えられた例において使用される
DELTA_FACTテーブルを示す。
DELTA_FACTテーブルを示す。
【図6】本願における与えられた例において使用される
更新されたFACTテーブルを示す。
更新されたFACTテーブルを示す。
【図7】本願における説明された例において使用される
UPDATE照会を示す照会グラフ・モデルである。
UPDATE照会を示す照会グラフ・モデルである。
【図8】図7の最適化された照会グラフ・モデルであ
る。
る。
【図9】一般的なUPDATE照会を示す照会グラフ・
モデルである。
モデルである。
【図10】本願における与えられた例において、存在副
照会が結合に変換され、メイン照会ブロックになるよう
にマージされる方法を示す照会グラフ・モデルである。
照会が結合に変換され、メイン照会ブロックになるよう
にマージされる方法を示す照会グラフ・モデルである。
【図11】存在副照会が結合に変換され、メイン照会ブ
ロックになるようにマージされるという一般的なUPD
ATE照会を示す照会グラフ・モデルである。
ロックになるようにマージされるという一般的なUPD
ATE照会を示す照会グラフ・モデルである。
【図12】本願における与えられた例において、包含テ
スト及びビュー・マージの後のスカラ結合変換を示す照
会グラフ・モデルである。
スト及びビュー・マージの後のスカラ結合変換を示す照
会グラフ・モデルである。
【図13】本願における与えられた例において、冗長な
結合変換を示す照会グラフ・モデルである。
結合変換を示す照会グラフ・モデルである。
【図14】本発明に従ってSQL照会を最適化するロジ
ックを示すフローチャートである。
ックを示すフローチャートである。
フロントページの続き (72)発明者 ミール・ハミド・ピラハシュ アメリカ合衆国95120、カリフォルニア 州、サンノゼ、クエール・クリーク・サ ークル 1282 (56)参考文献 特開 平11−25096(JP,A) 特開 平9−171478(JP,A) 特開 平8−55138(JP,A) 特開 平7−334529(JP,A) 特開 平7−219825(JP,A) Pirahesh H et a l.,A Rule Engine f or Query Transform ation in Starburst and IBM DB2 C/S D BMS.,Proc.Int.Con f.Data Eng.,米国,Vo l.13th,pp.391−400.,CN 97A0643213 Pirahesh H et a l.,Extensible/Rule Based Query Rewri te Optimization in Starburst.,SIGMOD Rec,米国,Assoc Comp ut Mach Spec Inter est Group Manag Da ta,Vol.21,No.2,pp.39 −48.,CN 92A0527358 ORACLE データベース管理者ガ イド,日本,富士通株式会社,1991年 1月31日,初版,pp.19−6〜19− 7.,CSNZ2001−00052−001 O racle8 Server概要,日 本,Oracle Corporati on,1997年 9月30日,Vol.12. リリース8.0,pp.19−20〜19− 21.,CSNZ 2001−00721−001 (58)調査した分野(Int.Cl.7,DB名) G06F 17/30 330 G06F 17/30 180 JICSTファイル(JOIS)
Claims (54)
- 【請求項1】コンピュータに接続された電子的記憶装置
に記憶されたリレーショナル・データベースからデータ
を検索するために前記コンピュータによって遂行される
照会を前記コンピュータにおいて最適化する方法にし
て、 (a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の存在副照会を含むかどうかを決定するために
前記コンピュータにおいて前記照会を分析するステップ
と、 (b)前記分析された照会における前記存在副照会を1
つ又は複数の結合オペレーションに変換するステップ
と、 (c)前記分析された照会における前記スカラ副照会を
1つ又は複数の結合オペレーションに変換するステップ
と、 (d)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、 (e)前記単一の照会ブロックにおける冗長な結合オペ
レーションを除去するステップと、 (f)前記リレーショナル・データベースからデータを
検索するために前記コンピュータにおいて前記照会ブロ
ックを実行するステップと、を含む方法。 - 【請求項2】前記スカラ副照会は前記リレーショナル・
データベースから1つの行だけを検索する、請求項1に
記載の方法。 - 【請求項3】前記スカラ副照会によって生成されたヌル
行はその後応答セットを計算するために使用されない、
請求項1に記載の方法。 - 【請求項4】前記照会がコンパイルされる時、前記スカ
ラ副照会は前記リレーショナル・データベースから多く
とも1つの行しか検索しないこと、及び、一致がない時
に前記スカラ副照会がヌル行を戻す場合、前記ヌル行は
応答セットに影響を与えず、従って、前記スカラ副照会
は結合オペレーションに変換可能であることを証明する
ステップを更に含む、請求項1に記載の方法。 - 【請求項5】前記スカラ副照会が偽であるような前記リ
レーショナル・データベースから検索された各行に関し
て、前記行は前記存在副照会の評価を偽にし、従って、
前記スカラ副照会によって検索されたヌル行は前記応答
セットに影響を与えない、請求項4に記載の方法。 - 【請求項6】前記変換するステップ(c)は、更に、包
含を使用して前記スカラ副照会を結合オペレーションに
変換するステップを含む、請求項1に記載の方法。 - 【請求項7】前記除去するステップ(e)は、更に、冗
長な結合オペレーションの除去を使用して前記結合オペ
レーションをマージするステップを含む、請求項1に記
載の方法。 - 【請求項8】前記冗長な結合オペレーションは自己結合
オペレーションを含む、請求項7に記載の方法。 - 【請求項9】前記自己結合オペレーションは前記リレー
ショナル・データベースからテーブルのキー列を介して
遂行される、請求項8に記載の方法。 - 【請求項10】コンピュータに結合された電子的記憶装
置に記憶されたリレーショナル・データベースからデー
タを検索するために前記コンピュータによって遂行され
る照会を前記コンピュータにおいて最適化する方法にし
て、 (a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の結合オペレーションを含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、 (b)前記分析された照会における前記スカラ副照会を
1つ又は複数の結合オペレーションに変換するステップ
と、 (c)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、 (d)前記単一の照会ブロックにおける冗長な結合オペ
レーションを除去するステップと、 (e)前記リレーショナル・データベースからデータを
検索するために前記コンピュータにおいて前記照会ブロ
ックを実行するステップと、 を含む方法。 - 【請求項11】前記スカラ副照会は前記リレーショナル
・データベースから1つの行だけを検索する、請求項1
0に記載の方法。 - 【請求項12】前記スカラ副照会はその後応答セットを
計算するために使用されるヌル行を生成しない、請求項
10に記載の方法。 - 【請求項13】前記照会がコンパイルされる時、前記ス
カラ副照会は前記リレーショナル・データベースから多
くとも1つの行しか検索しないこと、及び、一致がない
時に前記スカラ副照会がヌル行を戻す場合、前記ヌル行
は応答セットに影響を与えず、従って、前記スカラ副照
会は結合オペレーションに変換可能であることを証明す
るステップを更に含む、請求項10に記載の方法。 - 【請求項14】前記スカラ副照会が偽であるような前記
リレーショナル・データベースから検索された各行に関
して、前記行は前記結合オペレーションの評価を偽に
し、従って、前記スカラ副照会からのヌル行は前記応答
セットに影響を与えない、請求項13に記載の方法。 - 【請求項15】前記変換するステップ(b)は、更に、
包含を使用して前記スカラ副照会を結合オペレーション
に変換するステップを含む、請求項10に記載の方法。 - 【請求項16】前記除去するステップ(d)は、更に、
冗長な結合オペレーションの除去を使用して前記結合オ
ペレーションをマージするステップを含む、請求項10
に記載の方法。 - 【請求項17】前記冗長な結合オペレーションは自己結
合オペレーションを含む、請求項16に記載の方法。 - 【請求項18】前記自己結合オペレーションは前記リレ
ーショナル・データベースからテーブルのキー列を介し
て遂行される、請求項17に記載の方法。 - 【請求項19】照会を最適化するための装置にして、 (a)リレーショナル・データベースを記憶するための
電子的記憶装置を接続され、前記リレーショナル・デー
タベースからデータを検索するために前記照会を遂行す
るコンピュータと、 (b)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の存在副照会を含むかどうかを決定するために
前記コンピュータにおいて前記照会を分析し、 前記分析された照会における存在副照会を1つ又は複数
の結合オペレーションに変換し、 前記分析された照会における前記スカラ副照会を1つ又
は複数の結合オペレーションに変換し、 前記結合オペレーションをマージして前記単一の照会ブ
ロックにし、 前記単一の照会ブロックにおける冗長な結合オペレーシ
ョンを除去し、 前記リレーショナル・データベースからデータを検索す
るために前記コンピュータにおいて前記照会ブロックを
実行するための前記コンピュータによって遂行される1
つ又は複数の命令実行手段と、 を含む装置。 - 【請求項20】前記スカラ副照会は前記リレーショナル
・データベースから1つの行だけを検索する、請求項1
9に記載の装置。 - 【請求項21】前記スカラ副照会によって生成されるヌ
ル行はその後応答セットを計算するために使用される、
請求項19に記載の装置。 - 【請求項22】前記照会がコンパイルされる時、前記ス
カラ副照会は前記リレーショナル・データベースから多
くとも1つの行しか検索しないこと、及び、一致がない
時に前記スカラ副照会がヌル行を戻す場合、前記ヌル行
は応答セットに影響を与えず、従って、前記スカラ副照
会は結合オペレーションに変換可能であることを証明す
るための1つ又は複数の命令を更に含む、請求項19に
記載の装置。 - 【請求項23】前記スカラ副照会が偽であるような前記
リレーショナル・データベースから検索された各行に関
して、前記行は前記存在副照会の評価を偽にし、従っ
て、前記スカラ副照会からのヌル行は前記応答セットに
影響を与えない、請求項22に記載の装置。 - 【請求項24】前記変換するための命令は、更に、包含
を使用して前記スカラ副照会を結合オペレーションに変
換するための命令を含む、請求項19に記載の装置。 - 【請求項25】前記除去するための命令は、更に、冗長
な結合オペレーションの除去を使用して前記結合オペレ
ーションをマージするための1つ又は複数の命令を含
む、請求項19に記載の装置。 - 【請求項26】前記冗長な結合オペレーションは自己結
合オペレーションを含む、請求項25に記載の装置。 - 【請求項27】前記自己結合オペレーションは前記リレ
ーショナル・データベースからテーブルのキー列を介し
て遂行される、請求項26に記載の装置。 - 【請求項28】照会を最適化するための装置にして、 (a)リレーショナル・データベースを記憶するための
電子的記憶装置を接続され、前記リレーショナル・デー
タベースからデータを検索するために前記照会を遂行す
るコンピュータと、 (b)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の結合オペレーションを含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析し、 前記分析された照会における前記スカラ副照会を1つ又
は複数の結合オペレーションに変換し、 前記結合オペレーションをマージして単一の照会ブロッ
クにし、 前記単一の照会ブロックにおける冗長な結合オペレーシ
ョンを除去し、 前記リレーショナル・データベースからデータを検索す
るために前記コンピュータにおいて前記照会ブロックを
実行するための前記コンピュータによって遂行される1
つ又は複数の命令実行手段と、 を含む装置。 - 【請求項29】前記スカラ副照会は前記リレーショナル
・データベースから1つの行だけを検索する、請求項2
8に記載の装置。 - 【請求項30】前記スカラ副照会はその後応答セットを
計算する場合に使用されるヌル行を生成しない、請求項
28に記載の装置。 - 【請求項31】前記照会がコンパイルされる時、前記ス
カラ副照会は前記リレーショナル・データベースから多
くとも1つの行しか検索しないこと、及び、一致がない
時に前記スカラ副照会がヌル行を戻す場合、前記ヌル行
は応答セットに影響を与えず、従って、前記スカラ副照
会は結合オペレーションに変換可能であることを証明す
るための1つ又は複数の命令を更に含む、請求項28に
記載の装置。 - 【請求項32】前記スカラ副照会が偽であるような前記
リレーショナル・データベースから検索された各行に関
して、前記行は前記結合オペレーションの評価を偽に
し、従って、前記スカラ副照会からのヌル行は前記応答
セットに影響を与えない、請求項31に記載の装置。 - 【請求項33】前記変換するするための命令は、更に、
包含を使用して前記スカラ副照会を結合オペレーション
に変換するための1つ又は複数の命令を含む、請求項2
8に記載の装置。 - 【請求項34】前記除去するための命令は、更に、冗長
な結合オペレーションの除去を使用して前記結合オペレ
ーションをマージするための命令を含む、請求項28に
記載の装置。 - 【請求項35】前記冗長な結合オペレーションは自己結
合オペレーションを含む、請求項34に記載の装置。 - 【請求項36】前記自己結合オペレーションは前記リレ
ーショナル・データベースからテーブルのキー列を介し
て遂行される、請求項35に記載の装置。 - 【請求項37】コンピュータに接続された電子的記憶装
置に記憶されたリレーショナル・データベースからデー
タを検索するために前記コンピュータによって遂行され
る照会を前記コンピュータにおいて最適化するための方
法にして、 (a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の存在副照会を含むかどうかを決定するために
前記コンピュータにおいて前記照会を分析するステップ
と、 (b)前記分析された照会における前記存在副照会を1
つ又は複数の結合オペレーションに変換するステップ
と、 (c)前記分析された照会における前記スカラ副照会を
1つ又は複数の結合オペレーションに変換するステップ
と、 (d)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、 (e)前記単一の照会ブロックにおける冗長な結合オペ
レーションを除去するステップと、 (f)前記リレーショナル・データベースからデータを
検索するために前記コンピュータにおいて前記照会ブロ
ックを実行するステップと、 を含む方法。 - 【請求項38】前記スカラ副照会は前記リレーショナル
・データベースから1つの行だけを検索する、請求項3
7に記載の方法。 - 【請求項39】前記スカラ副照会によって生成されたヌ
ル行はその後応答セットを計算するために使用されな
い、請求項37に記載の方法。 - 【請求項40】前記照会がコンパイルされる時、前記ス
カラ副照会は前記リレーショナル・データベースから多
くとも1つの行しか検索しないこと、及び一致がない時
に前記スカラ副照会がヌル行を戻す場合、前記ヌル行は
応答セットに影響を与えず、従って、前記スカラ副照会
は結合オペレーションに変換可能であることを証明する
ステップを更に含む、請求項37に記載の方法。 - 【請求項41】前記スカラ副照会が偽であるような前記
リレーショナル・データベースから検索された各行に関
して、前記行は前記存在副照会の評価を偽にし、従っ
て、前記スカラ副照会から検索されたヌル行は前記応答
セットに影響を与えない、請求項40に記載の方法。 - 【請求項42】前記変換するステップ(c)は、更に、
包含を使用して前記スカラ副照会を結合オペレーション
に変換するステップを含む、請求項37に記載の方法。 - 【請求項43】前記除去するステップ(e)は、更に、
冗長な結合オペレーションの除去を使用して前記結合オ
ペレーションをマージするステップを含む、請求項37
に記載の方法。 - 【請求項44】前記冗長な結合オペレーションは自己結
合オペレーションを含む、請求項7に記載の方法。 - 【請求項45】前記自己結合オペレーションは前記リレ
ーショナル・データベースからテーブルのキー列を介し
て遂行される、請求項44に記載の方法。 - 【請求項46】コンピュータに結合された電子的記憶装
置に記憶されたリレーショナル・データベースからデー
タを検索するために前記コンピュータによって遂行され
る照会を最適化するための方法にして、 (a)前記照会が1つ又は複数のスカラ副照会及び1つ
又は複数の結合オペレーションを含むかどうかを決定す
るために前記コンピュータにおいて前記照会を分析する
ステップと、 (b)前記分析された照会における前記スカラ副照会を
1つ又は複数の結合オペレーションに変換するステップ
と、 (c)前記結合オペレーションをマージして単一の照会
ブロックにするステップと、 (d)前記単一の照会ブロックにおける冗長な結合オペ
レーションを除去するステップと、 (e)前記リレーショナル・データベースからデータを
検索するために前記コンピュータにおいて前記照会ブロ
ックを実行するステップと、 を含む方法。 - 【請求項47】前記スカラ副照会は前記リレーショナル
・データベースから1つの行だけを検索する、請求項4
6に記載の方法。 - 【請求項48】前記スカラ副照会はその後応答セットを
計算するために使用されるヌル行を生成しない、請求項
46に記載の方法。 - 【請求項49】前記照会がコンパイルされる時、前記ス
カラ副照会は前記リレーショナル・データベースから多
くとも1つの行しか検索しないこと、及び、一致がない
時に前記スカラ副照会がヌル行を戻す場合、前記ヌル行
は応答セットに影響を与えず、従って、前記スカラ副照
会は結合オペレーションに変換可能であることを証明す
るステップを更に含む、請求項46に記載の方法。 - 【請求項50】前記スカラ副照会が偽であるような前記
リレーショナル・データベースから検索された各行に関
して、前記行は前記結合オペレーションの評価を偽に
し、従って、前記スカラ副照会からのヌル行は前記応答
セットに影響を与えない、請求項49に記載の方法。 - 【請求項51】前記変換するステップ(b)は、更に、
包含を使用して前記スカラ副照会を結合オペレーション
に変換するステップを含む、請求項46に記載の方法。 - 【請求項52】前記除去するステップ(d)は、更に、
冗長な結合オペレーションの除去を使用して前記結合オ
ペレーションをマージするステップを含む、請求項46
に記載の方法。 - 【請求項53】前記冗長な結合オペレーションは自己結
合オペレーションを含む、請求項52に記載の方法。 - 【請求項54】前記自己結合オペレーションは前記リレ
ーショナル・データベースからテーブルのキー列を介し
て遂行される、請求項53に記載の方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/133,335 US6339768B1 (en) | 1998-08-13 | 1998-08-13 | Exploitation of subsumption in optimizing scalar subqueries |
US09/133335 | 1998-08-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000067084A JP2000067084A (ja) | 2000-03-03 |
JP3297403B2 true JP3297403B2 (ja) | 2002-07-02 |
Family
ID=22458102
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20114099A Expired - Fee Related JP3297403B2 (ja) | 1998-08-13 | 1999-07-15 | 照会を最適化する方法および装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6339768B1 (ja) |
JP (1) | JP3297403B2 (ja) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6513034B1 (en) * | 1999-04-16 | 2003-01-28 | International Business Machines Corporation | Deriving uniqueness for indices on summary tables |
US6847962B1 (en) * | 1999-05-20 | 2005-01-25 | International Business Machines Corporation | Analyzing, optimizing and rewriting queries using matching and compensation between query and automatic summary tables |
US7167853B2 (en) * | 1999-05-20 | 2007-01-23 | International Business Machines Corporation | Matching and compensation tests for optimizing correlated subqueries within query using automatic summary tables |
US6516310B2 (en) * | 1999-12-07 | 2003-02-04 | Sybase, Inc. | System and methodology for join enumeration in a memory-constrained environment |
CA2307155A1 (en) | 2000-04-28 | 2001-10-28 | Ibm Canada Limited-Ibm Canada Limitee | Execution of database queries including filtering |
US6763359B2 (en) * | 2001-06-06 | 2004-07-13 | International Business Machines Corporation | Learning from empirical results in query optimization |
US7107255B2 (en) * | 2001-06-21 | 2006-09-12 | International Business Machines Corporation | Self join elimination through union |
US6925472B2 (en) * | 2001-07-11 | 2005-08-02 | Sun Microsystems, Inc. | Tree structure to pass data values to prepared statement object |
CA2374271A1 (en) * | 2002-03-01 | 2003-09-01 | Ibm Canada Limited-Ibm Canada Limitee | Redundant join elimination and sub-query elimination using subsumption |
US6598044B1 (en) * | 2002-06-25 | 2003-07-22 | Microsoft Corporation | Method for choosing optimal query execution plan for multiple defined equivalent query expressions |
US7702627B2 (en) * | 2004-06-22 | 2010-04-20 | Oracle International Corporation | Efficient interaction among cost-based transformations |
US20050283471A1 (en) * | 2004-06-22 | 2005-12-22 | Oracle International Corporation | Multi-tier query processing |
US7814042B2 (en) * | 2004-08-17 | 2010-10-12 | Oracle International Corporation | Selecting candidate queries |
US7814091B2 (en) * | 2005-09-27 | 2010-10-12 | Oracle International Corporation | Multi-tiered query processing techniques for minus and intersect operators |
US7877379B2 (en) * | 2005-09-30 | 2011-01-25 | Oracle International Corporation | Delaying evaluation of expensive expressions in a query |
US7945562B2 (en) * | 2006-03-15 | 2011-05-17 | Oracle International Corporation | Join predicate push-down optimizations |
US7676450B2 (en) * | 2006-03-15 | 2010-03-09 | Oracle International Corporation | Null aware anti-join |
US7644062B2 (en) * | 2006-03-15 | 2010-01-05 | Oracle International Corporation | Join factorization of union/union all queries |
US7809713B2 (en) * | 2006-03-15 | 2010-10-05 | Oracle International Corporation | Efficient search space analysis for join factorization |
US20070219943A1 (en) * | 2006-03-19 | 2007-09-20 | Mr. Alphonza Draughn | Transforming SQL Queries with Table Subqueries |
US7877373B2 (en) * | 2006-06-30 | 2011-01-25 | Oracle International Corporation | Executing alternative plans for a SQL statement |
US7860899B2 (en) * | 2007-03-26 | 2010-12-28 | Oracle International Corporation | Automatically determining a database representation for an abstract datatype |
US8209322B2 (en) * | 2007-08-21 | 2012-06-26 | Oracle International Corporation | Table elimination technique for group-by query optimization |
US8352461B2 (en) * | 2007-09-12 | 2013-01-08 | Oracle International Corporation | Table elimination optimizations |
US8903801B2 (en) | 2007-09-14 | 2014-12-02 | Oracle International Corporation | Fully automated SQL tuning |
US8341178B2 (en) * | 2007-09-18 | 2012-12-25 | Oracle International Corporation | SQL performance analyzer |
US8600977B2 (en) * | 2007-10-17 | 2013-12-03 | Oracle International Corporation | Automatic recognition and capture of SQL execution plans |
US8438152B2 (en) * | 2007-10-29 | 2013-05-07 | Oracle International Corporation | Techniques for bushy tree execution plans for snowstorm schema |
WO2009088286A2 (en) * | 2008-01-09 | 2009-07-16 | Thranx Investment B.V. | Method for creating sub-query related memory stores |
US7958112B2 (en) * | 2008-08-08 | 2011-06-07 | Oracle International Corporation | Interleaving query transformations for XML indexes |
US8635229B2 (en) * | 2011-10-18 | 2014-01-21 | International Business Machines Corporation | Sequenced query processing in data processing system |
JP5800720B2 (ja) * | 2012-01-24 | 2015-10-28 | 三菱電機株式会社 | 情報処理装置及び情報処理方法及びプログラム |
US10102248B2 (en) * | 2012-10-10 | 2018-10-16 | TmaxData Co., Ltd. | Join type for optimizing database queries |
US9870390B2 (en) | 2014-02-18 | 2018-01-16 | Oracle International Corporation | Selecting from OR-expansion states of a query |
US10621064B2 (en) | 2014-07-07 | 2020-04-14 | Oracle International Corporation | Proactive impact measurement of database changes on production systems |
US10585887B2 (en) | 2015-03-30 | 2020-03-10 | Oracle International Corporation | Multi-system query execution plan |
US10198473B2 (en) | 2015-04-21 | 2019-02-05 | Sap Se | Hierarchical document flow determination |
US10235780B2 (en) * | 2015-12-18 | 2019-03-19 | Dropbox, Inc. | Integrated data exploration, modeling and visualization |
US11386058B2 (en) | 2017-09-29 | 2022-07-12 | Oracle International Corporation | Rule-based autonomous database cloud service framework |
US11327932B2 (en) | 2017-09-30 | 2022-05-10 | Oracle International Corporation | Autonomous multitenant database cloud service framework |
US10733187B2 (en) * | 2018-02-09 | 2020-08-04 | International Business Machines Corporation | Transforming a scalar subquery |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4631673A (en) | 1985-01-22 | 1986-12-23 | International Business Machines Corporation | Method for refreshing multicolumn tables in a relational data base using minimal information |
US5566330A (en) | 1991-08-20 | 1996-10-15 | Powersoft Corporation | Method for forming a reusable and modifiable database interface object |
US5666526A (en) | 1993-09-02 | 1997-09-09 | Microsoft Corp. | Method and system for supporting scrollable, updatable database queries |
US5367675A (en) * | 1991-12-13 | 1994-11-22 | International Business Machines Corporation | Computer automated system and method for optimizing the processing of a query in a relational database system by merging subqueries with the query |
US5495604A (en) | 1993-08-25 | 1996-02-27 | Asymetrix Corporation | Method and apparatus for the modeling and query of database structures using natural language-like constructs |
US5675785A (en) | 1994-10-04 | 1997-10-07 | Hewlett-Packard Company | Data warehouse which is accessed by a user using a schema of virtual tables |
US5615361A (en) * | 1995-02-07 | 1997-03-25 | International Business Machines Corporation | Exploitation of uniqueness properties using a 1-tuple condition for the optimization of SQL queries |
US5751949A (en) | 1995-05-23 | 1998-05-12 | Mci Corporation | Data security system and method |
US5864840A (en) * | 1997-06-30 | 1999-01-26 | International Business Machines Corporation | Evaluation of existential and universal subquery in a relational database management system for increased efficiency |
-
1998
- 1998-08-13 US US09/133,335 patent/US6339768B1/en not_active Expired - Lifetime
-
1999
- 1999-07-15 JP JP20114099A patent/JP3297403B2/ja not_active Expired - Fee Related
Non-Patent Citations (3)
Title |
---|
ORACLE データベース管理者ガイド,日本,富士通株式会社,1991年 1月31日,初版,pp.19−6〜19−7.,CSNZ2001−00052−001 Oracle8 Server概要,日本,Oracle Corporation,1997年 9月30日,Vol.12.リリース8.0,pp.19−20〜19−21.,CSNZ 2001−00721−001 |
Pirahesh H et al.,A Rule Engine for Query Transformation in Starburst and IBM DB2 C/S DBMS.,Proc.Int.Conf.Data Eng.,米国,Vol.13th,pp.391−400.,CN 97A0643213 |
Pirahesh H et al.,Extensible/Rule Based Query Rewrite Optimization in Starburst.,SIGMOD Rec,米国,Assoc Comput Mach Spec Interest Group Manag Data,Vol.21,No.2,pp.39−48.,CN 92A0527358 |
Also Published As
Publication number | Publication date |
---|---|
US6339768B1 (en) | 2002-01-15 |
JP2000067084A (ja) | 2000-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3297403B2 (ja) | 照会を最適化する方法および装置 | |
US5615361A (en) | Exploitation of uniqueness properties using a 1-tuple condition for the optimization of SQL queries | |
US5822750A (en) | Optimization of correlated SQL queries in a relational database management system | |
US5548758A (en) | Optimization of SQL queries using early-out join transformations of column-bound relational tables | |
US6529896B1 (en) | Method of optimizing a query having an existi subquery and a not-exists subquery | |
US5963933A (en) | Efficient implementation of full outer join and anti-join | |
US6826562B1 (en) | Method of simplifying and optimizing scalar subqueries and derived tables that return exactly or at most one tuple | |
US5548755A (en) | System for optimizing correlated SQL queries in a relational database using magic decorrelation | |
US6574623B1 (en) | Query transformation and simplification for group by queries with rollup/grouping sets in relational database management systems | |
US5590324A (en) | Optimization of SQL queries using universal quantifiers, set intersection, and max/min aggregation in the presence of nullable columns | |
US5724568A (en) | Reordering complex SQL queries containing inner and outer join operations using hypergraphs and required sets | |
US6219662B1 (en) | Supporting database indexes based on a generalized B-tree index | |
US6581205B1 (en) | Intelligent compilation of materialized view maintenance for query processing systems | |
US5687362A (en) | Enumerating projections in SQL queries containing outer and full outer joins in the presence of inner joins | |
US5864847A (en) | Reordering of complex SQL queries involving groupbys, joins, outer joins and full outer joins | |
US6167399A (en) | Join index for relational databases | |
US6847962B1 (en) | Analyzing, optimizing and rewriting queries using matching and compensation between query and automatic summary tables | |
US5864840A (en) | Evaluation of existential and universal subquery in a relational database management system for increased efficiency | |
US6996557B1 (en) | Method of optimizing SQL queries where a predicate matches nullable operands | |
US6460027B1 (en) | Automatic recognition and rerouting of queries for optimal performance | |
US6339770B1 (en) | Query simplification and optimization involving eliminating grouping column from group by operation corresponds to group by item that is constant | |
US6278994B1 (en) | Fully integrated architecture for user-defined search | |
US7080062B1 (en) | Optimizing database queries using query execution plans derived from automatic summary table determining cost based queries | |
US7240078B2 (en) | Method, system, and program for query optimization with algebraic rules | |
US6505188B1 (en) | Virtual join index for relational databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080412 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |