【手続補正書】
【提出日】令和3年8月24日(2021.8.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
方法であって、
コンピューティングシステムが、リレーショナルデータベースに格納されたデータをクエリするためのクエリのために生成されたオリジナルのクエリプランを受信するステップを含み、前記オリジナルのクエリプランは、ファクトレコードのソースからファクトレコードをスキャンするように構成された第１のファクトスキャンオペレーションを含み、前記オリジナルのクエリプランはさらに、前記第１のファクトスキャンオペレーションからレコードのセットを受信するように構成された第２のオペレーションを含み、前記方法はさらに、
前記コンピューティングシステムが、前記第１のファクトスキャンオペレーションに関連付けられるべき第１の述語条件を識別するステップと、
前記コンピューティングシステムが、高度化クエリプランを生成するように前記オリジナルのクエリプランを書換えるステップとを含み、前記高度化クエリプランにおいて、前記第１の述語条件は前記第１のファクトスキャンオペレーションに関連付けられており、前記第２のオペレーションは、前記第１の述語条件を満たす１つ以上のスキャンされたファクトレコードだけを受信し、
前記高度化クエリプランは、前記第１の述語条件が前記第１のファクトスキャンオペレーションに関連付けられていることで、前記オリジナルのクエリプランよりも高速で実行される、方法。
【請求項２】
問合わせのための前記データは、事前集約されていないデータである、請求項１に記載の方法。
【請求項３】
前記クエリについてのレコードの結果セットを得るために前記高度化クエリプランを実行するステップと、
前記レコードの結果セットを前記クエリに対する応答として提供するステップとをさらに含む、請求項１または２に記載の方法。
【請求項４】
前記高度化クエリプランの実行は、前記オリジナルのクエリプランの実行よりも、少ない中央処理ユニット（ＣＰＵ）サイクルを要する、請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記第２のオペレーションによって受信されて処理されるファクトレコードの数は、前記オリジナルのクエリプランよりも前記高度化クエリプランの方が少ない、請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記識別するステップは、
前記オリジナルのクエリプランにおける前記第１のファクトスキャンオペレーションを識別するステップを含み、前記第１のファクトスキャンオペレーションは第１のファクトテーブル上で動作し、前記識別するステップはさらに、
前記第１のファクトスキャンオペレーションから始まって、前記オリジナルのクエリプランをウォークして、前記第１のファクトスキャンオペレーションについての１つ以上の適用可能な述語条件のリストを識別するステップを含み、前記適用可能な述語条件のリストは前記第１の述語条件を含む、請求項１〜５のいずれか１項に記載の方法。
【請求項７】
前記識別するステップは、
前記オリジナルのクエリプランにおいて、第１のファクトテーブル上で動作する前記第１のファクトスキャンオペレーションを識別するステップと、
前記オリジナルのクエリプランにおいて、第２のファクトテーブル上で動作する第２のファクトスキャンオペレーションを識別するステップと、
前記オリジナルのクエリプランにおいて、前記第２のファクトテーブルと次元テーブルとの間の結合オペレーションを識別するステップとを含み、前記第１の述語条件は前記次元テーブルに関連付けられており、前記識別するステップはさらに、
前記第１のファクトテーブルと前記第２のファクトテーブルとの間の共通次元を識別するステップを含み、
前記第１の述語条件は、前記共通次元からの属性に基づいている、請求項１〜５のいずれか１項に記載の方法。
【請求項８】
前記識別するステップは、
前記第１のファクトスキャンオペレーションのために適用可能な複数の述語条件を識別するステップと、
前記複数の述語条件における各々の述語条件についての純便益メトリックを演算するステップとを含み、前記複数の述語条件における特定の述語条件についての前記純便益メトリックは、前記ファクトレコードのソースからのファクト行を処理するコストから、前記特定の述語条件を前記第１のファクトスキャンオペレーションに適用するコストを差引いた減少分であり、前記識別するステップはさらに、
前記複数の述語条件について演算された前記純便益メトリックに基づいて、前記第１のファクトスキャンオペレーションについての前記複数の述語条件を順序付けるステップと、
前記順序付けに基づいて前記第１のファクトスキャンオペレーションに関連付けられるべき述語条件を前記複数の述語条件から選択するステップとを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項９】
前記識別するステップは、
前記第１のファクトスキャンオペレーションについての適用可能な述語条件を識別するステップと、
前記適用可能な述語条件についての純便益メトリックを演算するステップと、
前記適用可能な述語条件について演算された前記純便益メトリックに基づいて、前記適用可能な述語条件が前記第１のファクトスキャンオペレーションに関連付けられるべきでないと判断するステップと、
機能依存性情報を用いて、前記適用可能な述語条件から前記第１の述語条件を推論するステップとを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項１０】
前記ファクトレコードのソースは、ファクトレコード、実体化されたビュー、またはオンライン分析処理（ＯＬＡＰ）インデックスを格納するテーブルである、請求項１〜９のいずれか１項に記載の方法。
【請求項１１】
前記第１の述語条件を識別するステップはさらに、
前記オリジナルのクエリプランにおける第３のオペレーションを識別するステップを含み、前記第１の述語条件は前記第３のオペレーションに関連付けられている、請求項１〜５のいずれか１項に記載の方法。
【請求項１２】
前記第３のオペレーションは次元テーブルに関連付けられている、請求項１１に記載の方法。
【請求項１３】
前記第１の述語条件を識別するステップは、
前記第１のファクトスキャンオペレーションに関連付けられるべき第２の述語条件を識別するステップと、
前記第２の述語条件を前記第１の述語条件に変換するステップとを含む、請求項１〜５のいずれか１項に記載の方法。
【請求項１４】
前記変換するステップは、機能依存性情報を用いて、前記第２の述語条件を前記第１の述語条件に変換するステップを含む、請求項１３に記載の方法。
【請求項１５】
前記第２の述語条件は第１の次元フィールドについての値を特定し、前記第１の述語条件は、前記第１の次元フィールドとは異なる第２の次元フィールドについての値を特定し、前記第２の次元フィールドは、次元テーブルまたは前記ファクトレコードのソースにおける列フィールドである、請求項１３または１４に記載の方法。
【請求項１６】
前記オリジナルのクエリプランにおける第１のサブプランを識別するステップをさらに含み、前記第１のサブプランは前記第１のファクトスキャンオペレーションを含み、前記第１のサブプランだけが、１つ以上の集約オペレーション、結合オペレーション、プロジェクトオペレーション、フィルタオペレーション、またはファクトスキャンオペレーションを含み、
前記高度化クエリプランは、前記第１の述語条件が前記第１のファクトスキャンオペレーションに関連付けられている前記第１のサブプランを含む、請求項１〜５、または１０のいずれか１項に記載の方法。
【請求項１７】
スタースキーマに基づいて、前記ファクトレコードのソースが次元テーブルと結合可能であると判断するステップをさらに含み、
前記第１の述語条件は、前記次元テーブルのうち、前記ファクトレコードのソースと結合されるべき次元キーに関連する条件を含む、請求項１〜５、または１０のいずれか１項に記載の方法。
【請求項１８】
前記ファクトレコードのソースはＯＬＡＰインデックスであり、前記ＯＬＡＰインデックスは、テーブルと、前記テーブル内の次元値をインデックス付けするインデックスとを含み、
前記テーブルは、ファクトレコードを格納するファクトテーブルを前記次元値を含む次元テーブルと結合することによって得られるデータを含み、
前記第１の述語条件は、前記ＯＬＡＰインデックスにおける前記次元値に対して評価される、請求項１〜５、８または９のいずれか１項に記載の方法。
【請求項１９】
１つ以上のプロセッサによって実行可能な複数の命令を格納するコンピュータ読取り可能プログラムであって、前記複数の命令は、前記１つ以上のプロセッサによって実行されると前記１つ以上のプロセッサに以下の処理を実行させる命令を含み、前記以下の処理は、
リレーショナルデータベースに格納されたデータをクエリするためのクエリのために生成されたオリジナルのクエリプランを受信する処理を含み、前記オリジナルのクエリプランは、ファクトレコードのソースからファクトレコードをスキャンするように構成された第１のファクトスキャンオペレーションを含み、前記オリジナルのクエリプランはさらに、前記第１のファクトスキャンオペレーションからレコードのセットを受信するように構成された第２のオペレーションを含み、前記以下の処理はさらに、
前記第１のファクトスキャンオペレーションに関連付けられるべき第１の述語条件を識別する処理と、
高度化クエリプランを生成するように前記オリジナルのクエリプランを書換える処理とを含み、前記高度化クエリプランにおいて、前記第１の述語条件は前記第１のファクトスキャンオペレーションに関連付けられており、前記第２のオペレーションは前記第１の述語条件を満たす１つ以上のスキャンされたファクトレコードだけを受信し、前記以下の処理はさらに、
前記クエリについてのレコードの結果セットを得るために前記高度化クエリプランを実行する処理を含み、前記高度化クエリプランは、前記第１の述語条件が前記第１のファクトスキャンオペレーションに関連付けられていることで、前記オリジナルのクエリプランよりも高速で実行され、前記以下の処理はさらに、
前記レコードの結果セットを前記クエリに対する応答として提供する処理を含む、コンピュータ読取り可能プログラム。
【請求項２０】
システムであって、
１つ以上のプロセッサと、
前記１つ以上のプロセッサに連結されたメモリとを含み、前記メモリは前記１つ以上のプロセッサによって実行可能な複数の命令を格納し、前記複数の命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに以下の処理を実行させる命令を含み、前記以下の処理は、
リレーショナルデータベースに格納されたデータをクエリするためのクエリのために生成されたオリジナルのクエリプランを受信する処理を含み、前記オリジナルのクエリプランは、ファクトレコードのソースからファクトレコードをスキャンするように構成された第１のファクトスキャンオペレーションを含み、前記オリジナルのクエリプランはさらに、前記第１のファクトスキャンオペレーションからレコードのセットを受信するように構成された第２のオペレーションを含み、前記以下の処理はさらに、
前記第１のファクトスキャンオペレーションに関連付けられるべき第１の述語条件を識別する処理と、
高度化クエリプランを生成するように前記オリジナルのクエリプランを書換える処理とを含み、前記高度化クエリプランにおいて、前記第１の述語条件は前記第１のファクトスキャンオペレーションに関連付けられており、前記第２のオペレーションは前記第１の述語条件を満たす１つ以上のスキャンされたファクトレコードだけを受信し、前記以下の処理はさらに、
前記クエリについてのレコードの結果セットを得るために前記高度化クエリプランを実行する処理を含み、前記高度化クエリプランは、第１の述語条件が前記第１のファクトスキャンオペレーションに関連付けられていることで、前記オリジナルのクエリプランよりも高速で実行され、前記以下の処理はさらに、
前記レコードの結果セットを前記クエリに対する応答として提供する処理を含む、システム。