IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 浙江工商大学の特許一覧

特許7358685リレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法およびシステム
<>
  • 特許-リレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法およびシステム 図1
  • 特許-リレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法およびシステム 図2
  • 特許-リレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法およびシステム 図3
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2023-10-02
(45)【発行日】2023-10-11
(54)【発明の名称】リレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法およびシステム
(51)【国際特許分類】
   G06F 16/22 20190101AFI20231003BHJP
【FI】
G06F16/22
【請求項の数】 1
(21)【出願番号】P 2023015860
(22)【出願日】2023-02-06
【審査請求日】2023-02-06
(31)【優先権主張番号】202210559811.X
(32)【優先日】2022-05-23
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】522207877
【氏名又は名称】浙江工商大学
(74)【代理人】
【識別番号】100216471
【弁理士】
【氏名又は名称】瀬戸 麻希
(72)【発明者】
【氏名】劉細涓
(72)【発明者】
【氏名】楊晨
【審査官】齊藤 貴孝
(56)【参考文献】
【文献】特開平06-110933(JP,A)
【文献】特開平10-111819(JP,A)
【文献】特開2017-194778(JP,A)
【文献】特開平08-221305(JP,A)
【文献】特開平06-214849(JP,A)
【文献】米国特許出願公開第2005/0222975(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
クエリーログ内の各クエリー文を解析するように構成され、クエリー文解析ツリーを生成
し、クエリー文解析ツリー集合を得るための解析ユニットと、
候補インデックス集合を生成するように構成され、クエリ文に基づいてツリー集合を解析
する生成ユニットと、
前記候補インデックス集合中の各候補インデックスのインデックス最適化値を決定するよ
うに構成された決定ユニットと、
決定ユニットは、
インデックス最適化値は、対応する候補インデックスのデータベースシステムに対する
クエリ最適化の程度を特徴づけることができ、
予め訓練された目標値予測モデルを用いて、クエリログ中の各クエリ文に対する候補イ
ンデックスの目標値を決定し、目標値集合を得て、
目標値予測モデルは、候補インデックスとクエリ文の特徴属性が入力であり、目標値を
出力とするモデルであり、実行主体は、予め訓練された目標値予測モデルから得られた出
力結果を、クエリ・ログ内の各クエリ文に対する候補インデックスの目標値として決定す
ることができ、目標値集合における目標値は、候補インデックスが存在する場合にクエリ
文を実行するために必要な実行時間と、候補インデックスが存在しない場合にクエリ文を
実行するために必要な実行時間との差であり、候補インデックスが目標値に対応するクエ
リ文に対して取得できるクエリ最適化効果を特徴づけ、
実行主体は、クエリログ内の第1の目標数のクエリ文と第2の目標数のインデックスを
それぞれクエリ文サンプルとインデックスサンプルとして、クエリ文サンプル集合とイン
デックスサンプル集合を得て、
実行主体は、クエリ文サンプル集合中のクエリ文サンプルの属性特徴とインデックスサ
ンプル集合中のインデックスサンプルの属性特徴とを特徴属性として、特徴属性集合を得
て、特徴属性集合の特徴属性は、クエリ文サンプルがコンパイル段階で取得できる属性値
であり、ここで、クエリ文サンプルのカテゴリ、クエリ文サンプルに係るテーブルのレコ
ードの数、クエリ文サンプルに含まれるオペレータの数、インデックスサンプルが存在す
るデータベースにおけるテーブルのレコードの数、およびインデックスサンプルに含まれ
るフィールドの数は、いずれも解析段階で得られる属性値であり、データベース・インス
タンス内のテーブル内のすべてのフィールドをある順序で並べ、クエリ文サンプルとイン
デックス・サンプルで使用されるフィールドをこの順序で排熱符号化すると、上記クエリ
文サンプル中の条件文選択後に関連するフィールドの符号化と、上記インデックス・サン
プルに含まれるフィールドの符号化が得られ、解析フェーズでは、クエリ文サンプルがイ
ンデックスサンプルのプレフィックス呼び出しの原則を満たしているかどうか、クエリ文
サンプルで更新されたフィールドにインデックスサンプルのフィールドが含まれているか
どうかを比較して、インデックスサンプルがプレフィックス呼び出しの原則を満たしてい
るかどうか、クエリ文サンプルがインデックスサンプルの更新を引き起こすかどうかを識
別し、
実行主体は、クエリ文サンプル集合中の各クエリ文サンプルとインデックスサンプル集
合中の各インデックスサンプルとを組み合わせ、各組み合わせ中のクエリ文サンプルとイ
ンデックスサンプルの特徴属性を少なくとも1つの初期目標値予測サブモデルに入力して
モデル訓練を行い、訓練が完了したモデルを少なくとも1つの目標値予測サブモデルとし
、ここで、上記の少なくとも1つの初期目標値予測サブモデルは、線形予測モデル、勾配
向上決定ツリー、DNN(Deep Neural Network、深度ニューラルネ
ットワーク)を含み、
実行主体は、結合モデルの方法を用いて、少なくとも1つの目標値予測サブモデルにお
ける各目標値予測サブモデルの重みを決定し、
実行主体は、各目標値予測サブモデルの重みに基づいて重み付け加算を行い、目標値予
測モデルを得て、
上記目標値集合における各目標値の和を目標値の総和として決定し、
上記候補インデックスの時間値を決定し、ここで、時間値は、候補インデックスを構築
するのに必要な時間を特徴づけ、
第1の数値と目標値との総和の積と第2の数値と時間値との積の差を、候補インデック
スのインデックス最適化値として決定し、ここで、第1の値及び第2の値は、候補インデ
ックスを構築するためのコストが候補インデックスの実用性に与える影響を調整するため
に事前に設定された且つ事前設定された値の範囲内の値であり、上記の予め設定された値
の範囲は[0,1]であり、第1の値と目標値の総和の積は、候補インデックスのクエリ
最適化効果を特徴づけ、2番目の値と時間値との積は、候補インデックスを構築するため
の時間的コストを特徴づけ、第1の数値と第2の数値との比が大きいほど、候補インデッ
クスを構築するために必要な代価ではなく、候補インデックスがもたらす最適化効果に特
徴づけ、
前記候補インデックス集合の中から、チューニング・インデックス集合として予め設定さ
れた条件を満たす少なくとも1つの候補インデックスを選択する選択ユニットと、
チューニング・インデックス・集合を目標データベースに格納するように構成された記憶
ユニットと、
を含む、リレーショナル・データベース向けのインテリジェント・インデックス・チュー
ニングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の実施例はコンピュータ技術分野に関し、具体的にはリレーショナル・データベー
ス向けのインテリジェント・インデックス・チューニング方法及びシステムに関する。
【背景技術】
【0002】
インテリジェント・インデックス・チューニングは、データベース・インスタンスのイン
デックス調整を行い、データベースの効率的なクエリ・パフォーマンスを維持するための
テクノロジーである。現在、インデックスのチューニングでは、クエリ・ログから推奨イ
ンデックスを取得し、手動で設計されたモデルを使用してインデックスを選択してインデ
ックスを調整する方法が一般的である。
しかしながら、上述のようにインデックス・チューニングを行う場合には、次のような技
術的問題がしばしば存在する。
第一に、データベースインスタンスのインデックスを動的に調整できないため、インデッ
クスを効果的に調整できず、リアルタイムでデータクエリの効率を向上できない。
第二に、クエリ・ログから生成された推奨インデックスがデータベース・インスタンスに
存在しない場合、そのような実在しないインデックスに基づいてクエリのクエリ最適化効
果に対して最適なインデックスを正確に生成することはできない。
第三に、大量の候補インデックスから最適なインデックスを迅速に生成できず、インデッ
クスを生成する速度が遅くなることである。
【発明の概要】
【0003】
本開示のいくつかの実施形態は、上記の背景技術で言及された技術的問題のうちの1つま
たは複数を解決するために、リレーショナル・データベース向けのインテリジェント・イ
ンデックス・チューニング方法およびシステムを提案する。
第1の態様では、本開示のいくつかの実施形態は、クエリー文解析ツリーを生成し、クエ
リー文解析ツリー集合を得るためにクエリーログ内の各クエリー文を解析する。クエリー
文解析ツリー集合を得るためにクエリー文解析ツリーを生成する。上記クエリ文解析ツリ
ー集合に基づいて、候補インデックス集合を生成する。上述の候補インデックス集合中の
各候補インデックスのインデックス最適化値を決定する。前記候補インデックス集合から
、前記少なくとも1つの候補インデックスの各候補インデックスのインデックスサイズの
和が予め設定された閾値以下であり、前記各候補インデックスのインデックス最適化値の
和が最大である予め設定された条件を満たす少なくとも1つの候補インデックスを、予め
設定されたインデックス集合として選択する。上記のチューニング・インデックス集合を
目標データベースに保存する。
第2の態様では、本開示のいくつかの実施形態は、クエリー文解析ツリーを生成し、クエ
リー文解析ツリー集合を得るためにクエリーログ中の各クエリー文を解析するように構成
された解析ユニットと、前記クエリ文に基づいてツリー集合を解析し、候補インデックス
集合を生成するように構成された生成ユニットと、前記候補インデックス集合中の各候補
インデックスのインデックス最適化値を決定するように構成された決定ユニットと、前記
候補インデックス集合の中から、調整インデックス集合として予め設定された条件を満た
す少なくとも1つの候補インデックスを選択する選択ユニットと、上記のチューニング・
インデックス集合を目標データベースに格納するように構成された記憶ユニットと、を含
む。
第3の態様では、本開示のいくつかの実施形態は、1つまたは複数のプロセッサ、1つ以
上のプログラムが1つ以上のプロセッサによって実行され、1つ以上のプロセッサが上記
第1の態様のいずれかに記載の方法を実現するようにする1つ以上のプログラムが格納さ
れている記憶装置である。
第4の態様では、本開示のいくつかの実施形態は、プロセッサによって実行されるときに
上述の第1の態様のいずれかに記載の方法を実装するコンピュータプログラムを格納した
コンピュータ可読媒体である。
【0004】
本開示の上述の各実施形態には、本開示のいくつかの実施形態のリレーショナル・データ
ベース向けのインテリジェントインデックス・チューニング方法により、インデックスを
効果的に調整し、リアルタイムでデータクエリレートを向上させることができるという有
益な効果がある。特に、インデックスを効果的に調整できない理由は、データベース・イ
ンスタンスのインデックスを動的に調整できない。これに基づいて、本開示のいくつかの
実施形態のリレーショナル・データベース向けのインテリジェント・インデックス・チュ
ーニング方法は、まず、クエリーログ内の各クエリー文を解析して、クエリー文解析ツリ
ーを生成し、クエリー文解析ツリー集合を得ることを含む。したがって、適用されるクエ
リー・ログを分析することで、データベース・インスタンスのインデックスを動的に調整
できる。そして、上記クエリ文解析ツリー集合に基づいて、候補インデックス集合を生成
する。したがって、クエリの最適化に最も効果的なインデックスの集合を選択することが
できる。次に、上記の候補インデックス集合の各候補インデックスのインデックス最適化
値を決定する。したがって、各候補インデックスをクエリのクエリ最適化効果に対して量
子化し、各候補インデックスのクエリ最適化効果を視覚的に表現することができる。次に
、上記候補インデックス集合の中から、チューニング・インデックス集合として、予め設
定された条件を満たす少なくとも1つの候補インデックスを選択する。前記予め設定され
た条件は、前記少なくとも1つの候補インデックスにおける各候補インデックスのインデ
ックスサイズの和が予め設定された閾値以下であり、前記各候補インデックスのインデッ
クス最適化値の和が最大であるしたがって、事前設定された(プリセット)閾値を超えず
、クエリ最適化の効果が最も高いインデックス集合が得られる。最後に、上記のチューニ
ング・インデックス集合を目標データベースに格納する。これにより、チューニング後の
インデックスクエリデータを目標データベースで使用できる。これにより、異なるアプリ
ケーションシーンの下で、異なるクエリ文の分析を通じて、データベースインスタンスの
インデックスを動的に調整し、効果的にインデックスを最適化することを実現し、データ
ベースシステムのクエリ性能の向上を実現することができる。
【図面の簡単な説明】
【0005】
図1】本開示によるリレーショナル・データベース向けのインテリジェント・インデックス・チューニング方法のいくつかの実施形態のフローチャートである。
図2】本開示によるリレーショナル・データベース向けのインテリジェント・インデックス・チューニングシステムのいくつかの実施形態の構成図である。
図3図3は、本開示のいくつかの実施形態を実現するのに適した電子機器の構造概略図である。
【発明を実施するための形態】
【0006】
以下、図面を参照し、実施例に関連して本開示を詳細に説明する。
図1は、本開示によるリレーショナル・データベース向けのインテリジェント・インデッ
クス・チューニング方法のいくつかの実施形態のフロー100を示す。リレーショナル・
データベース向けのインテリジェント・インデックス・チューニング方法では、次のステ
ップに従う。
【0007】
ステップ101では、クエリ・ログ内の各クエリ文を解析して、クエリ文解析ツリーを生
成し、クエリ文解析ツリー集合を得る。
いくつかの実施形態では、リレーショナル・データベース向けのインテリジェント・イン
デックス・チューニング方法の実行主体(たとえば計算装置)は、クエリー・ログ内の各
クエリー文を解析してクエリー文解析ツリーを生成し、クエリー文解析ツリー集合を得る
ことができる。ここで、上記クエリ文解析ツリーは、解析ツリーとして表されるクエリ文
であってもよい。
実際には、上述の実行主体は、オープンソースの構文解析器と構文解析器を通じてクエリ
ログ中の各クエリ文を解析し、クエリ文解析ツリーを生成し、クエリ文解析ツリー集合を
得ることができる。
【0008】
ステップ102では、クエリ文解析ツリー集合に基づいて、候補インデックス集合を生成
する。
いくつかの実施形態では、前記実行主体は、前記クエリ文解析ツリー集合に基づいて候補
インデックス集合を生成することができる。
いくつかの実施形態のいくつかの代替的な実施形態では、前記実行主体は、前記クエリ文
解析ツリー集合に基づいて、候補インデックス集合を生成し、以下のステップを含むこと
ができる。
上記のクエリ・ログのクエリ文ごとに、次のインデックス生成ステップを実行する。
最初に、前記クエリ文に対応するクエリ文解析ツリーに基づいて、前記クエリ文に含まれ
るフィールド集合を決定する。
実際には、前記実行主体は、前記クエリ文に対応するクエリ文解析ツリーに含まれる各フ
ィールドをフィールド集合として決定することができる。例えば、上記クエリ文は、「S
ELECT CNO,FNAME FROM CUST WHERE LNAME=:L
NAME AND CNO>:CNO ORDER BY FNAME」であり、上記ク
エリ文に対応するクエリ文解析ツリーに基づいて、上記クエリ文に含まれるフィールド集
合を{CNO,FNAME,LNAME}と決定することができる。
ステップ2において、上記のフィールド集合のフィールドを組み合わせて、予め設定され
た評価条件を満たす少なくとも1つの標準フィールドの組み合わせを生成する。
実際には、前記実行主体は、前記フィールド集合中のフィールドを組み合わせ、予め設定
された評価条件を満たすフィールドの組み合わせを標準フィールドの組み合わせとするこ
とができる。ここで、上記の予め設定された評価条件は、少なくともインデックスサムス
ン評価基準の1つを満たすフィールドの組み合わせであってもよい。予め設定された評価
条件を満たす標準フィールドの組み合わせは、(LNAME、CNO)、(LNAME、
CNO、FNAME)、(LNAME、FNAME、CNO)を含むことができる。
ステップ3では、上記クエリ文の選択条件文に含まれる選択フィールド集合の各フィール
ドサブ集合と上記少なくとも1つの標準フィールドの組み合わせを候補インデックスとし
て決定する。
ここで、上記の選択条件文は、where条件文であってもよい。前記選択フィールド集
合は、前記選択条件文に含まれる各フィールド集合であってもよい。実際には、前記実行
主体は、前記クエリ文の選択条件文に含まれる選択フィールド集合の各フィールドサブ集
合と前記少なくとも1つの標準フィールドの組み合わせを候補インデックスとして決定す
ることができる。例えば、上記クエリ文の選択条件文に含まれる選択フィールド集合は、
{LNAME,CNO}であってもよい。上記候補インデックスは、(CNO)、(LN
AME)、(LNAME、CNO)、(LNAME、CNO、FNAME)、(LNAM
E、FNAME、CNO)とすることができる。
【0009】
ステップ103において、候補インデックス集合中の各候補インデックスのインデックス
最適化値を決定する。
いくつかの実施形態では、上述の実行主体は、候補インデックス集合中の各候補インデッ
クスのインデックス最適化値を決定することができる。ここで、上述のインデックス最適
化値は、対応する候補インデックスのデータベースシステムに対するクエリ最適化の程度
を特徴づけることができる。
いくつかの実施形態のいくつかの代替的な実施形態では、上述の候補インデックス集合の
各候補インデックスについて、上述の実行主体は、以下のステップを実行することができ
る。
ステップ1において、予め訓練された目標値予測モデルを用いて、前記クエリログ中の各
クエリ文に対する前記候補インデックスの目標値を決定し、目標値集合を得る。
前記目標値予測モデルは、前記候補インデックスと前記クエリ文の特徴属性が入力であり
、目標値を出力とするモデルである。実際には、前記実行主体は、予め訓練された目標値
予測モデルから得られた出力結果を、前記クエリ・ログ内の各クエリ文に対する候補イン
デックスの目標値として決定することができる。前記目標値集合における目標値は、前記
候補インデックスが存在する場合に前記クエリ文を実行するために必要な実行時間と、前
記候補インデックスが存在しない場合に前記クエリ文を実行するために必要な実行時間と
の差であり、前記候補インデックスが前記目標値に対応するクエリ文に対して取得できる
クエリ最適化効果を特徴づける。
あるいは、上記目標値予測モデルは、以下のモデル生成ステップにより得られることがで
きる。
第1ステップでは、クエリ文サンプル集合とインデックスサンプル集合を取得する。
実際には、上述の実行主体は、クエリログ内の第1の目標数のクエリ文と第2の目標数の
インデックスをそれぞれクエリ文サンプルとインデックスサンプルとして、クエリ文サン
プル集合とインデックスサンプル集合を得ることができる。例えば、上記第1の目標数は
2000であってもよい。上記第2の目標数は100であってもよい。
ステップ2において、前記クエリ文サンプル集合と前記インデックスサンプル集合とに基
づいて、特徴属性集合を生成する。
ここで、上記特徴属性集合における特徴属性は、限定されないが、クエリ文サンプルのカ
テゴリ(例えば、selectであってもよい)、クエリ文サンプルに関連するテーブル
のレコードの数、クエリ文サンプルに含まれるオペレータの数(例えば、上記オペレータ
はプラス、マイナス、または代入などであってもよい)、クエリ文サンプルにおける条件
文の選択後に係るフィールドの符号化(例えば、上記符号化はutf-8であってもよく
、utf-8は可変長文字符号化である)、インデックスサンプルが存在するデータベー
スにおけるテーブルのレコードの数、インデックスサンプルに含まれるフィールドの数、
インデックスサンプルに含まれるフィールドの符号化、クエリ文サンプルがインデックス
サンプルに対してプレフィックス呼び出しの原則を満たすか否かの識別、クエリ文サンプ
ルがインデックスサンプルの更新を引き起こすかどうかの識別情報である。上述の接頭辞
呼び出しの原則は、クエリ文サンプルの選択条件文にインデックスサンプルが含まれる接
頭辞フィールドであってもよい。
実際には、前記実行主体は、前記クエリ文サンプル集合中のクエリ文サンプルの属性特徴
と前記インデックスサンプル集合中のインデックスサンプルの属性特徴とを特徴属性とし
て、特徴属性集合を得ることができる。上記の特徴属性集合の特徴属性は、クエリ文サン
プルがコンパイル段階で取得できる属性値である。ここで、前記クエリ文サンプルのカテ
ゴリ、前記クエリ文サンプルに係るテーブルのレコードの数、前記クエリ文サンプルに含
まれるオペレータの数、前記インデックスサンプルが存在するデータベースにおけるテー
ブルのレコードの数、および前記インデックスサンプルに含まれるフィールドの数は、い
ずれも解析段階で得られる属性値である。データベース・インスタンス内のテーブル内の
すべてのフィールドをある順序で並べ、クエリ文サンプルとインデックス・サンプルで使
用されるフィールドをこの順序で排熱符号化すると、上記クエリ文サンプル中の条件文選
択後に関連するフィールドの符号化と、上記インデックス・サンプルに含まれるフィール
ドの符号化が得られる。解析フェーズでは、クエリ文サンプルがインデックスサンプルの
プレフィックス呼び出しの原則を満たしているかどうか、クエリ文サンプルで更新された
フィールドにインデックスサンプルのフィールドが含まれているかどうかを比較すること
ができるため、インデックスサンプルがプレフィックス呼び出しの原則を満たしているか
どうか、クエリ文サンプルがインデックスサンプルの更新を引き起こすかどうかを識別す
ることができる。
第3ステップでは、上記特徴属性集合に基づいて、少なくとも1つの初期目標値予測サブ
モデルをそれぞれモデル訓練し、少なくとも1つの目標値予測サブモデルを得る。
実際には、前記実行主体は、前記クエリ文サンプル集合中の各クエリ文サンプルと前記イ
ンデックスサンプル集合中の各インデックスサンプルとを組み合わせ、各組み合わせ中の
クエリ文サンプルとインデックスサンプルの特徴属性を少なくとも1つの初期目標値予測
サブモデルに入力してモデル訓練を行い、訓練が完了したモデルを少なくとも1つの目標
値予測サブモデルとすることができる。ここで、上記の少なくとも1つの初期目標値予測
サブモデルは、線形予測モデル、勾配向上決定ツリー、DNN(Deep Neural
Network、深度ニューラルネットワーク)を含むことができるが、これらに限定
されない。
第4ステップでは、上記少なくとも1つの目標値予測サブモデルにおける各目標値予測サ
ブモデルの重みを決定する。
実際には、前記実行主体は、結合モデルの方法を用いて、前記少なくとも1つの目標値予
測サブモデルにおける各目標値予測サブモデルの重みを決定することができる。
ステップ5では、決定された重みと前記少なくとも1つの目標値予測サブモデルに基づい
て、目標値予測モデルを生成する。
実際には、上記実行主体は、各目標値予測サブモデルの重みに基づいて重み付け加算を行
い、目標値予測モデルを得ることができる。
これにより、異なるサブモデルに重みを与えることができ、各サブモデルの利点を最大に
発揮し、得られた目標値予測モデルの出力結果の精度をより高くすることができる。さら
に、クエリに対する候補インデックスのクエリ最適化効果をより正確に予測することがで
きる。
上述のモデル生成ステップ及びその関連内容は、本開示の実施形態の1つの発明点として
、背景技術で言及された技術問題2「クエリログから生成された推奨インデックスがデー
タベースインスタンスに実際に存在しない可能性があり、そのような実際に存在しないイ
ンデックスに基づいてクエリのクエリ最適化効果に対して最適なインデックスを正確に生
成することができない」を解決した。最適なインデックスを正確に生成できない理由は、
データベース・インスタンスにインデックスが実際に存在しておらず、インデックスが存
在する場合と存在しない場合のクエリ文の実行時間の差によってインデックスの目標値を
決定することができないためである。つまり、インデックスのクエリ最適化の効果である
。このような要因を解決すれば、インデックスが実際に存在しない場合でも、インデック
スのクエリ最適化効果を特定し、最適なインデックスを生成することができる。この効果
を達成するために、まず、目標値予測モデルを構築し、履歴データを用いて訓練を行った
。次に、訓練された目標値予測モデルを使用して、クエリー文に対するリアルインデック
スまたは仮想インデックスのクエリー最適化効果を決定する。さらに、データベースシス
テムに対するインデックスのクエリ最適化効果を決定し、最適なインデックスを生成する
ことができる。
第2ステップでは、上記目標値集合における各目標値の和を目標値の総和として決定する

ステップ3では、上記候補インデックスの時間値を決定する。ここで、前記時間値は、前
記候補インデックスを構築するのに必要な時間を特徴づける。
いくつかの実施形態のいくつかの代替的な実施形態では、上記実行主体は、上記候補イン
デックスの時間値を次のステップにより決定することができる:
ステップ1において、上記候補インデックスが真のインデックスであることを決定するこ
とに応答して、時間値を0に決定する。ここで、上記のリアルインデックスは、データベ
ースインスタンスに実際に存在するインデックスである。
ステップ2において、前記候補インデックスを仮想インデックスとして決定することに応
答して、前記候補インデックスのインデックスサイズと予め設定された単位サイズのイン
デックスを構築するために必要な時間の積を時間値として決定する。ここで、上記の仮想
インデックスはクエリ・ログによって生成され、データベース・インスタンスに実際に存
在しないインデックスである。上記の予め設定された単位サイズは1MBであってもよい
。上記のインデックスサイズは、インデックスが占めるバイトのサイズであってもよい。
ステップ4において、第1の数値と前記目標値との総和の積と第2の数値と前記時間値と
の積の差を、前記候補インデックスのインデックス最適化値として決定する。ここで、前
記第1の値及び前記第2の値は、前記候補インデックスを構築するためのコストが前記候
補インデックスの実用性に与える影響を調整するために事前に設定された且つ事前設定さ
れた値の範囲内の値であってもよい。上記の予め設定された値の範囲は[0,1]でもよ
い。第1の値と前記目標値の総和の積は、前記候補インデックスのクエリ最適化効果を特
徴づけることができる。2番目の値と前記時間値との積は、前記候補インデックスを構築
するための時間的コストを特徴づけることができる。前記第1の数値と前記第2の数値と
の比が大きいほど、前記候補インデックスを構築するために必要な代価ではなく、前記候
補インデックスがもたらす最適化効果に特徴づけられる。
【0010】
ステップ104では、候補インデックス集合の中から、チューニング・インデックス集合
として、予め設定された条件を満たす少なくとも1つの候補インデックスを選択する。
いくつかの実施形態では、上記実行主体は、上記候補インデックス集合の中から、予め設
定された条件を満たす少なくとも1つの候補インデックスをチューニング・インデックス
集合として選択することができる。前記予め設定された条件は、前記少なくとも1つの候
補インデックスにおける各候補インデックスのインデックスサイズの和が予め設定された
閾値以下であり、前記各候補インデックスのインデックス最適化値の和が最大である上記
の予め設定された閾値は、ユーザによって与えられたメモリサイズ閾値であってもよい。
いくつかの実施形態のいくつかの代替的な実施形態では、上記実行主体は、上記候補イン
デックス集合の中から、チューニング・インデックス集合として、予め設定された条件を
満たす少なくとも1つの候補インデックスを選択するステップを実行することができる:
最初に、候補インデックス・集合が空ではないと判断したことに応答して、候補インデッ
クス・集合と予め設定された閾値に基づいて、次の選択ステップを実行する。
第1のサブステップでは、予め設定された閾値制限の下で候補インデックス集合のハッシ
ュ値を現在のハッシュ値として決定する。
ここで、前記ハッシュ値は、予め設定された閾値制限の下での候補インデックス集合の最
大インデックス最適化値及び最適候補インデックス集合を特徴づける。たとえば、候補イ
ンデックス集合は{インデックス1、インデックス2、インデックス3、インデックス4
}である。予め設定された閾値は100MBである。ハッシュ値は、予め設定された閾値
100MBの制限の下で、候補インデックス集合{インデックス1、インデックス2、イ
ンデックス3、インデックス4}の最大インデックス最適化値と最適候補インデックス集
合を決定するためのものである。
第2のサブステップは、決定対象ハッシュテーブル中に前記現在のハッシュ値に対応する
最大インデックス最適化値と最適候補インデックス集合が存在することに応答して、前記
最大インデックス最適化値と前記最適候補インデックス集合を、前記現在のハッシュ値に
対応する最大インデックス最適化値と最適候補インデックス集合として決定する。
なお、前記目標ハッシュテーブルは、前記ハッシュ値を格納するハッシュテーブルであっ
てもよい。
第3のサブステップは、前記目標ハッシュテーブルに前記現在のハッシュ値に対応する最
大インデックス最適化値及び最適候補インデックス集合が存在しないことを決定すること
に応答して、候補インデックス集合の最後の候補インデックスを最下位候補インデックス
と決定し、最下位候補インデックスを除去し、除去後の候補インデックス集合を候補イン
デックス集合として連携させ、前記選択ステップを再度実行する。
第2のステップでは、候補インデックス集合が空であることを決定することに応答して、
0および空集合をそれぞれ、現在のハッシュ値に対応する第1の最大インデックス最適化
値と第1の最適候補インデックス集合として決定する。
いくつかの実施形態のいくつかの代替的な実施形態では、上述の選択ステップは、以下の
プッシュバックステップをさらに含む。
最初に、予め設定された閾値が除去された最終候補インデックスのインデックスサイズ以
上であることを決定したことに応答して、次のステップを実行する。
予め設定された閾値と削除された最終候補索引の索引サイズの差を更新された予め設定さ
れた閾値として決定する第1のサブステップと、得られた0および空集合を現在のハッシ
ュ値の第2の最大索引最適化値と第2の最適候補索引集合として決定する第2の選択ステ
ップとを再び実行する。
第2のサブステップでは、第1の最大インデックス最適化値と除去された最終候補インデ
ックスのインデックス最適化値との和を更新された第2の最大インデックス最適化値とし
て決定し、除去された最終候補インデックスを第1の最適候補インデックス集合に追加し
、追加された第1の最適候補インデックス集合を更新された第2の最適候補インデックス
集合として決定する。
第3のサブステップは、第1の最大インデックス最適化値が第2の最大インデックス最適
化値以上であることを決定することに応答して、第1の最大インデックス最適化値と第1
の最適候補インデックス集合を上記目標ハッシュテーブルに追加し、第1の最大インデッ
クス最適化値と第1の最適候補インデックス集合を現在のハッシュ値の最大インデックス
最適化値と最適候補インデックス集合として決定する。
第4のサブステップでは、第1の最大インデックス最適化値が第2の最大インデックス最
適化値よりも小さいことを決定することに応答して、第2の最大インデックス最適化値と
第2の最適候補インデックス集合を上記目標ハッシュテーブルに追加し、第2の最大イン
デックス最適化値と第2の最適候補インデックス集合を現在のハッシュ値の最大インデッ
クス最適化値と最適候補インデックス集合として決定する。
次に、最後に削除された最後の候補インデックスを候補インデックス集合に追加し、次の
ステップに従う。
第1のサブステップでは、予め設定された閾値制限の下で候補インデックス集合のハッシ
ュ値を現在のハッシュ値として決定する。
例えば、候補インデックス集合が{候補インデックス1、候補インデックス2}であり、
候補インデックス3を除去した集合である場合、除去された最終候補インデックスは候補
インデックス3である。最後に削除された最後の候補インデックスは候補インデックス4
である。前回削除された候補インデックス4を候補インデックス集合に追加し、更新され
た候補インデックス集合{候補インデックス1、候補インデックス2、候補インデックス
3、候補インデックス4}を得る。事前設定された閾値制限の下で候補インデックス集合
のハッシュ値を現在のハッシュ値として決定する。
第2のサブステップでは、最大インデックス最適化値と最適候補インデックス集合を、現
在のハッシュ値に対応する第1の最大インデックス最適化値と第1の最適候補インデック
ス集合として決定し、再び上述のバックプッシュステップを実行する。
ステップ3では、得られた最適候補インデックス集合を上記のチューニング・インデック
ス集合として決定する。
上記選択ステップ及び上記プッシュバックステップ及びその関連内容は、本開示の実施例
の1つの発明点として、背景技術が言及した技術問題3「大量の候補インデックスから最
適なインデックスを迅速に生成することができず、インデックスを生成する速度が遅い」
を解決した。インデックスの生成速度が遅い理由は、データベース・インスタンスが大き
い場合には予め設定された閾値も大きく、インデックスを選択する際には空間的制約の下
でのローカル解を列挙する必要があり、時間的なオーバーヘッドが大きく、最終的な最適
インデックスとはほとんど関係がない。このような要因を解決すれば、インデックス生成
速度を向上させることができる。この効果を達成するために、ハッシュテーブルを使用し
て選択プロセス中の各ハッシュ値を格納し、ハッシュテーブル中に結果が存在しないハッ
シュ値について、候補インデックス集合中にインデックスが1つ捨てられ、インデックス
が1つ選択された場合をさらに比較する。これら2つのケースで取得できるインデックス
最適化値の大きさに基づいて、現在のハッシュ値の結果として、ハッシュテーブルに大き
なインデックス最適化値に対応する結果を記録する。これにより、問題の重複が回避され
、最適なインデックスを生成する速度が向上する。
【0011】
ステップ105において、チューニング・インデックス集合を目標データベースに格納す
る。
いくつかの実施形態では、上記実行主体は、上記チューニング・インデックス集合を目標
データベースに格納することができる。ここで、前記目標データベースは、前記クエリロ
グに対応するデータベースであってもよく、目標データベースでは、前記チューニング・
インデックス集合におけるチューニング・インデックスクエリデータを使用することがで
きる。
本開示のいくつかの実施形態のリレーショナル・データベース向けのインテリジェント・
インデックス・チューニング方法により、インデックスを効果的に調整し、リアルタイム
でデータクエリレートを向上させることができる。特に、インデックスを効果的に調整で
きない理由は、データベース・インスタンスのインデックスを動的に調整できないためで
ある。これに基づいて、本開示のいくつかの実施形態のリレーショナル・データベース向
けのインテリジェント・インデックス・チューニング方法は、まず、クエリーログ内の各
クエリー文を解析して、クエリー文解析ツリーを生成し、クエリー文解析ツリー集合を得
ることを含む。したがって、適用されるクエリー・ログを分析することで、データベース
・インスタンスのインデックスを動的に調整できる。そして、上記クエリ文解析ツリー集
合に基づいて、候補インデックス集合を生成する。したがって、クエリの最適化に最も効
果的なインデックスの集合を選択することができる。次に、上記の候補インデックス集合
の各候補インデックスのインデックス最適化値を決定する。したがって、各候補インデッ
クスをクエリのクエリ最適化効果に対して量子化し、各候補インデックスのクエリ最適化
効果を視覚的に表現することができる。次に、前記候補インデックス集合の中から、前記
少なくとも1つの候補インデックスの中の各候補インデックスのインデックスサイズの和
が予め設定された閾値以下であり、かつ、前記各候補インデックスのインデックス最適化
値の和が最大である予め設定された条件を満たす少なくとも1つの候補インデックスを、
予め設定されたインデックス集合として選択する。したがって、事前設定された閾値を超
えず、クエリ最適化の効果が最も高いインデックス集合が得られる。最後に、上記のチュ
ーニング・インデックス集合を目標データベースに格納する。これにより、チューニング
後のインデックスクエリデータを目標データベースで使用できる。これにより、異なるア
プリケーションシーンの下で、異なるクエリ文の分析を通じて、データベースインスタン
スのインデックスを動的に調整し、効果的にインデックスを最適化することを実現し、デ
ータベースシステムのクエリ性能の向上を実現することができる。
さらに図2を参照すると、本開示は、上述した各図に示された方法の実装として、図1
示された方法の実施形態に対応するリレーショナル・データベース向けのインテリジェン
ト・インデックス・チューニングシステムのいくつかの実施形態を提供し、このシステム
は、具体的には様々な電子機器に適用することができる。
図2に示すように、いくつかの実施形態のリレーショナル・データベース向けのインテリ
ジェントインデックス・チューニングシステム200は、解析部201、生成部202、
判定部203、選択部204、および記憶部205を含む。ここで、解析部201は、ク
エリログ内の各クエリ文を解析してクエリ文解析ツリーを生成し、クエリ文解析ツリー集
合を得るように構成されている。生成部202は、上記クエリ文に基づいてツリー集合を
解析し、候補インデックス集合を生成するように構成されている。決定部203は、上記
候補インデックス集合の各候補インデックスのインデックス最適化値を決定する。選択部
204は、上記候補インデックス集合の中から、調整インデックス集合として、予め設定
された条件を満たす少なくとも1つの候補インデックスを選択するように構成されている
。記憶部205は、上述したチューニング・インデックス集合を目標データベースに記憶
するように構成されている。
このシステム200に記載されたユニットは、図1を参照して説明された方法の各ステッ
プに対応していることが理解される。したがって、上述の方法について説明した動作、特
徴、および生成された有益な効果は、システム100およびその中に含まれるユニットに
も同様に適用され、ここではこれ以上説明しない。
以下、図3を参照すると、本開示のいくつかの実施形態を実現するのに適した電子機器3
00の構造概略図が示されている。図3に示す電子機器は単なる一例であり、本開示の実
施形態の機能及び使用範囲に何ら制限を与えるものではない。
図3に示すように、電子機器300は、読取り専用メモリ(ROM)302に格納された
プログラム、または記憶装置308からランダムアクセスメモリ(RAM)303にロー
ドされたプログラムに従って様々な適切な動作および処理を実行することができる処理装
置(例えば中央プロセッサ、グラフィックプロセッサなど)301を含むことができる。
RAM303には、電子機器300の動作に必要な各種プログラムやデータも記憶されて
いる。処理装置301、ROM302及びRAM303は、バス304を介して互いに接
続されている。バス304には、入出力(I/O)インタフェース305も接続されてい
る。
一般に、以下の装置は、タッチスクリーン、タッチパッド、キーボード、マウス、カメラ
、マイク、加速度計、ジャイロスコープなどを含む入力装置306、液晶ディスプレイ(
LCD)、スピーカ、バイブレータなどを含む出力装置307、例えば、磁気テープ、ハ
ードディスク等を含む記憶装置308、及び通信装置309を含む。通信装置309は、
データを交換するために電子機器300が他のデバイスと無線または有線通信することを
可能にすることができる。図3は、様々な装置を備えた電子機器300を示しているが、
図示された装置のすべてを実施または備える必要はないことが理解されるべきである。代
替的に、より多くまたはより少ない装置を実装または備えることができる。図3に示す各
ブロックは、1つのデバイスを表してもよく、必要に応じて複数のデバイスを表してもよ
い。
【要約】      (修正有)
【課題】データベース・インスタンスのインデックスを動的に調整して、インデックスを効果的に最適化し、クエリ性能を向上するインテリジェント・インデックス・チューニング方法及びシステムを提供する。
【解決手段】方法は、クエリログ内の各クエリ文を解析してクエリ文解析ツリーを生成し、クエリ文解析ツリーの集合を得て、クエリ文解析ツリー集合に基づいて、候補インデックス集合を生成し、候補インデックスの集合内の各候補インデックスのインデックス最適化値を決定し、候補インデックス集合の中から、少なくとも1つの候補インデックスの中の各候補インデックスのインデックスサイズの和がプリセットしきい値以下であり、かつ、各候補インデックスのインデックス最適化値の和が最大であるプリセット条件を満たす少なくとも1つの候補インデックスを調整インデックスセットとして選択し、チューニング・インデックス集合を目標データベースに保存する。
【選択図】図1
図1
図2
図3