JP2003505766A - クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム - Google Patents

クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム

Info

Publication number
JP2003505766A
JP2003505766A JP2001511602A JP2001511602A JP2003505766A JP 2003505766 A JP2003505766 A JP 2003505766A JP 2001511602 A JP2001511602 A JP 2001511602A JP 2001511602 A JP2001511602 A JP 2001511602A JP 2003505766 A JP2003505766 A JP 2003505766A
Authority
JP
Japan
Prior art keywords
original
index
virtual
database
optimization plan
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
JP2001511602A
Other languages
English (en)
Inventor
エドワード コシウツコ,
スリークマー メノン,
ハン−ブオン ボ,
Original Assignee
コンピュータ アソシエイツ シンク,インコーポレイテッド
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 コンピュータ アソシエイツ シンク,インコーポレイテッド filed Critical コンピュータ アソシエイツ シンク,インコーポレイテッド
Publication of JP2003505766A publication Critical patent/JP2003505766A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99932Access augmentation or optimizing
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL 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
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 SQLステートメント等のデータベースクエリーに対する最適化プランに関するデータベーステーブルに対するインデックスに対する変化の影響を観察するための方法及び装置。仮想テーブル(312)が作成され、それはデータベースに関するオリジナルのテーブル(308)の構造を模倣する。オリジナルのテーブル(308)をコピーし、オリジナルのテーブル内のデータを排除することによって仮想テーブル(312)が作成される。オリジナルのテーブル(308)と関連する既存のオリジナルのインデックス(310)がコピーされて仮想テーブル(312)と関連する仮想インデックス(314)を定義する。オリジナルのテーブルに対するクエリーにおける参照は仮想テーブル(408)への参照で置換される。次いで、データベース管理システムがそのクエリーに対する新たな最適化プラン(324)を決定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、大略、データベーステーブルに対するインデックスデザインに対す
る変化の効果を観察することに関連している。より詳細には、本発明は、データ
ベーステーブルに対するインデックスが変化された場合にデータベースクエリー
に対する最適化プランを決定するために仮想テーブルと仮想インデックスとを使
用することに関連している。
【0002】
【従来の技術】
コンピュータデータに対する簡単で且つ効率的なアクセスを達成し且つ維持す
ることは殆どのコンピュータユーザによって共有される目標である。更に、最近
のコンピュータの処理能力が増加するに従い、より多くの量のデータが編成され
且つユーザのために格納されることが必要となる場合がある。コンピュータデー
タを編成する1つのシステムはデータベースであり、それは通常、不必要な冗長
性なしで何等かの記録可能な媒体に一緒に格納される論理的に関連した情報オブ
ジェクト又はファイルのグループとして認識される。データベースは、好適には
、種々のアプリケーション又はプログラムの役に立ち、且つこれらのアプリケー
ション又はプログラムによるアクセスを容易なものとさせる。
【0003】 殆どのデータベースにおいては、データは外部的にテーブルの形態に構造化さ
れる。各テーブルは、通常、一連のフィールドを包含しており、それはテーブル
の列を定義する。テーブルの各行は単一のレコードを有している。テーブル内の
各行のデータに対して、そのデータの対応物がデータベース内に物理的に格納さ
れる。従って、データベースユーザがテーブルから特定の情報を要求すると、格
納されているデータの適宜の部分が検索され且つユーザに対して提供される。
【0004】 「データベース管理システム」(DBMS)と呼称されるプログラムは、ユー
ザにデータベースに対するインターフェースを与える。DBMSはユーザがデー
タベースに格納されている情報オブジェクトへアクセスすることを可能とするデ
ータベースに対する構造を提供している。DBMSは情報要求、即ちユーザから
の「クエリー(問い合わせ)」に応答してある情報オブジェクトを識別し且つ検
索する。特定の情報オブジェクトの検索は情報オブジェクト内に格納されている
情報とユーザによってシステムに対して提供された要求との間の類似性に依存す
る。その類似性は、情報オブジェクト及び情報要求に取付けられているある属性
の値を比較することによって測定される。
【0005】 例えば、「Employee」(従業員)という名前の付けられたテーブルが
「Name」(名前)、「Dept」(部門)、「Age」(年齢)及び「Sa
lary」(給与)というフィールドを包含しており、且つエレクトロニクス部
門において作業している従業員のサブセットをユーザが見つけることを所望する
場合には、以下のクエリーを使用することが可能である。
【0006】
【数1】
【0007】 検索処理を簡単化させるために、データベースにおける情報オブジェクトは、
しばしば、「インデックス」され、従ってオブジェクトの内容を識別するための
記述子を割り当てることによってオブジェクトが特性付けされる。「インデック
ス化」と呼称されるこれらの情報オブジェクトを特性付けする処理はユーザから
の特定のクエリーに応答してDBMSをデータベース内の特定の項目へ導くこと
を可能とする。
【0008】 テーブルに対するインデックスを構築するために、DBMSは、典型的に、テ
ーブルをスキャンし、テーブル内の全ての行及び列からデータを検索し、且つそ
のデータを、しばしば、Bツリー構造の形態であるインデックスへ付加する。B
ツリー構造に関しての更なる情報については、Patrick O’Neil著
「データベース−原理、プログラミング、性能(Database−Princ
iples,Programming,Performance)」、モルガン
カウフマン出版社(1994)を参照すると良く、尚その文献を引用によって本
明細書に取込む。DBMSはテーブル内の各々及び全てのデータエントリを逐次
的に読取り、各データエントリを一時的空間へコピーし、必要である場合にはデ
ータエントリをソーティングし、且つ最終的に該インデックスに対するデータ構
造を形成する。
【0009】 然しながら、テーブルに対するインデックスを構築する処理は、通常、かなり
の量の時間及び資源を消費する。例えば、数百万個の行を有するテーブルに対す
るインデックスを形成することは数日かかる場合がある。更に、このテーブルに
対するインデックスを形成することは、典型的に、インデックスを形成する前に
データをコピーし且つソーティングするために数百メガバイトの一時的な作業空
間を必要とする。当然、インデックスを形成するか又は変更する処理は比例的に
より多くの量の時間がかかる。データウエアハウスにおいて使用されるようなデ
ータベース用のテーブルは何十億個又は数兆個の行を有している場合がある。こ
のような寸法のテーブルに対するインデックスを形成するためにはユーザは数週
間又は数ヶ月かかる場合がある。
【0010】 その他のファクタがインデックスを形成することに関連する時間問題を複雑化
させる。特に、インデックスを形成した後に、データベースがインデックスをテ
ストし且つ性能統計量を返すのに時間が必要であり、且つユーザがこれらの結果
を解析するのに時間が必要である。
【0011】 典型的なインデックスされたデータベースシステム(即ち、被索引データベー
スシステム)の場合には、通常、クエリーを解決するために2つのステップが存
在している。最初のステップは、クエリー内のどの節がそのインデックスにおけ
る関連する記述子又はインデックスエントリを有しているかを決定し、これらの
インデックスエントリを検索し、且つ考慮中の情報オブジェクトの組を予備的に
制限することである。2番目のステップは、通常、最初のステップから情報オブ
ジェクトの組を取り且つ順番に各情報オブジェクトを検査してそれがクエリーを
満足するものであるか否かを判別することである。
【0012】 構造化クエリー言語(SQL)はデータベースクエリー即ちステートメントに
対する標準の言語となっている。SQLインターフェースは対話的に、バッチフ
ァイルにおいて、又は例えばC,COBOL等のホスト言語内に埋め込まれてデ
ータベーステーブルに関する関連操作をユーザが構成することを可能とする。S
QLにおいては、ユーザがデータを操作することを可能とするオペレータが与え
られており、各オペレータは1つ又はそれ以上のテーブルに関して操作を行い且
つその結果として新たなテーブルを発生する。
【0013】 SQLステートメント即ちクエリーをチューニングする処理において、ユーザ
は、しばしば、インデックス化における変化がどのようにしてそのクエリーの性
能に影響を与えるかを知ることを所望する場合がある。上述したように、特に、
インデックスが性能においてかなりの改善を行うことを可能とするより大きなテ
ーブルにおいては、クエリーを実行する速度を容易なものとさせるためにデータ
ベースに対してインデックスを付加することが可能である。一方、データベース
におけるデータの量のために、インデックスを付加すること又は変化させること
は、データベースがインデックスを構築するためにかなりの時間及び資源を必要
とする場合がある。従って、ユーザは、しばしば、新しいインデックスが何等意
味のある態様で性能を改善することがないという危険性の下でインデックスを構
築するために必要な時間及び資源を消費するか、又はインデックスを構築せずに
インデックスが存在する場合に可能であるような改善された性能を認識しないと
いう危険を犯すかのいずれかのジレンマに直面している。
【0014】 オラクルデータベース管理システムは、ユーザに対して、SQLステートメン
トの「最適化プラン」を観察する能力を提供する。最適化プランは、そのステー
トメントがデータベースによってパース即ち構文解析された場合に、SQLステ
ートメントに対するデータベースによって自動的に決定される。最適化プランは
、実際にSQLステートメントを実行することなしに、SQLステートメントの
条件を満足するのに必要なデータをどのようにしてデータベースが検索するかを
示す。特に、最適化プランは、就中、どのテーブルが最初にアクセスされるか、
どのようにして中間結果の組が合体されるか、インデックスが使用されるか否か
、且つそうである場合には、そのインデックスがどのようにして解釈されるか等
の情報を示す。従って、特定のSQLステートメントに対する最適化プランを観
察することによって、ユーザはどれほど効率的にそのSQLステートメントがそ
のデータベースにおいて実行されるかについての推定を得ることが可能である。
【0015】 より大きなデータベース管理システムにおいては、消費される時間及び資源の
量を最小とするためにクエリーの最適化がより重要なものとなる。従って、ユー
ザがSQLステートメントに対する最適化プランを観察し且つインデックス変化
が最適化プランに与える可能性のある効果を確かめることが可能であることが同
様に重要となる。
【0016】 図1はSQLステートメントに対する最適化プランに関するデータベーステー
ブル用のインデックスに対する変化の効果を観察するための従来の方法100の
フローチャートである。ステップ110において、SQLステートメントに対し
てオリジナルの最適化プランが作成される。ステップ120において、SQLス
テートメントにおいて参照されたテーブルに対するインデックスが形成され、削
除されるか又は修正される。ステップ130において、SQLステートメントに
対して新たな最適化プランが作成される。最後に、ステップ140において、ユ
ーザは新たな最適化プランをオリジナルの最適化プランと比較して、インデック
ス変化の結果として性能が改善されるか又は悪化するかを判別する。
【0017】 然しながら、上述したように、図1の従来の方法100はインデックスを作成
、削除又は変更するために過剰な時間と資源とを必要とする。更に、種々の最適
化プランを構築するために必要な統計を収集するためのデータベースに対して過
剰な時間と資源とが必要とされる。データベースが生産環境において使用される
ものではない場合には、従来の方法を使用してインデックスに対する変更を行う
時間をかけることは可能であるかもしれない。然しながら、データベースが生産
において使用される場合には、速度、資源及び全体的な性能に与える著しい負の
インパクトのために、図1に示した変更を行うのに必要な時間及びエネルギを消
費することは実現可能なものでない蓋然性がある。例えば、図1の方法を使用し
た場合には、ツール又はアプリケーションが既存のインデックスに依存するもの
であり、且つユーザがステップ120においてそのインデックスを変化させるか
又は削除した場合には、データベースはシャットダウンし且つシステム全体がデ
ッドロックする可能性がある。
【0018】
【発明が解決しようとする課題】
従って、最適化プランに関するインデックス変化の影響をプレビューする従来
の方法の場合には、ユーザは、しばしば、インデックスに関しての試行を行うこ
とを最小とすることが余儀なくされる。このことは、しばしば、特により大型の
データベース管理システムに対してSQLステートメントがデータベースにおい
て実行される場合に著しい量の時間及びエネルギを消費する場合があるデータベ
ース用の最適なインデックストポグラフィ又は最適化プランを実現することに失
敗することとなる。従って、データベーステーブル用のインデックスデザインを
変化させ且つこれらのインデックスに対する最適化プランを作成するためのより
高速でより効率的な方策に対する必要性が存在している。
【0019】
【課題を解決するための手段】
本発明は、新しいインデックスがデータベーステーブルへ付加されるか、既存
のインデックスがテーブルから削除されるか、又はそのテーブルに対する既存の
インデックスが修正される場合に、データベースクエリーに対する最適化プラン
がどのようにして変化するかをユーザが見ることを可能とする。
【0020】 方法及び装置は、ユーザがテーブルに対するインデックストポグラフィで試行
し、且つ従来の方法によって必要とされる時間と資源とを消費する必要性なしに
、例えばSQLステートメント等のデータベースクエリーに対する最適化プラン
に関してインデックスの種々のトポグラフィ構造が与えることのある影響をプレ
ビューするためのフレームワークを与える。
【0021】 本発明の幾つかの側面によれば、テスト中のデータベースに関するテーブル、
即ちデータベースに関する「オリジナルのテーブル」の構造を模倣する仮想テー
ブルが作成される。この仮想テーブルは、通常、オリジナルのテーブル内のすべ
てのデータを排除し、オリジナルのテーブルをコピーすることによって作成され
る。従って、例えば、データがオリジナルのテーブルの行内に格納されている場
合には、それらの行は仮想テーブルにおいてコピーされることはない。然しなが
ら、オリジナルのテーブルと関連している既存のインデックス、即ち「オリジナ
ルのインデックス」は仮想テーブルと関連する仮想インデックスを定義するため
にコピーされる。
【0022】 仮想テーブルを定義するためにオリジナルのテーブルをコピーする場合にデー
タを排除することによって、オリジナルのテーブルの全体的な構造を保存しなが
ら関連する仮想インデックスを容易に且つ迅速に修正することが可能である。新
たなインデックスを付加し、且つ既存のインデックスを非常に迅速に削除するこ
とが可能である。又、オリジナルのインデックスが存在しない場合には、新たな
仮想インデックスを容易に作成することが可能である。
【0023】 クエリー即ち問い合わせにおいては、オリジナルのテーブルに対する参照は仮
想テーブルに対する参照で置換される。次いで、データベース管理システムがそ
のクエリーに対する新たな最適なプランを決定する。この新たな最適化プランは
仮想テーブルと仮想インデックスとを使用して決定されるので、そのプランは、
それがオリジナルのテーブル及びそれと関連するオリジナルのインデックスを使
用して作成された場合よりも一層高速に検索される。何故ならば、オリジナルの
テーブルが仮想テーブルを定義するためにコピーされた場合にオリジナルのテー
ブルにおける実際のデータは排除されているからである。従って、インデックス
用のデザインが変更された後に最適化プランに対する全ての変化を迅速に識別す
ることが可能である。
【0024】 ユーザに対して新たな最適化プランが表示される前に、仮想テーブル及び仮想
インデックスに対する新たな最適化プランにおける参照はオリジナルのテーブル
及びオリジナルのインデックスの名称で置換される。このように、ユーザは新た
な最適化プランをオリジナルの最適化プランと比較し且つ新たな最適化プランを
作成する場合に仮想オブジェクトの使用に関係することなしに、又はそのことに
ついて知る必要性なしに、変化を解析することが可能である。
【0025】
【発明の実施の形態】
図2は本発明の例示的実施例を実現することが可能な例示的なハードウエア環
境を例示したブロック図である。図2のハードウエア環境においては、クライエ
ントコンピュータ200がサーバーコンピュータ202へ結合している。クライ
エントコンピュータ200及びサーバーコンピュータ202の両方は、就中、プ
ロセッサ、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)
、キーボード、ディスプレイ、固定及び/又は着脱自在データ記憶装置、及びデ
ータ通信装置を包含することが可能である。
【0026】 図2において、サーバーコンピュータ202は、好適には、オラクルデータベ
ースであるデータベース212と通信状態にある。当業者によって理解されるよ
うに、例えばマイクロソフトSQLサーバーデータベース、サイベース(Syb
ase)SQLサーバーデータベース、及びIBM DB2データベース等のそ
の他のデータベースを使用することも可能である。
【0027】 当業者が理解するように、図2を参照して上述したコンポーネント又は任意の
数の異なるコンポーネント、ペリフェラル、及びその他の装置の任意の組合わせ
をクライエントコンピュータ200及びサーバーコンピュータ202と共に使用
することが可能である。更に、当業者が理解するように、本発明の例示的実施例
は、ネットワークで一体化した複数個のコンピュータではなく単一のコンピュー
タ上で実現することが可能である。
【0028】 本発明の例示的実施例は、典型的に、例えばプラチナム(PLATINUM)
テクノロジィによって製造販売されているSQLステーションソフトウエア等の
データベース管理システムソフトウエアを使用して実現されるが、それは、例え
ばオラクルによって販売されているDeveloper/2000パッケージ又
はIBMによって販売されているDB2製品等の任意のデータベース管理システ
ムソフトウエアで実現することが可能である。更に、本発明の例示的実施例を実
現することが可能なプラチナムのSQLステーションソフトウエアは、例えばオ
ラクルのDeveloper/2000ソフトウエア及びIBMによって販売さ
れているDB2製品等のその他のソフトウエアと関連して使用することが可能で
ある。
【0029】 図2において、該ソフトウエアはSQLステーションクライエントプログラム
204及びクライエントコンピュータ200によって実行されるリレーショナル
エックステンダークライエントプログラム206を包含している。該ソフトウエ
アは、更に、サーバーコンピュータ202によって実行されるオラクルサーバー
プログラム208及びリレーショナルエックステンダープログラム210を包含
している。これらのプログラムは、例えばウインドウズ95、ウインドウズNT
、OS/2、AIX、MVS、UNIX(登録商標)等のそれらの夫々のコンピ ュータ200又は202上のオペレーティングシステムの制御下で実行する。当 業者が理解するように、上のプログラム、又は任意の異なる数のプログラムの任 意の組合わせを本発明の例示的実施例を実現するために使用することが可能であ る。
【0030】 SQLステーションクライエントプログラム204及びリレーショナルエクス
テンダークライエントプログラム206はオラクルサーバープログラム208及
びリレーショナルエクステンダーサーバープログラム210によって管理される
データベース212に対して種々のサーチ及び検索機能、即ちクエリー(問い合
わせ)を実施するためのコマンドを発生する。好適実施例においては、これらの
クエリーはSQLスタンダードに準拠するものであるが、本発明の範囲を逸脱す
ることなしにその他のタイプのクエリーを使用することも可能である。これらの
クエリーは例えばユーザ及びシステムデータの定義、アクセス制御、解釈、編集
、データベース検索、アップデート等のオラクルサーバープログラム208及び
リレーショナルエクステンダーサーバープログラム210によって実施される機
能を喚起する。
【0031】 通常、DBMSソフトウエア、SQLクエリー、及びそれらから派生される命
令は、全て、例えば1個又はそれ以上のデータ記憶装置及び/又はデータ通信装
置であるコンピュータによって読取可能な媒体に明確に具体化されるか又はそれ
から読取ることが可能である。更に、RDBMSソフトウエア、SQLクエリー
、及びそれらから派生される命令は、全て、クライエントコンピュータ200及
び/又はサーバーコンピュータ202によって読取られ且つ実行される場合に、
クライエントコンピュータ200及び/又はサーバーコンピュータ202をして
本発明の実施例を実現及び/又は使用するのに必要なステップを実施させる命令
から構成されている。
【0032】 図3は本発明の例示的実施例に基づいて、データベースクエリーに対する最適
化プランに関するデータベーステーブル用のインデックスに対する変化の影響を
決定するシステムを例示したブロック図である。二人のユーザ即ち「スキーマ」
が示されており、即ち「TUTOR」302及び「PAFO−HR」304が示
されており、その各々は、好適には例えばオラクル8データベース等のオラクル
データベースであるデータベース306へのアクセスを有している。
【0033】 図3において、各ユーザ302,304はそのユーザのアカウント内のテーブ
ル内に格納されているそれ自身のオブジェクト及び情報を制御する。例えば、ユ
ーザPAFO−HR304はオリジナルのテーブル308及び関連するインデッ
クス310、及び仮想テーブル312及び仮想テーブル312と関連する仮想イ
ンデックス314を制御する。テーブル308,312及び夫々の関連するイン
デックス310,314はデータベース上に格納されている。
【0034】 各ユーザ302,304は、通常、データベース306の他のユーザを除いて
、そのユーザのアカウント内に格納されている情報を制御する。然しながら、ユ
ーザは他のユーザのアカウントに関して種々の特権が許可される場合がある。通
常、その特権は一人のユーザのアカウントに関して一人のユーザから別のユーザ
へ許可することが可能である。例えば、図3において、PAFO−HR304の
みがPAFO−HR304アカウントに関する特権を他のユーザに対して許可す
るためのパワー即ち権能を有している。
【0035】 このような1つの特権は「READ」であり、即ち別のユーザのアカウントに
おける情報へアクセスすることの許可である。例えば、図3において、ユーザP
AFO−HR304は、PAFO−HR304アカウントにおけるテーブル内に
格納されている情報及びオブジェクトへアクセスするためにユーザTUTOR3
02へ許可を与えており、即ちTUTOR302に対してREAD特権を許可し
ている。従って、TUTOR302はPAFO−HRのアカウントにおけるテー
ブルに対してクエリーを発生し且つPAFO−HR304アカウントにおけるこ
のような情報へアクセスすることが可能である。一方、3番目のユーザ「SCO
TT」(不図示)はPAFO−HRのアカウントに関してこのようなREAD特
権が許可されておらず、従ってSCOTTはPAFO−HR304によって制御
されるテーブルへアクセスすることは不可能である。
【0036】 図3のシステムにおいて使用可能なこのような別の特権は「CREATE
ABLE」特権又は一人のユーザから別のユーザへ許可することも可能な1組の
特権である。CREATE TABLE特権は、一人のユーザによって許可され
た場合には、他のユーザがその一人のユーザのアカウントにおいてテーブルを作
成することを可能とさせ、且つこれらのテーブル内にオブジェクトを格納するこ
とを可能とさせる。
【0037】 ユーザは、しばしば、データベースシステム上の他のユーザに対してCREA
TE TABLE特権を許可することを希望しない。何故ならば、それは、別の
ユーザのアカウント内に格納されている情報を修正又は削除することを一方的に
選択する広い権能を他のユーザへ与えるからである。従って、図3のデータベー
ス環境においては、TUTOR302はPAFO−HRのアカウントに関してC
REATE TABLE特権が許可されてはいない。
【0038】 図3において、本発明の例示的実施例に基づいて、「オラクル用プランアナラ
イザー」(PAFO)316の名称が付けられたソフトウエアパッケージがデー
タベース306上に格納されている。このソフトウエアパッケージはデータベー
スシステムのユーザ302,304によってアクセス可能である。TUTOR3
02と異なり、パッケージPAFO316はデータベースアドミニストレータ−
(DBA)によって幾つかの他の特権と共にPAFO316に対して許可されて
いるPAFO−HR304に関してCREATE TABLE特権を許可してい
る。従って、そうでなければPAFO−HR304アカウントにおけるテーブル
及びインデックスに関してのアクセス及び試行を行うために必要な特権を有する
ものではないが、TUTOR302アカウントにログインしたユーザは、これら
のタスクを達成するためにPAFOパッケージ316を使用することが可能であ
る。
【0039】 図3において、TUTOR302は本発明の方法を実行するためにパッケージ
PAFO316をコールする。PAFO316がコールされると、PAFO31
6はPAFO−HR304アカウントに対する手順318を作成し且つ動的に展
開させる。次いで、展開された手順318はPAFO−HR304アカウントに
おいて実行される。次いで、展開された手順318はTUTOR302アカウン
トのユーザに対してPAFO−HR304アカウントへアクセスするのに必要な
特権を許可することが可能である。その展開された手順は、次いで、TUTOR
、即ちユーザのアカウントに対する仮想テーブルに関するREAD(書込ではな
い)特権を許可する。このように、TUTORはCREATE TABLE特権
を有することなしにオリジナルのテーブル308と仮想テーブル312の両方へ
アクセスすることが可能である。展開された手順318の機能について以後図3
及び4を参照して説明する。
【0040】 図4のステップ402において、SQLステートメント320において参照さ
れて手順316がオリジナルのテーブル308を識別し、且つオリジナルのテー
ブル308をコピーして仮想テーブル312を定義する。このステップ402に
おけるコピー動作は、オリジナルのテーブルの統計を列統計、ヒストグラム、セ
グメント格納を包含する新たなテーブルへコピーすることを包含している。この
ように、それは、あたかも仮想テーブルがオリジナルのテーブルと同じ数の行の
データを包含するように見える。然しながら、オリジナルのテーブル308にお
ける実際のデータは、好適には、仮想テーブル312を定義するためにコピーさ
れた情報から排除される。従って、例えば、データがオリジナルのテーブル30
8の行内に格納される場合には、それらの行は仮想テーブル312内にコピーさ
れることはない。
【0041】 ステップ402において、オリジナルのテーブルのコピーを作成し且つそれに
ついて作業することの利点は多数存在している。オリジナルのテーブル308へ
アクセスするユーザは迷惑を被ることがなく且つその変化によって性能が劣化さ
れることはない。生産環境においては、アプリケーションを実行することが影響
されることはない。オラクルデータベースが使用される場合には、オラクルカタ
ログにおける何もオリジナルのテーブル308に対して修正することが必要なも
のではない。更に、仮想テーブルは行を包含するものではないので、インデック
スの作成は非常に高速である。
【0042】 ステップ402において、他のオリジナルのテーブルがPAFO−HR304
アカウント内に存在する場合には、これらのテーブルも対応する仮想テーブルを
定義するためにコピーすることが可能である。又、後に明らかとなる理由により
、好適にはリスト(不図示)が維持され、その中において、仮想テーブルの名称
はそれらが作成されたオリジナルテーブルと相関されている。
【0043】 ステップ404において、仮想テーブル312と関連付けられるべき仮想イン
デックス314が定義される。このステップにおいては、オリジナルのテーブル
308と関連するオリジナルのインデックス310が存在する場合には、手順3
16が仮想インデックス314を定義するためにオリジナルのインデックス31
0のコピーを作成する。例えば、図3のオリジナルのテーブル308に示した2
つの列に対してオリジナルのインデックスが定義されている場合には、オリジナ
ルのインデックスをコピーすることによって仮想テーブル312に示した2つの
列に対して対応する仮想のインデックスが作成される。
【0044】 オリジナルのインデックス310と関連する統計量も仮想インデックス314
内にコピーされ、且つ、次いで、ユーザによって特定されて設定することが可能
である。このように、仮想インデックスは、好適には、同一の拘束条件及び定義
を包含するオリジナルのインデックスと同一のデータ構造を有している。従って
、最適化プランに関する限り、仮想インデックスの構造はオリジナルのインデッ
クスと同一である。
【0045】 ステップ404において、オリジナルのテーブル308と関連するオリジナル
のインデックス310が存在しない場合には、手順316を介してユーザによっ
て仮想インデックス314を作成し且つ定義することが可能である。又、ユーザ
がインデックスなしで試行することを所望する場合には、展開した手順316を
使用してオリジナルのインデックス310内に存在する任意のインデックスを削
除することによってユーザが、単純に仮想インデックス314を定義すべく選択
することが可能である。この時点において、手順318がPAFO−HR304
に関して作成され且つ実行されてREAD特権をTUTOR302に対して許可
する。
【0046】 ステップ406において、仮想インデックス314を定義した後に、PAFO
316はSQLステートメント320においてオリジナルのテーブル308に対
する参照を仮想テーブル312に対する参照で置換させる。更に、SQLステー
トメント320におけるオリジナルのインデックス310に対する参照は仮想イ
ンデックス314の名称とスイッチされる。
【0047】 置換された名称を有する修正されたSQLステートメント322が、次いで、
データベースサーバーへ送られる。アカウントTUTOR302のユーザは、実
際には仮想テーブル314へアクセスしている間、そのユーザはオリジナルのテ
ーブル308へアクセスしているものと考える。更に、オリジナルのテーブルの
コピーを作成し且つ単純にSQLステートメントにおいて参照されているそのオ
ブジェクトの名称を変更することによって、オリジナルのテーブルに関して新た
なインデックスを作成する時間がかかり且つ資源を消費する処理に対する必要性
が除去されている。
【0048】 PAFOプログラム316が修正したSQLステートメント322を定義する
ためにSQLステートメント320を変更しているので、データベースはその修
正されたSQLステートメント322を解釈してステップ408における仮想テ
ーブルに対する新たな最適化プラン324を決定する。
【0049】 ステップ410において、データベースサーバーによってリターンされる新た
な最適化プラン324における情報はPAFO手順316によって修正されて修
正した最適化プラン326を定義する。特に、仮想インデックス314及び仮想
テーブル312に対する新たな最適化プラン324における参照は、夫々、オリ
ジナルのインデックス310及びオリジナルのテーブル308に対する参照で置
換される。
【0050】 置換された名称を具備する修正された最適化プラン326がステップ412に
おいてユーザに対して表示される。従って、ユーザにとっては、ユーザがオリジ
ナルのオブジェクト308及び310のみで作業しているかのように見える。上
述した方法を使用して、インデックスに対する変更を行い且つ新たな最適化プラ
ンを検索するのに必要な時間は、しばしば、数時間から数秒へ減少される。従っ
て、ユーザは、仮想テーブル及び仮想インデックスを使用していることに関心を
払う必要性なしで、即ちそのことに気が付くことなしに、新たな最適化プランを
検索する場合に改善された速度及びシステム性能を単純に享受する。
【0051】 次いで、ユーザは修正された最適化プラン326をオリジナルのテーブル30
8及びオリジナルのインデックス310に対して作成されたオリジナルの最適化
プランと比較することが可能である。新たな最適化プランがより望ましいもので
ある場合、例えばそれがSQLステートメント320を実行する場合にデータベ
ースの速度及び効率を改善するようなものである場合には、ユーザはオリジナル
のテーブル308に関して実際に仮想インデックス314を構築すべく選択する
ことが可能である。逆に、性能が改善されないような場合には、ユーザは異なる
仮想インデックス314で試行を行うか、又はそうでなければ仮想インデックス
314を構築するために必要とされる時間と資源とを無駄にすることなしにオリ
ジナルのインデックス310を使用して継続することが可能である。
【0052】 図3及び4に関して上述した機能の各々は、同一のオブジェクトに関して複数
個のユーザによって同時的に実施することが可能である。これらの機能は該オブ
ジェクトの他のユーザと干渉することはなく、又性能に関して著しいインパクト
を有するものでもなく、それらを生産システムに関して実施することを可能とす
る。
【0053】 1つの例においては、ユーザが図3のTUTOR302アカウントへログオン
する。この例においては、アカウントPAFO−HR304におけるオリジナル
のテーブル308は会社又は事業所の従業員の名前を格納しているテーブルであ
り、そうであるから、以後「EMPLOYEES」(従業員)テーブルと呼称す
る。TUTOR302はPAFO−HRのアカウントに関してREAD特権が許
可されており、従ってTUTOR302はEMPLOYEESテーブルに対して
クエリーを送ることが可能である。
【0054】 EMPLOYEESテーブルに対して仮想テーブル312が作成されており、
その仮想テーブル名は「T ########1」である。オリジナルのSQL
ステートメント320は以下の通りである。
【0055】
【数2】
【0056】 以下のSQLステートメントが修正されたSQLステートメント322として
サーバーへ送られ、オリジナルのテーブル名「EMPLOYEES」は仮想テー
ブル名「T ########1」と置換される。
【0057】
【数3】
【0058】 SQLステートメント320が最適化ヒントを包含している場合には、PAF
O316がオリジナルのテーブル名「EMPLOYEES」を包含するヒント、
又はそのヒントに対するパラメータとしてそれに関連するインデックスのうちの
1つをチェックする。例えば、ユーザが以下のSQLステートメント320で作
業しているものと仮定する。
【0059】
【数4】
【0060】 ユーザがSQLステートメント320に対する最適化プランを観察することを
要求する場合には、以下のメッセージが修正されたSQLステートメント322
としてデータベースサーバーへ送られる。
【0061】
【数5】
【0062】 システム内の崩壊を回避するために、各ユーザは、好適には、仮想テーブルで
ある「T ########1」を定義するためにEMPLOYEESテーブル
の単一のコピーを作成することが許可されるに過ぎない。各ユーザは、好適には
、コピーがそのユーザに対して既に作成されている場合には、新たなコピーを作
成することが制限される。
【0063】 以下に説明する手順の場合には、仮想テーブル名ではなく、好適には、オリジ
ナルのテーブルの名前が特定される。従って、例えば、ユーザがEMPLOYE
ESテーブルに関して最初の仮想インデックスを作成する場合には、ユーザは2
番目の仮想インデックスを作成するか又はEMPLOYEESテーブルの仮想コ
ピーに関するインデックスを削除することが可能であるが、テーブル名パラメー
タはオリジナルのテーブルの名前であるべきである。後者の場合には、ユーザが
前に作成した仮想テーブルを再使用する場合には、PAFOパッケージは、検索
されるインデックス名がオリジナルのテーブルに関して存在することを確保する
。例えば、以下のSQLクエリーを使用することが可能である。
【0064】
【数6】
【0065】 最後に、オリジナルのテーブルに関して存在していたインデックスの名前のみ
が通常リターンされるので、作成された仮想インデックスは以下のようなステー
トメントでクエリーが発生されるべきである。
【0066】
【数7】
【0067】 尚、(「owner1」、「index1」)対はリターンされたインデックス
の所有者及び名前である。
【0068】 この例においては、データベースクエリーに対する最適化プランに関するデー
タベーステーブルに対するインデックスの変化の影響を観察するために以下のス
テップが使用される。
【0069】ステップ1:仮想テーブル作成 仮想テーブルが未だに作成されていないものと仮定して、仮想テーブルを作成す
るために以下の手順を実行することが可能である。
【0070】
【数8】
【0071】 仮想テーブルが既に存在している場合には、エラー条件がリターンされる。パ
ラメータは以下の如くに定義される。
【0072】
【表1】
【0073】 表1において、VARCHAR2(30)は最大で30個のキャラクタからな
るキャラクタストリングを表わしている。更に、MODE=INPUTはデータ
が手順へ入力されることを表わしている。逆に、以下のテーブルにおいて使用さ
れるように、MODE=OUTPUTはデータが手順から検索されることを表わ
している。
【0074】ステップ2:仮想テーブル及びインデックス名の定義 仮想テーブルを作成した後に、仮想テーブルの名前及び仮想インデックスを定
義するためにコピーしたインデックスの名前をリターンするために以下の手順を
実行することが可能である。
【0075】
【数9】
【0076】
【表2】
【0077】 ステップ2のコール即ち発呼は、通常、CREATE VIRTUAL TA
BLE手順を使用して仮想テーブルを作成したことを仮定する。このことは、仮
想テーブルがクラスター内に存在する場合には、そのクラスターがオリジナルの
テーブルが存在するのと同一のクラスターであることを意味している。即ち、そ
の仮想テーブルは、クラスターしていないテーブルをクラスターさせることの要
求の結果でない。そうでない場合には、エラーがリターンされる。
【0078】ステップ3:デフォルト統計量 オリジナルのテーブルに関して作成されたインデックスを有することと等価な
最適化プランが作成されることを確保するために新たな仮想インデックスは、好
適には、現実的な統計量を有している。EXPLAIN VIRTUALは適宜
の統計量を設定する上でユーザを助けるために手順DEFAULT NEW
NDEX STATSを提供する。
【0079】 オリジナルのテーブルが既存のインデックスを有している場合には、格納情報
及びこれらのインデックスの統計量が使用されて仮想インデックスに対するデフ
ォルトの格納情報及び統計量を発生する。既存のインデックスが解析されない場
合には、制限されたデフォルトが使用可能である。
【0080】 DEFAULT NEW INDEX STATSを実行した後に、そのデフ
ォルト格納情報及び統計量は表示及び修正のためにPAFOへリターンされる。
そのユーザは、インデックスの特性をより良く識別するためにこれらの統計量を
変更することが許可される。それらの統計量をどのようにして変更するかをユー
ザが決定することを助けるために、PAFOはテーブルに関して現在作成されて
いるその他のインデックスに関する統計量をユーザが表示することを許容する。
【0081】 デフォルト統計量を得るために以下の手順を実行することが可能である。
【0082】
【数10】
【0083】 パラメータの定義は以下の如くである。
【0084】
【表3】
【0085】 *1:各アレイ要素に対する値がヌルで終端しており且つ適宜のOCIバインド
パラメータにおいて各要素の実際の長さのアレイを特定することを確保する。
【0086】 手順DEFUALT NEW INDEX STATSを実行する場合に以下
のエラーコードを発生することが可能である。2番目の列はエラーの記述及び、
可能である場合には、括弧内においてどのようにしてユーザがそのエラーを解消
することが可能であるかの記述を包含している。
【0087】
【表4】
【0088】 出力パラメータは実行される次の手順EXPLAIN VIRTUAL.CR
EATE VIRTUAL INDEXへ入力される。又、注意すべきことであ
るが、ユーザがアクセスを有することのないテーブル空間上にユーザがインデッ
クスを作成しようとする蓋然性がある。
【0089】ステップ4:仮想インデックス作成 オリジナルのテーブルの既存のインデックスは、好適には、仮想インデックス
を定義するためにコピーされる。インデックス統計量及び格納情報もコピーされ
る。この目的のために、以下の手順を実行することが可能である。
【0090】
【数11】
【0091】 パラメータはステップ3において上に定義されている。
【0092】ステップ5:最終ステップ この時点において、PAFOは上述した如く新たなWHAT IFフレームを
作成し、オリジナルのSQLテキストを表示する。ユーザは、そのテキストを修
正し且つヒントを付加することが許容される。SQLフレームからの「タグ」が
コピーされ且つ同一の順番が使用される。例えば、SQLフレームラベルがSQ
L:HISTORY;1である場合には、WHAT IFフレームはWHAT
IF:HISTORY;1のラベルが付けられるべきである。
【0093】 ユーザが最適化プランを要求する場合には、PAFOはSQLフレームに関し
てではなく、説明したSQLテキストを変更すべきである。然しながら、SQL
はオリジナルのSQLステートメントのように見えるべきである。従って、この
手順は、望ましくは、SQLテキストのコピーを作成し且つオリジナルのテーブ
ル名(:table name)の全てをテーブルコピー名(:temp ta
ble name)で置換させる。
【0094】 SQLステートメントがオリジナルのテーブルを指し示すために同義語(ロー
カル又はパブリック)を使用する場合には、その修正されたSQLテキストは仮
想テーブルの所有者と仮想テーブル名の両方を包含すべきである。ヒントがその
テーブル又はそのテーブルに関するインデックスを参照する場合には、ヒントパ
ラメータも変更されることが必要である場合がある。次いで、プランが作成され
且つメモリ内に検索される。
【0095】 各OBJECT OWNERとOBJECT NAMEとの組合わせに対して
、OPERATION(オペレーション)列が「TABLE」で開始するが、そ
の一時的なテーブル名はオリジナルの名前(:table name)へ変更さ
れるべきである。
【0096】 上のステップ2においてリターンされる仮想インデックスの各々に対して、こ
れらの仮想インデックス名に対して最適化プランがサーチされ且つオリジナルの
インデックス名と置換されるべきである。仮想インデックスがアレイ(:ori
ginal index owners,:original index
ames)において識別される。関連する置換インデックス名がアレイ内に格納
される(:virtual index names)。従って、PAFOは、
OPERATION列がテキスト「INDEX」で開始する各ステップをサーチ
する。OBJECT OWNER及びOBJECT NAMEがORIGINA
INDEX OWNER(0)及びVIRTUAL INDEX NAME
(0)の値と一致する場合には、そのインデックス名はORIGINAL IN
DEX NAME(0)へ変更されるべきである。このことは、好適には、アレ
イ要素の各々に対して繰返し行われる。
【0097】 次いで、修正されたプランが表示され、作成された仮想インデックスが性能に
影響を与えたか否かをユーザに報告する。
【0098】 「OBJECT」タブ内の情報を表示する場合に、PAFOは、好適には、ス
テップ4及び5において上述したのと同一の変更を行い、即ち、PAFOはEM
PLOYEESではなくT ########1に対するインデックスを表示す
る。然しながら、ユーザに対して情報を表示する場合には、PAFOはT1の代
わりにEMPLOYEESの名前を使用すべきである。又、インデックスを表示
する場合には、関連するORIGINAL INDEX NAME値を表示すべ
きである。
【0099】 ユーザが仮想テーブル名又はそのインデックスのうちの1つのいずれかを包含
するプランの1つのステップをクリックすると、関連する仮想インデックスに対
する統計量を表示すべきである。従って、ユーザはEMPLOYEESをクリッ
クし、ユーザはEMPLOYEESの名前を見るが、PAFOはT #####
###1に対する統計量をリストする。EMPLOYEESに関するインデック
スについても同じことが言える。
【0100】仮想インデックス削除 この手順によって削除することが可能な唯一のインデックスは、好適には、仮
想テーブルに属するものである。従って、仮想テーブルが存在しない場合には、
それを作成すべきである。仮想テーブルは手順CREATE VIRTUAL TABLEを介して作成される。次いで、ユーザはどのテーブルからインデック
スを削除することを望むかを表示することが可能である。次いで、以下のステッ
プを使用することが可能である。
【0101】ステップ1 ユーザがアクセスを有する全てのテーブルをリスト
【数12】
【0102】ステップ2 選択されたテーブルが仮想であるか否かを決定
【数13】
【0103】 そのクエリーが1つの行をリターンする場合には、仮想コピーが存在している
。そうでない場合には、その仮想テーブルを作成する(上の仮想インデックス作
成におけるステップ1参照)。
【0104】ステップ3 仮想テーブルに関する仮想インデックスをリスト 仮想テーブルに関する仮想インデックスをリスト(上の仮想インデックス作成
におけるステップ2参照)。
【0105】ステップ4 仮想インデックス削除 仮想インデックスのうちの1つを削除するためには、以下の手順を実施する。
【0106】
【数14】
【0107】
【表5】
【0108】クリーンアップ 特定の仮想テーブルを削除し且つPAFOリポジトリィにおける関連情報をク
リーンアップするために、以下の手順を実行することが可能である。
【0109】
【数15】
【0110】
【表6】
【0111】 全ての仮想テーブルを削除するためには以下を実行する。
【0112】
【数16】
【0113】 理解すべきことであるが、上述した特定の実施例は本発明の原理を例示するもの
に過ぎず、且つ本発明の範囲及び精神を逸脱することなしに当業者によって種々
の修正を行うことが可能である。従って、本発明の範囲は特許請求の範囲によっ
てのみ制限される。
【図面の簡単な説明】
【図1】 SQLステートメントに対する最適化プランに関するデータベー
ステーブルに対するインデックスに対する変化の影響を観察するための従来の方
法100のフローチャート。
【図2】 本発明の例示的実施例を実現することが可能な例示的なハードウ
エア環境を示したブロック図。
【図3】 本発明の例示的実施例に基づくデータベースクエリーに対する最
適化プランに関するデータベーステーブルに対するインデックスに対する変化の
影響を観察するためのシステムを示したブロック図。
【図4】 本発明の例示的実施例に基づくデータベースクエリーに対する最
適化プランに関するデータベーステーブルに対するインデックスに対する変化の
影響を観察するための方法のフローチャート。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,MZ,SD,SL,SZ,TZ,UG ,ZW),EA(AM,AZ,BY,KG,KZ,MD, RU,TJ,TM),AE,AG,AL,AM,AT, AU,AZ,BA,BB,BG,BR,BY,CA,C H,CN,CR,CU,CZ,DE,DK,DM,DZ ,EE,ES,FI,GB,GD,GE,GH,GM, HU,ID,IL,IN,IS,JP,KE,KG,K P,KR,KZ,LC,LK,LR,LS,LT,LU ,LV,MA,MD,MG,MK,MN,MW,MX, NO,NZ,PL,PT,RO,RU,SD,SE,S G,SI,SK,SL,TJ,TM,TR,TT,TZ ,UA,UG,UZ,VN,YU,ZA,ZW (72)発明者 メノン, スリークマー アメリカ合衆国, ニュージャージー 07054, パーシッパニー, パイン ツ リー プレイス 6 (72)発明者 ボ, ハン−ブオン アメリカ合衆国, カリフォルニア 94103, サン フランシスコ, シェリ ダン ストリート 62, ナンバー 1 Fターム(参考) 5B075 ND34 NK54 5B082 GA08

