(57)【要約】【課題】データベース・システムにおいて統計ビューを管理する方法、コンピュータ・プログラム製品およびシステムが提供される。【解決手段】本方法、コンピュータ・プログラム製品およびシステムは、データベース・システムにおけるワークロードの最適化および実行に関するデータを収集することと、収集された最適化データおよび実行データに基づき１つ以上の統計ビューのセットを自動的に生成することとを規定する。【選択図】図２
2009529735.tif 000002
【特許請求の範囲】
【請求項１】
データベース・システムにおいて統計ビューを管理する方法であって、
前記データベース・システムにおいて、複数の部分式を含むワークロードの最適化および実行に関するデータを収集するステップと、
前記ワークロード内の前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成するステップと、
を含む方法。
【請求項２】
生成される統計ビューの数は前記ワークロード内の部分式の数よりも少ない、請求項１に記載の方法。
【請求項３】
１つ以上の統計ビューの前記セットから、少なくとも１つの重複した統計ビューを消去するステップをさらに含む、請求項１に記載の方法。
【請求項４】
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、１つ以上の統計ビューの前記セットまたは１つ以上の統計ビューの前記既存のセットから、少なくとも１つの重複した統計ビューを消去するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化するステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
データベース・システムにおいて統計ビューを管理するコンピュータ可読プログラムを含んだコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ可読プログラムは、コンピュータ上で実行されると前記コンピュータに、
前記データベース・システムにおいて、複数の部分式を含むワークロードの最適化および実行に関するデータを収集させ、
前記ワークロード内の前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成させる、
コンピュータ・プログラム製品。
【請求項１０】
生成される統計ビューの数は前記ワークロード内の部分式の数よりも少ない、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
前記コンピュータ可読プログラムは、前記コンピュータ上で実行されると、前記コンピュータにさらに、
１つ以上の統計ビューの前記セットから、少なくとも１つの重複した統計ビューを消去させる、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１２】
前記コンピュータ可読プログラムは、前記コンピュータ上で実行されると、前記コンピュータにさらに、
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成させ、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化させ、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合させる、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１３】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記コンピュータ可読プログラムは、前記コンピュータ上で実行されると、前記コンピュータにさらに、
１つ以上の統計ビューの前記セットまたは１つ以上の統計ビューの前記既存のセットから、少なくとも１つの重複した統計ビューを消去させる、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１４】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記コンピュータ可読プログラムは、前記コンピュータ上で実行されると、前記コンピュータにさらに、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成させ、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化させ、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合させる、
請求項９に記載のコンピュータ・プログラム製品。
【請求項１５】
統計ビューを管理するシステムであって、前記システムは、
前記データベース・システムにおいてワークロードを最適化するよう動作可能なオプティマイザと、
前記データベース・システムにおいて、前記ワークロードを実行するよう動作可能であり、前記オプティマイザに接続されている実行エンジンと、
前記オプティマイザと前記実行エンジンとに接続されているモジュールと、
を含み、前記モジュールは、
前記データベース・システムにおいて、複数の部分式を含む前記ワークロードの最適化および実行に関するデータを収集し、
前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成するよう動作可能である、
システム。
【請求項１６】
生成される統計ビューの数は前記ワークロード内の部分式の数よりも少ない、請求項１５に記載のシステム。
【請求項１７】
前記モジュールは、
１つ以上の統計ビューの前記セットから、少なくとも１つの重複した統計ビューを消去し、
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成し、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化し、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するようさらに動作可能である、
請求項１５に記載のシステム。
【請求項１８】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記モジュールは、
１つ以上の統計ビューの前記セットまたは１つ以上の統計ビューの前記既存のセットから、少なくとも１つの重複した統計ビューを消去し、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成し、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化し、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するようさらに動作可能である、
請求項１５に記載のシステム。
【請求項１９】
前記モジュールは前記オプティマイザの一部である、請求項１５に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、全般的にデータベース・システムに関する。特に、本発明はデータベース・システムにおいての統計ビュー（ｓｔａｔｉｓｔｉｃａｌ  ｖｉｅｗｓ）の管理を対象とする。
【背景技術】
【０００２】
リレーショナル・データベース・システムは、行と列とに組織化されたテーブルにデータを格納する。これによって、大量のデータを格納し、ユーザ・コマンドに応答してこのデータに効率的かつ便利にアクセスできるようになる。ユーザ・コマンドは主として、ＳＥＬＥＣＴ、ＩＮＳＥＲＴ、ＤＥＬＥＴＥおよびＵＰＤＡＴＥなどのＳＱＬ（Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ：構造化照会言語）文の形式で出される。ＳＱＬは宣言型言語であるため、すなわちどのようにデータがアクセスされるかではなくどのデータがアクセスされるかのみを指定するため、データベース・システムは、データにアクセスするための種々の計画を立て、それらの計画を評価して、実行する計画を例えばコストまたはルールに基づき選択するオプティマイザを含む。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
コストベースのオプティマイザに関しては、オプティマイザが利用可能な統計（すなわち、アクセスされる基礎データの情報）に依存して「的確な」計画、すなわち、リソース、時間または両方の組み合わせの点でコストが最も小さい計画が選択される。通常、データベース・システムは、実テーブルのサイズおよび列データの分布など、何らかの基本的な統計を保持している。それらの基本的な統計を使用して、単純な述語（‘ｃｏｌ＝ｖａｌｕｅ’）などの特定の動作のコストを正確に推定することができる。しかし、一部の動作に関連するコストは、推定がずっと難しい。例えば、結合（ｊｏｉｎ）動作のカーディナリティ（ｃａｒｄｉｎａｌｉｔｙ）（すなわち、結果のセットの行数）は、推定が難しいことがよく知られている。さらに、１つの動作のカーディナリティが誤って推定されると、そのエラーはその後の動作に伝播する。
【０００４】
オプティマイザの性能を高めるために、データベース管理者には、データベース・システムによって処理される種々の動作について収集される統計のビュー（すなわち統計ビュー）を手動で宣言するというオプションがある。しかし、或るデータベース・システムに関して宣言可能な統計ビューの数が無限になる可能性もあるため、手動で宣言してそれらのビューをすべて保持するのは、コストがすぐに利得を上回ることになるため実用的でないと考えられる。例えば、多数の統計ビューを格納するために追加の記憶装置が必要とされることになる。加えて、統計ビューを最新に保つのに必要なコストが高すぎることもあると思われる。さらに、実行計画のコンパイル時にすべての統計ビューを検索するためにオプティマイザにかかる時間が、過度のオーバーヘッドとなることもある。
【０００５】
したがって、統計ビューの生成プロセスを自動化するだけではなく、オプティマイザのエラーを最小化する必要性と、統計ビューの生成および保持に関連するコストとのバランスもとる発明が必要とされている。
【課題を解決するための手段】
【０００６】
データベース・システムにおいて統計ビューを管理する方法、コンピュータ・プログラム製品およびシステムが提供される。この方法、コンピュータ・プログラム製品およびシステムは、データベース・システムにおいて、ワークロードの最適化および実行に関するデータを収集することと、収集した最適化データおよび実行データに基づいて、１つ以上の統計ビューのセットを自動的に生成することとを規定する。ワークロードは複数の部分式を含み、１つ以上の統計ビューはそれぞれ、複数の部分式のうちの１つに対応する。
【発明を実施するための最良の形態】
【０００７】
本発明は、全般的にデータベース・システムに関し、特に、データベース・システムにおける統計ビューの管理に関する。以下の説明は、当業者が本発明を構成して使用できるように示され、親出願およびその要求事項に照らして提供される。当業者であれば、本願明細書で説明される好適な実装、ならびに包括的な原理および特徴に対する種々の変更を容易に見出せる。このように、本発明は、示される実装に限定されず、本願明細書で説明される原理および特徴と一致する最大の範囲を与えられるものとする。
【０００８】
図１は、本発明の態様による、データベース・システムにおいて統計ビューを管理するプロセス１００を表す。１０２では、データベース・システムにおいてワークロードの最適化および実行に関するデータが収集される。ワークロードは、ＳＱＬ（構造化照会言語）文など、特定の結果を得るために論理的に集められたコマンドのセットである。各ワークロードは複数の部分式を含み、部分式はＳＱＬ文の全体であることも、一部であることもあり得る。ワークロードの最適化および実行に関するデータには、例えば、データベース・システムにおいてオプティマイザにより推定された、部分式（例えば結合動作）のカーディナリティ、および部分式の実行から結果として得られたセットの実際のカーディナリティが含まれ得る。
【０００９】
１０４で、１つ以上の統計ビューのセットが、収集された最適化データおよび実行データに基づき自動的に生成される。１つ以上の統計ビューはそれぞれ、ワークロード内の複数の部分式のうち１つに対応する。統計ビューは、部分式の結果に関する統計（例えば、カーディナリティ、一意の値の数、最も頻度の高い値など）を含む。その一方、部分式の実体化ビュー（ｍａｔｅｒｉａｌｉｚｅｄ  ｖｉｅｗ）は、部分式の実際の結果を含む。
【００１０】
一実施形態において、生成される統計ビューの数は、ワークロード内の部分式の数より少ない。例えば、統計ビューは、誤ったカーディナリティ推定など、オプティマイザがエラーを起こした部分式に対して生成されるだけでもよい。エラーは、無効な述語依存仮定（ｐｒｅｄｉｃａｔｅ−ｄｅｐｅｎｄｅｎｃｙ  ａｓｓｕｍｐｔｉｏｎ）、大量ｎウェイ結合動作（ｌａｒｇｅ  ｎ−ｗａｙ  ｊｏｉｎ  ｏｐｅｒａｔｉｏｎ）などの結果であることもある。統計ビューは、オプティマイザが困難に陥りやすい部分式、または困難を伴う部分式（例えば、推定の計算に、より長くの時間が必要なもの）に対しても生成されてもよい。このようにして、オプティマイザのエラーを最小化する必要性に対する、統計ビューの生成に関連するコストのバランスがとられる。
【００１１】
図２に示されているのは、本発明の実施形態に従ったデータベース・システム２００である。データベース・システム２００は、オプティマイザ２０２、実行エンジン２０４、モジュール２０６、およびデータベース２０８を含む。データベース・システム２００は、他の実施形態では追加のデータベースおよびコンポーネント（図示せず）を含んでもよい。
【００１２】
ワークロード２１０が、処理を目的としてオプティマイザ２０２により受け取られる。ネットワーク（図示せず）を介してデータベース・システム２００に接続されているクライアント・アプリケーション（図示せず）によって、ワークロード２１０の実行依頼が行われてもよい。オプティマイザ２０２は、ワークロード２１０内の各ＳＱＬ文について、実行計画を立て、それらの計画のうち実行エンジン２０４により実行される１つを選択する。次に、ワークロード２１０の最適化および実行に関する統計がモジュール２０６によって収集される。
【００１３】
モジュール２０６は、収集された最適化データおよび実行データに基づき、１つ以上の統計ビューのセットを自動的に生成する。各統計ビューは、ワークロード２１０内の複数の部分式のうち１つに対応する。これらの統計ビューは、データベース２０８内のカタログ（図示せず）に格納されるようにするとよい。他の実施形態では、モジュール２０６はオプティマイザ２０２の一部であってもよい。
【００１４】
モジュール２０６は、統計ビューの生成および保持に関連するコストと、オプティマイザのエラーを最小化する必要性とのバランスをとるために、ワークロード２１０内の各部分式に対して統計ビューを自動的に生成しなくてもよい。例えば、統計ビューは、オプティマイザ２０２がエラーを起こした部分式に対して生成されるだけでもよい。モジュール２０６は、最適化統計と実行統計とを比較することによってエラーを検出することができるであろう。
【００１５】
モジュール２０６はさらに、重複した統計ビューをチェックおよび消去することによって、データベース・システム２００内に保持される統計ビューの数を減らすことができる。統計ビューは、２つの統計ビューに対応する部分式が同一である場合、または部分式のうち１つがもう１つの部分式のプレフィックスである場合に、別の統計ビューと重複していることになる。
【００１６】
この重複チェックは、１つ以上の統計ビューの新たなセットが生成されるたびに実行されてもよく、または一括して、すなわち１つ以上の統計ビューの新たなセットがいくつか生成されてから実行されてもよい。モジュール２０６は、統計ビューが重複しているかどうかを判断するとき、既に生成されてデータベース２０８内のカタログ内に保持されている統計ビューを考慮するとよい。既存の統計ビュー内の統計が古いこともあるため、モジュール２０６は、新たに作成された統計ビューを削除するよりも、既存の統計ビューを消去するとよい。
【００１７】
統計ビュー数の削減は、非常によく似た統計ビューを１つの一般化統計ビュー（ｇｅｎｅｒａｌｉｚｅｄ  ｓｔａｔｉｓｔｉｃａｌ  ｖｉｅｗ）に一般化することにより行うこともできる。一般化統計ビューは、いくつかの部分式ＥＸ１、ＥＸ２、．．．、ＥＸｎを表し、既知の動作を適用することで任意の部分式ＥＸｉにすることができる部分式ＥＸＧに由来するものであり、ｉ＝１からｎである。例えば、統計ビューが、擬似ＳＱＬコードで書かれた次の部分式それぞれに対して生成されると仮定する：
ＳＥＬＥＣＴ  Ｃ２  ＦＲＯＭ  Ｔ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ  ａｎｄ  Ｃ１＝５ＧＲＯＵＰ  ＢＹ  Ｃ３  ［１］
ＳＥＬＥＣＴ  Ｃ２  ＦＲＯＭ  Ｔ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ  ａｎｄ  Ｃ１＝７ＧＲＯＵＰ  ＢＹ  Ｃ３  ［２］
【００１８】
部分式［１］および［２］は定数のみが異なるため、統計ビューを当該の部分式に基づき定数から独立した１つの統計ビューに一般化すると有利であると思われる。この一般化統計ビューは、同じく擬似ＳＱＬコードで書かれている次の部分式を表すことになる：
ＳＥＬＥＣＴ  Ｃ２，Ｃ１  ＦＲＯＭ  Ｔ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ  ＧＲＯＵＰ  ＢＹ  Ｃ３，Ｃ１  ［３］
【００１９】
その結果、部分式［１］および［２］に対応する統計ビューを削除できる。統計ビューを一般化するという決定においては、その定数に関する正確な統計の喪失とのバランスをとらなければならず、これが重要である場合もある。結果として、一般化が有益かどうかおよび非一般化統計ビューが保持されるべきかどうかを決定する際、基礎をなすテーブルに関連するヒストグラムの検査が有用であることもある。
【００２０】
似ている統計ビューは、基礎をなす部分式すべてを対象とする１つの複合統計ビュー（ｃｏｍｂｉｎｅｄ  ｓｔａｔｉｓｔｉｃａｌ  ｖｉｅｗ）にそれらを統合することによって置換することもできる。たとえば、擬似ＳＱＬコードで書かれた次の部分式［４］および［５］に対して生成される統計ビューは、同じく擬似ＳＱＬコードで書かれた部分式［６］により下に表されている１つの統計ビューに統合できる：
ＳＥＬＥＣＴ  Ｃ２  ＦＲＯＭ  Ｔ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ１  ａｎｄ  Ｃ１＝５ＧＲＯＵＰ  ＢＹ  Ｃ３  ［４］
ＳＥＬＥＣＴ  Ｃ４  ＦＲＯＭ  Ｔ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ２  ａｎｄ  Ｃ１＝７ＧＲＯＵＰ  ＢＹ  Ｃ３  ［５］
ＳＥＬＥＣＴ  Ｃ４，Ｃ２，Ｃ１  ＦＲＯＭＴ１
ＷＨＥＲＥ  Ｃｏｎｄｉｔｉｏｎ１  ｏｒ  Ｃｏｎｄｉｔｉｏｎ２  ＧＲＯＵＰ  ＢＹ  Ｃ３，Ｃ１  ［６］
【００２１】
重複した統計ビューの消去と同様に、統計ビューの一般化および統合は一括して行われることも、または１つ以上の統計ビューのセットが生成されてから行われることも可能である。加えて、モジュール２０６がこれらのパージ・ステップを全部まとめて実行してもよい。さらに、データベース・システム２００内には既存の統計ビューがあることもあるため、一般化または統合あるいはその両方が行われるビューは、新たに生成されたものでも、既存のものでも、または両方の組み合わせでもよい。
【００２２】
図３は、本発明の別の態様による、データベース・システムにおいて統計ビューを管理するプロセス３００を例示する。３０２で、ワークロードの最適化および実行に関するデータが収集される。１つ以上の統計ビューのセットが、収集された最適化データおよび実行データに基づき３０４で自動的に生成される。続いて、少なくとも１つの重複した統計ビューが消去される（３０６）。
【００２３】
３０８で、統計ビューの１つ以上のグループが形成される。実施形態では、この１つ以上のグループはそれぞれ少なくとも２つの統計ビューを含む。少なくとも２つの統計ビューはそれぞれ、１つ以上の統計ビューのセットまたは１つ以上の統計ビューの既存のセットから選択される。続いて、統計ビューの１つ以上のグループのうち少なくとも１つが、１つの統計ビューに一般化または統合される（３１０）。
【００２４】
データベース・システム２００は、統計ビューに加えて実体化ビューも含み得る。モジュール２０６は、データベース・システム２００内の統計ビューおよび実体化ビューの使用の統計を収集することによって実体化ビューと統計ビューとの間の等値を発見できることもあり、統計ビューの実体化ビューへの変換、およびその逆もできる可能性がある。例えば、統計ビューが「ｈｏｔ」（すなわち、オプティマイザ２０２により頻繁に使用されている）であれば、モジュール２０６がその統計ビューを、準備済みの利用可能な結果データを備えた実体化ビューに変換する価値があると思われる。その逆もあり得る。統計データを保ちながらスペースを節約するために、まれにしか使用されない実体化ビューが統計ビューに変換されてもよい。
【００２５】
本発明は、ハードウェアだけの実施形態、ソフトウェアだけの実施形態、またはハードウェアおよびソフトウェアの構成要素両方を含んだ実施形態の形をとることができる。一態様において、本発明は、次に限定されるものではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むソフトウェアに実装される。
【００２６】
さらに、本発明は、コンピュータまたは任意の命令実行システムにより使用されるかまたはそれと関連して使用されるプログラム・コードを提供するコンピュータ使用可能媒体またはコンピュータ可読媒体からアクセス可能な、コンピュータ・プログラム製品という形をとることができる。この説明の目的で、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスによって、またはそれと関連して使用されるプログラムを、含むこと、格納すること、伝達すること、伝播させること、または移送することができる任意の装置とすることができる。
【００２７】
媒体は、電子、磁気、光学、電磁気、赤外線または半導体のシステム（もしくは装置もしくはデバイス）または伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、取外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、読取り専用メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、リジッド磁気ディスク、および光学ディスクが含まれる。光学ディスクの現時点における例には、ＤＶＤ、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｋ  −  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、およびコンパクト・ディスク読取り／書込み（ＣＤ−Ｒ／Ｗ：ｃｏｍｐａｃｔ  ｄｉｓｋ  −  ｒｅａｄ／ｗｒｉｔｅ）が含まれる。
【００２８】
図４に表されているのは、プログラム・コードの格納または実行あるいはその両方に適したデータ処理システム４００である。データ処理システム４００は、システム・バス４０６によってメモリ構成要素４０４ａ〜ｂに接続されているプロセッサ４０２を含む。他の実施形態では、データ処理システム４００は、２つ以上のプロセッサを含んでもよく、各プロセッサがシステム・バスによって１つ以上のメモリ構成要素に直接または間接的に接続されていてもよい。
【００２９】
メモリ構成要素４０４ａ〜ｂは、プログラム・コードを実際に実行する間に用いられるローカル・メモリ、大容量記憶装置、および、実行中にコードが大容量記憶装置から読み出されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含むことができる。図のように、入出力、すなわちＩ／Ｏ（ｉｎｐｕｔ／ｏｕｔｐｕｔ）デバイス４０８ａ〜ｂ（次に限定されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）が、データ処理システム４００に接続されている。Ｉ／Ｏデバイス４０８ａ〜ｂは、直接、または中間のＩ／Ｏ制御装置（図示せず）を介して間接的に、データ処理システム４００に接続されればよい。
【００３０】
実施形態では、データ処理システム４００を、通信リンク４１２によって他のデータ処理システムまたはリモート・プリンタもしくは記憶デバイスに接続できるよう、ネットワーク・アダプタ４１０がデータ処理システム４００に接続されている。通信リンク４１２は、私設ネットワークまたは公衆ネットワークとすることができる。モデム、ケーブル・モデムおよびイーサネット・カードが、現在利用可能な種類のネットワーク・アダプタのほんの一部である。
【００３１】
データベース・システムにおいての統計ビューの管理に関し、種々の実装について説明してきた。それでもなお、当業者であれば、この実装に対して種々の変更を加えることができ、いかなる変形物も本発明の意図および範囲内に入ることになるということが容易に分かるであろう。例えば、上記のプロセス・フローは、プロセス・アクションの特定の順序を参照して説明された。しかし、説明されたプロセスの多くの順序は、本発明の範囲または動作に影響を及ぼすことなく変更され得る。したがって、以下の請求項の意図および範囲から逸脱することなく、当業者により多数の変更が加えられ得る。
【図面の簡単な説明】
【００３２】
【図１】本発明の態様による、データベース・システムにおいて統計ビューを管理する方法のプロセス・フローである。
【図２】本発明の１つの実装に従ったデータベース・システムを例示する。
【図３】本発明の実施形態による、データベース・システムにおいて統計ビューを管理する方法の流れ図を表す。
【図４】本発明の実施形態を実装できるデータ処理システムのブロック図である。
【図１】
2009529735.tif 000003
【図２】
2009529735.tif 000004
【図３】
2009529735.tif 000005
【図４】
2009529735.tif 000006
【手続補正書】
【提出日】平成21年3月13日(2009.3.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データベース・システムにおいて統計ビューを管理する方法であって、
前記データベース・システムにおいて、複数の部分式を含むワークロードの最適化および実行に関するデータを収集するステップと、
前記ワークロード内の前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成するステップと、
を含む方法。
【請求項２】
生成される統計ビューの数は前記ワークロード内の部分式の数よりも少ない、請求項１に記載の方法。
【請求項３】
１つ以上の統計ビューの前記セットから、少なくとも１つの重複した統計ビューを消去するステップをさらに含む、請求項１に記載の方法。
【請求項４】
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化するステップと、
をさらに含む、請求項１に記載の方法。
【請求項５】
１つ以上の統計ビューの前記セットから少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するステップと、
をさらに含む、請求項１に記載の方法。
【請求項６】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、１つ以上の統計ビューの前記セットまたは１つ以上の統計ビューの前記既存のセットから、少なくとも１つの重複した統計ビューを消去するステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに一般化するステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記データベース・システムは１つ以上の統計ビューの既存のセットを含み、前記方法は、
１つ以上の統計ビューの前記セット、１つ以上の統計ビューの前記既存のセット、またはその両方から少なくとも２つの統計ビューをそれぞれが含む、統計ビューの１つ以上のグループを形成するステップと、
統計ビューの前記１つ以上のグループのうち少なくとも１つを、１つの統計ビューに統合するステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
データベース・システムにおいて統計ビューを管理するためのプログラムであって、コンピュータに、
前記データベース・システムにおいて、複数の部分式を含むワークロードの最適化および実行に関するデータを収集するステップと、
前記ワークロード内の前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成するステップと、
を実行させる、プログラム。
【請求項１０】
統計ビューを管理するシステムであって、前記システムは、
前記データベース・システムにおいてワークロードを最適化するよう動作可能なオプティマイザと、
前記データベース・システムにおいて、前記ワークロードを実行するよう動作可能であり、前記オプティマイザに接続されている実行エンジンと、
前記オプティマイザと前記実行エンジンとに接続されているモジュールと、
を含み、前記モジュールは、
前記データベース・システムにおいて、複数の部分式を含む前記ワークロードの最適化および実行に関するデータを収集し、
前記複数の部分式のうち１つにそれぞれ対応する１つ以上の統計ビューのセットを、前記収集された最適化データおよび実行データに基づき自動的に生成するよう動作可能である、システム。
【請求項１１】
前記モジュールは前記オプティマイザの一部である、請求項１５に記載のシステム。
【国際調査報告】
2009529735.tif 000007
2009529735.tif 000008