Claims (9)

    【特許請求の範囲】
  1. 【請求項1】 データベース管理システムにおいて、データベース内に格納
    されているデータを具備するオリジナルのテーブルに対する参照を具備するクエ
    リーに対するオリジナルの最適化プランに対する変化を観察するための方法にお
    いて、 仮想テーブルを画定するためのデータを排除してオリジナルのテーブルをコピ
    ーし、 前記仮想テーブルと関連する仮想インデックスを供給し、 前記クエリーにおいて、前記オリジナルのテーブルに対する参照を前記仮想テ
    ーブルに対する参照と置換し、 前記仮想インデックスに対する参照を前記クエリーへ付加し、 前記クエリーに対する新たな最適化プランを決定する、 ことを包含している方法。
  2. 【請求項2】 請求項1において、更に、新たな最適化プランをオリジナル
    の最適化プランと比較することを包含している方法。
  3. 【請求項3】 請求項2において、更に、新たな最適化プランとオリジナル
    の最適化プランとを比較する前に、 新たな最適化プランにおいて前記仮想テーブルに対する参照を前記オリジナル
    のテーブルに対する参照で置換し、 ユーザに対して前記オリジナルのテーブルに対する参照を有する新たな最適化
    プランを表示する、 ことを包含している方法。
  4. 【請求項4】 データベース管理システムにおいて、 (i)データベース内に格納されているデータを具備するオリジナルのテーブ
    ルに対する参照、及び(ii)前記オリジナルのテーブルと関連するオリジナル
    のインデックスに対する参照を具備しているクエリーに対するオリジナルの最適
    化プランに対する変化を観察するための方法において、 仮想テーブルを画定するデータを排除して前記オリジナルのテーブルをコピー
    し、 前記仮想テーブルと関連する仮想インデックスを画定するために前記オリジナ
    ルのインデックスを変化させ、 前記クエリーに対する新たな最適化プランを決定する、 ことを包含している方法。
  5. 【請求項5】 請求項4において、更に、新たな最適化プランをオリジナル
    の最適化プランと比較することを包含している方法。
  6. 【請求項6】 請求項5において、更に、新たな最適化プランをオリジナル
    の最適化プランと比較する前に、 新たな最適化プランにおいて、仮想テーブルに対する参照及び仮想インデック
    スに対する参照を、夫々、オリジナルのテーブルに対する参照及びオリジナルの
    インデックスに対する参照と置換させ、 オリジナルのテーブルに対する参照及びオリジナルのインデックスに対する参
    照を具備する新たな最適化プランをユーザに対して表示する、 ことを包含している方法。
  7. 【請求項7】 データベース管理システムにおいて、(i)データベース内
    に格納されているデータを具備するオリジナルのテーブルに対する参照及び(i
    i)オリジナルのテーブルと関連するオリジナルのインデックスに対する参照を
    具備しているクエリーに対するオリジナルの最適化プランに対する変化を観察す
    るための方法において、 仮想テーブルを画定するテーブルを排除してオリジナルのテーブルをコピーし
    、 前記クエリーにおいて、オリジナルのテーブルに対する参照を仮想テーブルに
    対する参照で置換させ、 仮想テーブルに対する参照を前記クエリーから削除し、 前記クエリーに対する新たな最適化プランを決定する、 ことを包含している方法。
  8. 【請求項8】 請求項7において、更に、新たな最適化プランをオリジナル
    の最適化プランと比較することを包含している方法。
  9. 【請求項9】 請求項8において、更に、新たな最適化プランをオリジナル
    の最適化プランと比較する前に、 新たな最適化プランにおいて、仮想テーブルに対する参照をオリジナルのテー
    ブルに対する参照で置換させ、 オリジナルのテーブルに対する参照を具備する新たな最適化プランをユーザに
    対して表示する、 ことを包含している方法。
JP2001511602A 1999-07-20 2000-07-19 クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム Pending JP2003505766A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/356,797 1999-07-20
US09/356,797 US6560593B1 (en) 1999-07-20 1999-07-20 Method and apparatus for viewing the effect of changes to an index for a database table on an optimization plan for a database query
PCT/US2000/040424 WO2001006417A1 (en) 1999-07-20 2000-07-19 A database system for viewing effects of changes to a index for a query optimization plan

Publications (1)

Publication Number Publication Date
JP2003505766A true JP2003505766A (ja) 2003-02-12

Family

ID=23402992

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001511602A Pending JP2003505766A (ja) 1999-07-20 2000-07-19 クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム

Country Status (12)

Country Link
US (2) US6560593B1 (ja)
EP (1) EP1206746B1 (ja)
JP (1) JP2003505766A (ja)
KR (1) KR20020031390A (ja)
CN (1) CN1361890A (ja)
AU (1) AU768487B2 (ja)
BR (1) BR0012684A (ja)
CA (1) CA2379767A1 (ja)
HK (1) HK1046177A1 (ja)
IL (2) IL147694A0 (ja)
WO (1) WO2001006417A1 (ja)
ZA (1) ZA200200389B (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249531A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd テーブル構造決定及び通知システム
JP2013517574A (ja) * 2010-01-15 2013-05-16 アビニシオ テクノロジー エルエルシー データクエリの管理
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
WO2017183065A1 (ja) * 2016-04-19 2017-10-26 株式会社シスバンク リレーショナルデータベースのチューニング装置及び方法
US9891901B2 (en) 2013-12-06 2018-02-13 Ab Initio Technology Llc Source code translation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225865A1 (en) * 1999-09-03 2004-11-11 Cox Richard D. Integrated database indexing system
US6938031B1 (en) * 2001-10-19 2005-08-30 Data Return Llc System and method for accessing information in a replicated database
US6938044B1 (en) * 2001-12-28 2005-08-30 Ncr Corporation Tracking usage of resources of a database system
US7587394B2 (en) * 2003-09-23 2009-09-08 International Business Machines Corporation Methods and apparatus for query rewrite with auxiliary attributes in query processing operations
US7606792B2 (en) * 2004-03-19 2009-10-20 Microsoft Corporation System and method for efficient evaluation of a query that invokes a table valued function
US8510269B2 (en) * 2004-05-21 2013-08-13 Ca, Inc. Uninterrupted database index reorganization/movement
US7797286B2 (en) * 2004-05-21 2010-09-14 Sap Ag System and method for externally providing database optimizer statistics
US7711692B2 (en) * 2004-11-12 2010-05-04 International Business Machines Corporation Method, system and program product for rewriting view statements in structured query language (SQL) statements
US20060136380A1 (en) * 2004-12-17 2006-06-22 Purcell Terence P System and method for executing a multi-table query
US7457797B2 (en) * 2005-03-30 2008-11-25 International Business Machines Corporation Method and apparatus for associating logical conditions with the re-use of a database query execution strategy
US7908242B1 (en) * 2005-04-11 2011-03-15 Experian Information Solutions, Inc. Systems and methods for optimizing database queries
US7610265B2 (en) * 2005-04-29 2009-10-27 Sap Ag Data query verification
US7805434B2 (en) * 2006-01-12 2010-09-28 International Business Machines Corporation Performing a non-invasive runtime simulation for a database system
JP5068062B2 (ja) * 2006-10-30 2012-11-07 インターナショナル・ビジネス・マシーンズ・コーポレーション データベースを統合するためのシステム、方法、およびプログラム
KR100833540B1 (ko) * 2006-11-30 2008-05-29 인하대학교 산학협력단 다중 연속 질의에서 슬라이딩 윈도우 집계 질의 최적화를위한 시스템 및 그 방법
KR100778328B1 (ko) * 2007-01-19 2007-11-21 주식회사 퓨전소프트 가상칼럼을 이용한 데이터베이스에서의 질의 최적화 방법
CN101021874B (zh) * 2007-03-21 2010-05-26 金蝶软件(中国)有限公司 一种对查询sql请求进行优化的方法及装置
US8285656B1 (en) 2007-03-30 2012-10-09 Consumerinfo.Com, Inc. Systems and methods for data verification
US7761471B1 (en) * 2007-10-16 2010-07-20 Jpmorgan Chase Bank, N.A. Document management techniques to account for user-specific patterns in document metadata
US7970757B2 (en) * 2008-03-17 2011-06-28 International Business Machines Corporation Computer program product for database query optimization
US9189047B2 (en) 2008-05-08 2015-11-17 International Business Machines Corporation Organizing databases for energy efficiency
US8312007B2 (en) * 2008-05-08 2012-11-13 International Business Machines Corporation Generating database query plans
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
KR200453964Y1 (ko) * 2008-08-20 2011-06-09 신유진 위치추적기능 및 위급상황송출기능을 갖는 머리핀
KR101022643B1 (ko) * 2008-11-20 2011-03-22 서울대학교산학협력단 전자 카탈로그 관리 장치 및 방법
US9147042B1 (en) 2010-11-22 2015-09-29 Experian Information Solutions, Inc. Systems and methods for data verification
US8635195B2 (en) * 2011-05-19 2014-01-21 International Business Machines Corporation Index compression in a database system
US11030562B1 (en) 2011-10-31 2021-06-08 Consumerinfo.Com, Inc. Pre-data breach monitoring
GB2504716A (en) 2012-08-07 2014-02-12 Ibm A data migration system and method for migrating data objects
US9342547B2 (en) 2012-10-31 2016-05-17 International Business Machines Corporation Management of memory usage using usage analytics
CN103049521B (zh) * 2012-12-19 2015-11-11 广东电子工业研究院有限公司 可实现多属性复合条件查询的虚拟表索引系统及方法
US9697263B1 (en) 2013-03-04 2017-07-04 Experian Information Solutions, Inc. Consumer data request fulfillment system
US10102536B1 (en) 2013-11-15 2018-10-16 Experian Information Solutions, Inc. Micro-geographic aggregation system
US9529851B1 (en) 2013-12-02 2016-12-27 Experian Information Solutions, Inc. Server architecture for electronic data quality processing
US10262362B1 (en) 2014-02-14 2019-04-16 Experian Information Solutions, Inc. Automatic generation of code for attributes
US10628393B2 (en) * 2015-06-24 2020-04-21 International Business Machines Corporation Generating data tables
CA3050139A1 (en) 2017-01-31 2018-08-09 Experian Information Solutions, Inc. Massive scale heterogeneous data ingestion and user resolution
CN108460079B (zh) * 2018-01-08 2021-03-26 平安科技(深圳)有限公司 数据库监控方法、装置、终端设备及存储介质
CN109145004A (zh) * 2018-08-29 2019-01-04 智慧互通科技有限公司 一种创建数据库索引的方法及装置
US10963434B1 (en) 2018-09-07 2021-03-30 Experian Information Solutions, Inc. Data architecture for supporting multiple search models
US10942910B1 (en) 2018-11-26 2021-03-09 Amazon Technologies, Inc. Journal queries of a ledger-based database
US11119998B1 (en) 2018-11-26 2021-09-14 Amazon Technologies, Inc. Index and view updates in a ledger-based database
US11196567B2 (en) 2018-11-26 2021-12-07 Amazon Technologies, Inc. Cryptographic verification of database transactions
US11036708B2 (en) * 2018-11-26 2021-06-15 Amazon Technologies, Inc. Indexes on non-materialized views
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
CN111367892B (zh) * 2020-03-31 2024-01-19 中国建设银行股份有限公司 数据迁移方法及装置
US11880377B1 (en) 2021-03-26 2024-01-23 Experian Information Solutions, Inc. Systems and methods for entity resolution

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0320266A3 (en) * 1987-12-11 1992-03-11 Hewlett-Packard Company View composition in a data base management system
US5335345A (en) * 1990-04-11 1994-08-02 Bell Communications Research, Inc. Dynamic query optimization using partial information
US5555409A (en) 1990-12-04 1996-09-10 Applied Technical Sysytem, Inc. Data management systems and methods including creation of composite views of data
US5347653A (en) 1991-06-28 1994-09-13 Digital Equipment Corporation System for reconstructing prior versions of indexes using records indicating changes between successive versions of the indexes
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
FR2696853B1 (fr) * 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion, de base de données relationnel et procédé d'analyse syntaxique en résultant.
US5301317A (en) * 1992-04-27 1994-04-05 International Business Machines Corporation System for adapting query optimization effort to expected execution time
US5404510A (en) 1992-05-21 1995-04-04 Oracle Corporation Database index design based upon request importance and the reuse and modification of similar existing indexes
FR2696852B1 (fr) * 1992-10-12 1994-12-23 Bull Sa Procédé d'aide à l'optimisation d'une requête d'un système de gestion de base de données relationnel.
US5560007A (en) 1993-06-30 1996-09-24 Borland International, Inc. B-tree key-range bit map index optimization of database queries
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
US5671403A (en) * 1994-12-30 1997-09-23 International Business Machines Corporation Iterative dynamic programming system for query optimization with bounded complexity
US5608904A (en) * 1995-02-13 1997-03-04 Hewlett-Packard Company Method and apparatus for processing and optimizing queries having joins between structured data and text data
US5758145A (en) 1995-02-24 1998-05-26 International Business Machines Corporation Method and apparatus for generating dynamic and hybrid sparse indices for workfiles used in SQL queries
US5694591A (en) * 1995-05-02 1997-12-02 Hewlett Packard Company Reducing query response time using tree balancing
US5745904A (en) 1996-01-12 1998-04-28 Microsoft Corporation Buffered table user index
US5765168A (en) 1996-08-09 1998-06-09 Digital Equipment Corporation Method for maintaining an index
US5765147A (en) 1996-11-21 1998-06-09 International Business Machines Corportion Query rewrite for extended search capabilities
US5913207A (en) * 1997-08-15 1999-06-15 Microsoft Corporation Database system index selection using index configuration enumeration for a workload
US5960428A (en) * 1997-08-28 1999-09-28 International Business Machines Corporation Star/join query optimization
US5943666A (en) * 1997-09-15 1999-08-24 International Business Machines Corporation Method and apparatus for optimizing queries across heterogeneous databases
US6006220A (en) * 1997-09-30 1999-12-21 International Business Machines Corporation Determining the optimal access path for a query at execution time using an actual value for each variable in a query for estimating a filter factor

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4749899B2 (ja) * 2006-03-15 2011-08-17 株式会社日立ソリューションズ テーブル構造決定及び通知システム
JP2007249531A (ja) * 2006-03-15 2007-09-27 Hitachi Software Eng Co Ltd テーブル構造決定及び通知システム
KR20170121272A (ko) * 2010-01-15 2017-11-01 아브 이니티오 테크놀로지 엘엘시 데이터 쿼리 관리
JP2013517574A (ja) * 2010-01-15 2013-05-16 アビニシオ テクノロジー エルエルシー データクエリの管理
KR101877481B1 (ko) * 2010-01-15 2018-07-11 아브 이니티오 테크놀로지 엘엘시 데이터 쿼리 관리
JP2015212968A (ja) * 2010-01-15 2015-11-26 アビニシオ テクノロジー エルエルシー データクエリの管理
JP2017016677A (ja) * 2010-01-15 2017-01-19 アビニシオ テクノロジー エルエルシー データクエリの管理
US9665620B2 (en) 2010-01-15 2017-05-30 Ab Initio Technology Llc Managing data queries
KR101784785B1 (ko) 2010-01-15 2017-10-12 아브 이니티오 테크놀로지 엘엘시 데이터 쿼리 관리
US11593369B2 (en) 2010-01-15 2023-02-28 Ab Initio Technology Llc Managing data queries
US9116955B2 (en) 2011-05-02 2015-08-25 Ab Initio Technology Llc Managing data queries
US10521427B2 (en) 2011-05-02 2019-12-31 Ab Initio Technology Llc Managing data queries
US9576028B2 (en) 2011-05-02 2017-02-21 Ab Initio Technology Llc Managing data queries
US9891901B2 (en) 2013-12-06 2018-02-13 Ab Initio Technology Llc Source code translation
US10282181B2 (en) 2013-12-06 2019-05-07 Ab Initio Technology Llc Source code translation
US10289396B2 (en) 2013-12-06 2019-05-14 Ab Initio Technology Llc Source code translation
US11106440B2 (en) 2013-12-06 2021-08-31 Ab Initio Technology Llc Source code translation
US10437819B2 (en) 2014-11-14 2019-10-08 Ab Initio Technology Llc Processing queries containing a union-type operation
US10417281B2 (en) 2015-02-18 2019-09-17 Ab Initio Technology Llc Querying a data source on a network
US11308161B2 (en) 2015-02-18 2022-04-19 Ab Initio Technology Llc Querying a data source on a network
US10216773B2 (en) 2016-04-19 2019-02-26 Sysbank Co., Ltd. Apparatus and method for tuning relational database
JP2017194778A (ja) * 2016-04-19 2017-10-26 株式会社シスバンク リレーショナルデータベースのチューニング装置及び方法
WO2017183065A1 (ja) * 2016-04-19 2017-10-26 株式会社シスバンク リレーショナルデータベースのチューニング装置及び方法
US11093223B2 (en) 2019-07-18 2021-08-17 Ab Initio Technology Llc Automatically converting a program written in a procedural programming language into a dataflow graph and related systems and methods

Also Published As

Publication number Publication date
EP1206746B1 (en) 2016-09-07
CN1361890A (zh) 2002-07-31
US20020010701A1 (en) 2002-01-24
HK1046177A1 (zh) 2002-12-27
US6898588B2 (en) 2005-05-24
AU768487B2 (en) 2003-12-11
EP1206746A4 (en) 2004-09-15
US6560593B1 (en) 2003-05-06
WO2001006417A1 (en) 2001-01-25
EP1206746A1 (en) 2002-05-22
KR20020031390A (ko) 2002-05-01
BR0012684A (pt) 2002-04-16
AU7135700A (en) 2001-02-05
IL147694A (en) 2007-02-11
IL147694A0 (en) 2002-08-14
CA2379767A1 (en) 2001-01-25
ZA200200389B (en) 2003-03-26

Similar Documents

Publication Publication Date Title
JP2003505766A (ja) クエリー最適化プラン用インデックスに対する変化の効果を観察するためのデータベースシステム
US10108813B2 (en) Query conditions-based security
US5995973A (en) Storing relationship tables identifying object relationships
US6480848B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing DML and DDL statements
US8166070B2 (en) Techniques for sharing persistently stored query results between multiple users
US6128610A (en) Index with entries that store the key of a row and all non-key values of the row
US6418450B2 (en) Data warehouse programs architecture
JP4571746B2 (ja) アプリケーション機能に対するアクセスを選択的に規定するためのシステムおよび方法
US6618719B1 (en) Database system with methodology for reusing cost-based optimization decisions
KR100843651B1 (ko) 추상적 데이터베이스에서의 규칙 애플리케이션 관리
US7174345B2 (en) Methods and systems for auto-partitioning of schema objects
JPH04321143A (ja) データベースオブジェクトのユーザアクセス特権を判定するための方法およびそのシステム
EP1195693A2 (en) Defer dataset creation to improve system manageability for a database system
US6453322B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing multiple units of work
US6421677B1 (en) Extension of data definition language (DDL) capabilities for relational databases for applications issuing DDL statements
US20050262118A1 (en) Uninterrupted database index reorganization/movement
Sack Creating and Configuring Databases
Internals Creating and Configuring Databases