JP6669571B2 - リレーショナルデータベースのチューニング装置及び方法 - Google Patents

リレーショナルデータベースのチューニング装置及び方法 Download PDF

Info

Publication number
JP6669571B2
JP6669571B2 JP2016083544A JP2016083544A JP6669571B2 JP 6669571 B2 JP6669571 B2 JP 6669571B2 JP 2016083544 A JP2016083544 A JP 2016083544A JP 2016083544 A JP2016083544 A JP 2016083544A JP 6669571 B2 JP6669571 B2 JP 6669571B2
Authority
JP
Japan
Prior art keywords
tuning
information
data
search
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.)
Active
Application number
JP2016083544A
Other languages
English (en)
Other versions
JP2017194778A (ja
Inventor
圭東 李
圭東 李
俊栄 丁
俊栄 丁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SYSBANK CO.,LTD.
Original Assignee
SYSBANK CO.,LTD.
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 SYSBANK CO.,LTD. filed Critical SYSBANK CO.,LTD.
Priority to JP2016083544A priority Critical patent/JP6669571B2/ja
Priority to US15/317,815 priority patent/US10216773B2/en
Priority to CN201680002045.XA priority patent/CN108027763B/zh
Priority to EP16805264.5A priority patent/EP3456360B1/en
Priority to PCT/JP2016/002458 priority patent/WO2017183065A1/ja
Publication of JP2017194778A publication Critical patent/JP2017194778A/ja
Application granted granted Critical
Publication of JP6669571B2 publication Critical patent/JP6669571B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/21Design, administration or maintenance of databases
    • G06F16/217Database tuning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/23Updating
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

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

Description

本発明は、リレーショナルデータベースのチューニング装置及び方法に関し、特に、リレーショナルデータベースのパフォーマンスを分析及び改善する装置及び方法に関するものである。
各種データベースの方式のうち、リレーショナルデータベースは、現在、最も普及している方式であるが、累積的に増大するデータ量、ユーザ数に対して、レスポンス時間の短縮による性能向上は、パフォーマンスの良否を左右し、ビジネス上重要な課題になっている。
リレーショナルデータベースの性能向上のために、パフォーマンスを分析、改善するチューニング装置(以下、本明細書において「チューニング」とは、リレーショナルデータベースのパフォーマンスを分析及び/又は改善することをいうものとする。)、方法は多数提案されている。比較的簡易なチューニングとしては、高性能なCPUの搭載、メモリの増強などのハードウェアリソースの改善やデータベースオブジェクトの最適化等が考えられる。しかしながら、大規模なテーブルへのアクセスに適切なインデックスが適用されず、非効率なアクセスが大量に発生し、無駄なデータがキャッシュに多数存在している場合、上記チューニング手法では効果的な改善は期待できない。そこで、効果的なパフォーマンス改善のチューニング手法は、照会言語に対するチューニングが主流になっている。
ここで、照会言語とは、リレーショナルデータベースに対して、データベースの作成、削除、情報の登録、検索などの操作を行うために用いられる言語であり、典型的には、SQL(Structual Query Language)である。本明細書では、以下、特に明記しない限り、SQLを例として説明する。
ところで、SQL単位のチューニングは、小規模なデータベースであれば、比較的データベース管理者の技量の差は生じにくい。しかし、大規模なデータベースの場合、SQL単位で分析するには、相当の経験が要求される属人的な手法であるうえ、仮に、当該管理者の経験値が高くても、ボトルネックになっているSQLを捜し当てるのは、大きな作業負荷となり、必ずしも効率的とはいえないという問題がある。
また、SQL単位のチューニングでは、前記ボトルネックとなったSQLを捜し当てた後、最適なインデックスの付加が必要になるが、係るインデックスの付加についても、管理者の技量に依存するため、均質な改善効果は期待できない。
SQL単位の分析の上記問題点を解決するものとして、従来、例えば、データベースに対して実行されたSQLの統計情報を、トランザクション単位でまとめて表示するようにし、それぞれのSQLの利用状況をトランザクションごとに解析することができるデータベースチューニング装置が提案されていた(例えば、特許文献1参照)。この構成によれば、SQLの重複部分を除去したり、利用頻度が極端に高いSQLを他のSQLに振り分けたり、SQLの順番の入れ替え等が可能になり、SQL単位の分析に比べて比較的容易にチューニングを行うことができる。
また、発行された全SQLコマンドの稼働情報を変更履歴として取得し、蓄積された稼働情報に基づいて、処理内容が一致する同種のSQLコマンドごとに実行時間を集計した総実行時間を求め、総実行時間の値が上位半数に含まれるSQLコマンドの処理対象となるカラムに、新たなインデックスを付加するとともに、これらの処理を各SQLコマンドの総実行時間の累計値が最小となるまで繰り返す、インデックスの自動生成・付加システムが提案されていた(例えば、特許文献2参照)。この構成によれば、システム管理者の個人的技量等に関わらず、指定した試行条件下における検索効率および更新効率のバランスがとれた最適なインデックスを自動的に作成・付加して、RDBの運用効率を総合的に向上させることができる。
特開2001−175678号公報 特開平10−111819号公報
しかしながら、上記特許文献1に係る先行技術によれば、SQLのまとめ方が、トランザクション単位になっているため、INSERT、UPDATE及びDELETEを使用した更新処理に限定されており、チューニングにおいて最も重要な検索系の処理には対応できないという問題があった。
また、上記特許文献2に係る先行技術によれば、所定のSQLコマンドの処理対象となるコラムに自動的に作成・付加されたインデックスが、他のSQLコマンドにおいて使用されている場合の影響について何ら考慮されておらず、係る新たなインデックスの作成・付加が、却ってパフォーマンスに悪影響を及ぼすおそれがあった。
本発明は、上記課題を解消させるためのものであり、リレーショナルデータベースの操作で使用される照会言語単位のチューニング作業負荷を軽減しつつ、精度の高い検索系のチューニングを可能にするとともに、チューニング処理対象外のコマンドに対するパフォーマンスの影響も考慮した上で最適なインデックスを提示するチューニング装置及び方法を提供することを目的とする。
上記目的を達成させるために、本発明に係るチューニング装置は、SQL等の個々の照会言語を介して発行されたコマンドをリレーショナルデータベースに対するデータの検索結果を取得するための検索条件情報及び検索方法情報から成る取得パターンとして集約させ、前記発行されたコマンドが実行されたときの所定の実行情報を前記取得パターンと対応させてチューニング情報とし、この各チューニング情報から前記リレーショナルデータベースを構成するオブジェクト単位にチューニング用テーブルを生成することで、チューニングによる分析の対象を物理的に低減させることを最も主要な特徴とする。
すなわち、本発明に係るチューニング装置は、リレーショナルデータベースのパフォーマンスを分析及び改善するチューニング装置であって、
前記リレーショナルデータベースに対して所定の照会言語を介して発行されたすべてのコマンドが、データベースマネージメントシステムで実行されたときの所定の実行情報を収集する収集手段と、
前記各コマンドの実行によってデータの検索結果を取得するための検索条件情報及び検索方法情報を一対の取得パターンとして抽出する抽出手段と、
前記抽出された各取得パターンを前記リレーショナルデータベースのオブジェクト単位に組分けした取得パターン群として一覧可能にグルーピングするとともに、各取得パターンと各取得パターンに対応する前記収集された実行情報とを一連のチューニング情報として構成したチューニング用テーブルを生成する生成手段と、を有することを特徴とする。
この構成によれば、照会言語に対するチューニングを当該照会言語単位に個々に分析するのではなく、取得パターンとしてまとめられた前記オブジェクト単位での分析が可能となる。
前記各取得パターンは、少なくとも、前記データベースマネージメントシステムによって作成された実行計画情報から抽出されたものであればよい。
前記検索条件情報は、例えば、検索対象を絞り込むためのカラムデータと該カラムデータに対する検索条件を前記照会言語で表記した演算子データによって特定し、前記検索方法情報は、前記検索対象を絞り込むためのカラムデータに対して設定されたインデックスデータと前記オブジェクトに対して設定された検索経路を示す走査方式データによって特定すればよい。
前記収集手段が収集する実行情報は、前記実行計画情報のほか、少なくとも、前記各取得パターンの対象となるオブジェクトを参照するための前記照会言語のコマンド数、実行回数、処理の経過時間、CPUの使用時間、待機時間からなる実行実績情報を含むものであればよい。
前記収集手段は、前記リレーショナルデータベースが稼働中に、該リレーショナルデータベースに実際に格納されているオブジェクトとは別に、継続的に更新される仮想のテーブルから前記実行情報を定期的に収集し、時系列に管理するようにしてもよい。
前記収集手段は、前記実行実績情報を、前記リレーショナルデータベース稼働時からの累計データの収集と、前記収集された累計データから所定の算定手段によって得られた前記リレーショナルデータベース稼働後の特定の期間内のデータの収集との2種類のデータを収集可能とするようにしてもよい。
前記各取得パターンの検索条件情報に対する検索方法情報のアクセス効率を所定の演算式によって評点として算出する算出手段を備え、前記生成手段は、算出された前記各評点情報を前記実行情報に含めるようにしてもよい。
前記生成手段は、前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定する選出手段と、選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータからインデックスデータを選定する選定手段とを有し、前記チューニング用テーブルに選定したインデックスデータを含めるようにしてもよい。
前記選定手段は、少なくとも、前記実行実績情報から、前記選定されていないカラムデータの使用回数を優先的選定基準とする第1の基準と、実行回数を優先的選定基準とする第2の基準との2種の選定基準を備え、前記生成手段は、前記チューニング用テーブルから、前記2種の選定基準によって選定されたインデックスデータを選択可能としたものであってもよい。
前記生成手段は、前記選出手段によって特定された取得パターンのインデックスデータと同一のインデックスデータが、前記取得パターン群のいずれかで設定されている数を前記特定された取得パターンに対応させて表示するようにしてもよい。
所定の目的で発行される1以上のコマンド群に付されたクエリオプティマイザに対する指示、コマンドの説明であって、前記コマンドの実行後でも自動的に変更されないテキストに対して、前記コマンド群を特定するIDを付与するID付与手段を有し、前記生成手段は、前記付与されたIDによって特定される前記コマンド群における前記取得パターンを閲覧可能とするようにしてもよい。
さらに、本発明に係るチューニング方法は、リレーショナルデータベースのパフォーマンスを分析及び改善するチューニング方法であって、
前記リレーショナルデータベースに対して所定の照会言語を介して発行されたすべてのコマンドが、データベースマネージメントシステムで実行されたときの所定の実行情報を収集するステップと、
前記各コマンドの実行によってデータの検索結果を取得するために、検索対象を絞り込むためのカラムデータと該カラムデータに対する検索条件を前記照会言語で表記した演算子データによって特定された検索条件情報及び前記検索対象を絞り込むためのカラムデータに対して設定されたインデックスデータと前記オブジェクトに対して設定された検索経路を示す走査方式データによって特定された検索方法情報を一対の取得パターンとして抽出するステップと、
前記抽出された各取得パターンを前記リレーショナルデータベースのオブジェクト単位に組分けした取得パターン群として一覧可能にグルーピングするとともに、各取得パターンと各取得パターンに対応する前記収集された実行情報とを一連のチューニング情報として構成したチューニング用テーブルを生成するステップとを有し、
前記収集は、前記リレーショナルデータベースが稼働中に、該リレーショナルデータベースに実際に格納されているオブジェクトとは別に、継続的に更新される仮想のテーブルから前記実行情報を定期的に収集し、専用のリポジトリに格納するとともに、時系列に管理することによって行われることを特徴とする。
この構成によれば、照会言語に対するチューニングを当該照会言語単位に個々に分析するのではなく、取得パターンとしてまとめられた前記オブジェクト単位での分析が可能になるとともに、分析のターゲットとなるリレーショナルデータベースのオブジェクトデータを直接収集するのではなく、前記ターゲットのデータディクショナリから専用のリポジトリにデータを収集することができる。
前記各取得パターンの検索条件情報に対する検索方法情報のアクセス効率を所定の演算式によって評点として算出するステップを有し、算出された前記各評点情報を前記実行情報に含めるようにしてもよい。
前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定して選出するステップと、選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータからインデックスデータを選定するステップとを有し、前記チューニング用テーブルに前記選定したインデックスデータを含めるようにしてもよい。
前記オブジェクトの設計時に行われる複数の段階のテストにおいて、前記実行情報の収集と前記取得パターンの抽出を順次実行するとともに、前記チューニング用テーブルに加えて、前記抽出された取得パターンの検索条件情報から、前記カラムデータごとに分解し、検索時の使用回数が多い順に前記カラムデータをソートしたテーブルを生成するようにしてもよい。
前記リレーショナルデータベースの本番環境での稼働時において、新たなデータの登録、削除、定義の変更が発生したときに、当該発生の前後におけるチューニング用テーブルの差分から新たに発生した取得パターンを特定するようにしてもよい。
前記実行情報は、前記仮想のテーブルからの定期的な収集に代えて、前記リレーショナルデータベースから直接収集するものとし、前記選定したインデックスデータを介して前記リレーショナルデータベースで検索のシミュレーションを行うと、前記選定されたインデックスを適用する前後の前記実行情報に基づくデータ分布を閲覧できるようにしてもよい。
本発明に係るチューニング装置及びチューニング方法は、前記取得パターンを抽出することにより、SQL等の照会言語単位ではなく、オブジェクト単位でのチューニングを可能とするため、分析する事項を飛躍的に低減でき、チューニング作業の負荷を軽減させることができるという効果を奏する。
また、前記取得パターンによって、照会言語単位の分析では直ちに把握しにくいと考えられる各オブジェクトに対する検索条件情報、検索方法情報を容易に把握することができるため、精度の高い検索系のチューニングを容易に行うことが可能となるという効果を奏する。
さらに、チューニング処理対象外のコマンドに対するパフォーマンスの影響も考慮した上で最適なインデックスを提示することができるという効果を奏する。
図1は本発明に係るチューニング装置のブロック構成図である。 図2は本発明に係るチューニング装置の実行実績情報を取得する期間の算定機能を示した線表図である。 図3は本発明に係るチューニング方法を示したフロー図である。 図4は第1基準のインデックス選定の処理フロー図である。 図5は第2基準のインデックス選定の処理フロー図である。 図6はチューニング用テーブル例を示した図である。 図7は図6の取得パターンの順番1のSQL実行計画情報を示した図である。 図8は図6のチューニング用テーブルの一部を成すチューニング対象の取得パターンのインデックス情報を示した図である。 図9は取得パターンの検索条件情報から検索時の使用回数が多い順にカラムデータをソートしたテーブル例を示した図である。
図1を参照して、1は、本発明に係るチューニング装置である。チューニング装置1は、後述する諸機能を発揮させるための専用装置であってもよいが、好適には、主に、中央処理装置(CPU)、メインメモリ、磁気ディスク、その他周辺機器から構成されるパーソナルコンピュータであればよい。CPUは、主として本発明に係るチューニング装置1の各構成要素の動作を制御する。メインメモリは、CPUが実行する制御プログラムを格納し、CPUによるプログラム実行時の作業領域を提供する。磁気ディスクは、オペレーティングシステム、周辺機器のデバイスドライブ、本発明に係る各種処理を行うプログラムを含む各種アプリケーションを格納する。図1では、専ら本発明の機能の説明に必要となる機能のみを記載し、汎用的に機能する前記諸機能等の説明は省略する。
本実施の形態では、チューニング装置1は、データベースシステムDに接続され、さらに、リレーショナルデータベースシステムDは、ユーザ端末Aに接続されている。リレーショナルデータベースシステムDは、データベース本体D1とデータベース管理システムD2から構成されている。データベース本体D1は、各種テーブル等(以下特に限定しない限り、本実施の形態では「オブジェクト」という。)を蓄積し、データベース管理システムD2は、ユーザ端末Aからの特定データの閲覧要求に応じてデータを抽出するとともに、複数ユーザからのアクセスでデータの矛盾が生じないように監視を行うことでデータベース本体D1を管理、運用する。ユーザ端末Aは、搭載された業務プログラム等のデータベースアプリケーションによって、データベース管理システムD2に対し、SQLコマンドを発行すると、データベース管理システムD2は、当該コマンドの解析、書換処理を介して、処理命令のコマンド群を生成し、効率的な処理手続を実行するために、実行計画を作成する。作成された実行計画(すでに、キャッシュに保存されたものを利用する場合もある。)により、SQLが実行され、前記ユーザが所望した検索の対象となるオブジェクトを提供する。また、データベース管理システムD2は、前記実行されたSQLの実行情報、統計情報等も生成する。ここで、実行情報とは、前記生成された実行計画情報のほか、前記SQLの実行によって得られる情報であり、SQL数、実行回数、実行処理の経過時間、CPUの使用時間、待機時間等の実行実績情報をいう。
なお、本実施の形態では、チューニング装置1と、リレーショナルデータベースシステムDと、ユーザ端末Aとは、別々のハードウェアで構成され、相互に接続されている形態であるが、これに限定する趣旨ではない。したがって、例えば、リレーショナルデータベースシステムDとユーザ端末Aが、同一のハードウェアであってもよく、ユーザ端末Aとチューニング装置1とが同一のハードウェアであってもよい。すなわち、本明細書で記載する機能を発揮する限り、ハードウェア構成は、図1のものに限定されない。
チューニング装置1は、データベース管理システムD2から、前記実行情報を収集する収集部11を備える。収集部11は、本発明に係るチューニングを行うための専用のリポジトリを有し、これに前記実行情報が格納される。収集部11による前記実行情報の収集元は、データベース本体D1が稼働中に、データベース本体D1に実際に格納されているオブジェクトとは別に、継続的に更新される仮想のテーブルである。一般に、リレーショナルデータベースは、データの冗長性を減らすために、閲覧に供する仮想のテーブル(以下「ビュー」という。)を提供するようになっているが、収集部11では、特に、稼働中のデータベースのダイナミックなビュー(以下「動的パフォーマンスビュー」という。)を定期的に取得する。
また、収集部11は、前記実行実績情報の収集のタイミングとして、リレーショナルデータベースシステムDの稼働時からの累計データを収集するものと、前記収集された累計データから算定部111によって得られたリレーショナルデータベースシステムDの稼働後の特定の期間内のデータの収集をするものとの2種類の収集機能を備える。すなわち、図2で示す通り、リレーショナルデータベースシステムDの稼働開始時点R1に対して、チューニング装置1の稼働開始時点をR2とした場合、前記稼働開始時点R1からの累計データを収集するものは、R1からの実行実績情報の収集C1及びC2があり、算定部111で算定された前記C1とC2の差分から、特定の時点R3からのデータを収集するものは、R3からの実行実績情報の収集C3がある。
なお、実行実績情報の収集C1及びC2は、チューニング装置1の稼働開始時点R2において、データベース管理システムD2が、リレーショナルデータベースシステムDの稼働開始時点R1から生成した実行実績情報が含まれるため、チューニング装置1の稼働開始時点R2は、実行実績情報の収集のタイミングに直接関係しない。
以上の通り、収集部11は、実行情報を動的パフォーマンスビューから収集するとともに、実行実績情報の収集のタイミングとして、2種のタイプを選択することが可能なため、チューニングの目的に応じて必要なデータをタイムリーに収集することができる。
収集部11で収集された実行計画情報から、抽出部12では、SQLの実行によってデータの検索結果を取得するための検索条件情報及び検索方法情報を一対の取得パターンとして抽出する。図6で後述するように、前記検索条件情報は、検索対象を絞り込むためのカラムデータと該カラムデータに対する検索条件をSQLで記述された演算子データによって特定し、前記検索方法情報は、前記検索対象を絞り込むためのカラムデータに対して設定されたインデックスデータと前記オブジェクトに対して設定された検索経路を示す走査方式データによって特定する。
一般に、リレーショナルデータベースに対して所望のデータを検索する場合、少数のデータを検索するために、膨大なデータすべてを検索するとアクセス効率が著しく低下する。そこで、通常、インデックスを設定することによってアクセス効率を向上させるが、ある特定のSQLの実行に利するインデックスを設定しても、他のSQLの実行に伴うアクセス効率を低下させる可能性もある。また、特定のオブジェクトへのアクセスの方法は、通常、多数存在し、当該オブジェクトに対して、検索要求ごとに、異なる条件式が設定され、膨大なSQLが使われているため、SQL単位で、高効率なアクセス効率の阻害原因を探ることは多大な作業負荷となるおそれがある。
そこで、本発明に係るチューニング装置1は、アクセス効率の改善点を分析する情報として、前記検索条件情報及び検索方法情報から成る一対の取得パターンを提供する。後述するように、実行されたSQLコマンドをアクセス効率の視点で取得パターンという形式に再構築することにより、分析する対象の数を物理的に低減させるとともに、高精度に前記阻害原因となる部分の特定を可能とする。
さらに、本実施の形態では、チューニング装置1の機能として、前記アクセス効率を所定の計算式で評点化する算出部13を備える。例えば、SQLの実行によって求める件数が1件である場合に、実行計画によって当該データに到達するまでのアクセス件数が、1件と100万件では著しくアクセス効率が異なる。アクセス効率の算出方法は、多種多様なものが考えられるが、算出部13は、前記一対の取得パターンに基づき、下記の通り評点を算出する。
各検索条件情報に対して、所与の評点として100点を付与し、各検索条件情報を構成する各カラムの平均値を求め、当該平均値に対して、各カラムの機能(役割)に応じた調整係数を乗算し、乗算結果の総和を当該取得パターンの評点とする。ここで、調整係数とは、当該カラムの役割が、インデックスによるアクセスの場合、上記平均値を維持(調整係数=1)、インデックスのフィルタリングの場合、上記平均値の半分(調整係数=1/2)、テーブルのフィルタリングの場合、ゼロ(調整係数=0)とする。
例えば、特定の取得パターンにおける検索条件情報が、X、Y、Zの3つのカラムから構成されている場合であって、Xがインデックスアクセス、Yがインデックスフィルタリング、Zがテーブルフィルタリングとすると、下記演算式により、上記特定の取得パターンの評点が求められる。
Figure 0006669571
ただし、前記取得パターンから得られる情報に基づき、アクセス効率を定量的に算出できるものであれば、前記演算式に限定する趣旨ではない。また、前記調整係数も、検索方法情報の走査方式の種類に応じて、さらに細分化した係数を設定してもよい。
収集部11で収集された実行情報、抽出部12で抽出された取得パターン及び算出部13で算出された評点に基づき、生成部14では、チューニング用テーブルを生成する。チューニング用テーブルは、抽出部12で抽出された各取得パターンをオブジェクト単位に組分けした取得パターン群としてグルーピングするとともに、各取得パターンと各取得パターンに対応する収集部11で収集された実行情報、及び算出部13によって算出された評点とを一連のチューニング情報として構成したものである。チューニング用テーブルによって、オブジェクトごとの取得パターン群を一覧し、アクセス効率の悪い取得パターンを容易に特定することが可能となる。また、後述するように、取得パターン群の数は、上記取得パターンの抽出過程からも明らかな通り、SQL数と比較して飛躍的に少ない数に絞り込まれるため、短時間で、アクセス効率の悪い箇所を特定でき、チューニング作業の付加を軽減することが可能となる。
さらに、生成部14は、前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定する選出部141、選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータからインデックスデータを選定する選定部142とを有し、図8で後述するように、前記チューニング用テーブルに、前記選定したインデックスデータを含めることができる。
図3は、本発明に係るチューニング方法の処理フローを示した図である。以下、図1のチューニング装置1を参照しながら説明する。
リレーショナルデータベースシステムDに接続されたチューニング装置1を稼働させ、図2で説明した収集部11の収集タイミングを選択すると、選択されたタイミングに応じて、収集部11で実行情報が収集される(S1)。このとき、実行情報の収集元は、データベース本体D1に格納されたオブジェクトではなく、動的パフォーマンスビューとして表示されるオブジェクトであり、これを定期的に収集する。
収集された実行情報から、抽出部12により、検索条件情報及び検索方法情報から構成される一対の取得パターンを抽出する(S2)。さらに、算出部13により、前記抽出された各取得パターンの検索条件情報に対する検索方法情報のアクセス効率を所定の演算式によって評点として算出してもよい(図示せず)。
収集された実行情報、抽出された取得パターン、さらには、算出された評点に基づき、生成部14により、チューニング用テーブルを生成する(S3)。
生成されたチューニング用テーブルは、抽出部12で抽出された各取得パターンをオブジェクト単位に組分けした取得パターン群としてグルーピングするとともに、各取得パターンと各取得パターンに対応する収集部11で収集された実行情報、及び算出部13によって算出された評点とを一連のチューニング情報として形成するが、前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定して選出する(S4)。
前記選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータから最適なインデックスデータを選定する(S5)。
ここで、選定されたインデックスデータが、他の取得パターンのアクセス効率に影響するかどうかを判断する(S6)。影響がある場合は(S6のN)、再度、前記S5の最適なインデックスの選定を行う。影響がない場合は(S6のY)、全取得パターンのチューニングが終了しているかどうかの確認をし(S7)、終了していなければ(S7のN)、再度、S4のチューニング対象の取得パターンの選出を行い、終了していれば(S7のY)、チューニング結果をリレーショナルデータベースシステムDに反映させて(S8)、チューニングを終了する。
なお、本実施の形態では、図3のS5のインデックスの選定について、前記選定されていないカラムデータの使用回数を優先的選定基準とする第1の基準と、実行回数を優先的選定基準とする第2の基準との2種の選定基準を設けている。
前記第1の基準の処理フローは、図4に示す通りである。第1の基準は、検索条件情報から、カラムの使用頻度を順次絞り込んで最適なインデックスを選定する基準である。
チューニング対象の取得パターンを選出すると(S4)、選出された取得パターンにインデックスとして選定されていないカラムがあるかどうかを判断する(S511)。選定されていないカラムがない場合(S511のN)、選定処理は終了する。一方、選定されていないカラムがある場合(S511のY)、使用回数が最大のカラムを選定する(S512)。
前記選定されたカラムと同等のカラムが複数ない場合(S513のN)、当該選定されたカラムをインデックスとして追加し(S514)、前記S511からのステップを繰り返す。一方、同等のカラムが複数ある場合(S513のY)、検索条件情報の演算子情報で「=」条件での使用回数が多いカラムを選定する(S515)。係る条件で選定されたカラムと同等のカラムが複数ない場合(S516のN)、当該選定されたカラムをインデックスとして追加し(S514)、前記S511からのステップを繰り返す。一方、同等のカラムが複数ある場合(S516のY)、実行回数の多いカラムを選定する(S517)。
前記選定されたカラムと同等のカラムが複数ない場合(S518のN)、当該選定されたカラムをインデックスとして追加し(S514)、前記S511からのステップを繰り返す。一方、同等のカラムが複数ある場合(S518のY)、インデックスを選定せず、既存のインデックスの順番を優先する(S519)。
一方、前記第2の基準の処理フローは、図5に示す通りである。第2の基準は、実行回数が多いカラムを優先して最適なインデックスを選定する基準である。第1の基準との相違は、第1の基準の最初の判断基準であるS512の使用回数が最大のカラムを選定する処理に代えて、使用回数と実行回数を乗算した結果の合計が最大のカラムを選定する処理の点のみである(S522)。その他の処理手順は、第1の基準と同じである(すなわち、第1の基準のS511と第2の基準の521及び第1の基準のS513乃至S519と第2の基準のS523乃至S529は同じである。)
図6は、生成部14によって生成されたチューニング用テーブルT1を示した図である。テーブルの構成は、あくまで例示であって、この構成に限定する趣旨ではない。
チューニング用テーブルT1は、テーブル欄T11と取得パターン及び実行実績情報から成る欄(T111乃至T119)から構成されている。テーブル欄T11は、チューニングの対象となったデータベース本体D1に格納されているオブジェクトの一覧である。各テーブル名の横の括弧内の数字は、当該テーブルを参照するSQLを前記取得パターンとしてまとめた数を示す。
本実施の形態では、テーブル欄T11のトップのテーブルは、「tb01(47)」となっているのでテーブル名「tb01」の取得パターンは、47個あることになる。各テーブルは、括弧内に表示された取得パターン群を有する。そして、所望のテーブルを選択すると(図6では反転表示になっている)、「tb01」の47個の取得パターン及び実行実績情報が各々一連のチューニング情報(タプル)として表示される。すなわち、番号欄T111、取得パターン欄T112、評点欄T113、SQL数欄T114、実行数欄T115、経過時間欄T116、CPU時間欄T117、待機時間欄T118、ブロック数欄T119に表示されたデータから構成された情報を閲覧することができる。なお、取得パターン欄T112は、検索条件情報欄T112aと検索方法情報欄T112bとから構成される。検索条件情報欄T112aの検索条件情報は、カラムデータ(例えば、店舗コードを示す「TENPO_CODE」、日付コードを示す「YM」「YMD」)及び演算子データ(例えば、「=」「<」「>」)で特定される。検索方法情報欄T112bの検索方法情報は、インデックスデータ(例えば「tb01_index01」)及び走査方式データ(例えば「INDEX_RANGE_SCAN」)で特定される。なお、走査方式が、インデックスを使用せず、全表走査の場合は、インデックスデータは表示されず、例えば「tb01_TABLE_ACCESS_FULL」という表示で特定される。
取得パターンは、実行情報のうち、実行計画情報から抽出されて取得されるが、図7は、図6の取得パターン中、順番1の 実行計画情報Pを示す図である。P1は、所定のインデックスから選別されたデータの特別な走査方式でテーブルにアクセスすることを示している。この特別な走査方式は、データベース内にデータ・ファイル、データ・ブロック及びレコードの番号をピンポイントで特定するもの(ROWID)であり、これを指定してアクセスすると、直接目的のレコードを含むデータ・ブロックへのアクセスが可能となるため、高速の検索を実現することができる。P2は、P1の所定のインデックス、走査方式を示している(INDEX RANGE SCAN)。また、P3は、P1のデータフィルタリング情報、P4は、P2の詳細実行情報を示している。
図8は、図6のチューニング対象となる取得パターンが使用しているインデックス情報テーブルT2であり、チューニング用テーブルの一部を成すものである。インデックス情報テーブルT2は、番号欄T211、インデックス名欄T212、インデックスの使用数欄T213、カラム欄T214及びT215、改善インデックス欄T216、S Q L 数欄T217、実行数欄T218、経過時間欄T219、CPU時間欄T220、待機時間欄T221、ブロック数欄T222から構成される。
評点を参照すると、番号欄T111の1番目は、33であるため、改善の余地があると判断される。そこで、チューニング対象の取得パターンとしてこれを選出すると、その取得パターンのインデックス情報テーブルT2(図8)が表示されるようになっている。なお、この選出は、評点の閾値を設定しておき、閾値以下の取得パターンが自動的に選出され、対応するインデックス情報テーブルT2が表示されるようにしてもよい。チューニングによる最適インデックスは、図6の検索条件情報、検索方法情報、図8の現行使用しているインデックス名、カラムに基づいて選定が行われる。選定されたインデックスが図6の他の取得パターンに影響を与えるか否かを図6の検索条件情報から判断し、影響範囲を考慮の上、最終的に最適インデックスが決定される。
図6の順番1の取得パターンはテーブル「TB01」に対し、以下のように特定店舗コードの特定日のデータを参照している(下記の通り、使用インデックス詳細情報P4 、データフィルタリング情報P3から判断可能である)。
filter((“TB01”.“YM”='201007' AND “TB01”.“YMD”=TO_CHAR(LAST_DAY(TO_DATE(“TB01”.“YM”||‘01’、‘yyyymmdd’))、‘yyyymmdd’)))
access(“TB01”.“TEMPO_CODE”=‘0000001939’)
上記取得パターンは、図6の順番1の検索方法情報と図8の順番1のインデックスのカラム情報から店舗コード(TEMPO_CODE)のみを参照し、データを選別しているので特定の店舗コードの全てのデータを読み取っているという非効率が発生していることがわかる。
そこで、図8のインデックス情報テーブルT2の改善インデックス欄T216では、図6の順番1の検索条件情報を参照し、「基準1(YM)(YMD)」のインデックスを最適インデックスカラムとして追加することを提示している。最適インデックスカラムとして「YM」、「YMD」を追加すれば、図6の順番1のアクセスパターンの特定店舗コードの全てのデータを読み取る非効率は解消され、特定店舗コードの特定日データを取得することによりアクセス効率は改善される。
なお、最適インデックスカラムの追加のとき、図8のインデックス情報テーブルT2の使用数欄T213を参照すると、同等のインデックスが、4か所で使用されていることがわかる。最終的には、これら4つの影響範囲を考慮して最適インデックスカラムの追加の選定を決定すればよい。
図9は、取得パターンの検索条件情報から検索時の使用回数が多い順にカラムデータをソートしたテーブルT3である。オブジェクトの設計時に行われる複数の段階のテスト(例えば、単体テスト、結合テスト及び総合テストなど)において、図6の場合同様、前記実行情報の収集と前記取得パターンの抽出を順次実行し、設計時のチューニング用テーブルを生成する。そして、生成部14は、抽出された取得パターンの検索条件情報T31をカラムデータごとに分解し、前記各テスト段階の検索において使用回数が多い順に前記カラムデータをソートしたテーブルT34を生成する。一般に、リレーショナルデータベースにおいて、インデックスは一番多く使用されているカラムに設定することを原則としているので、テーブルT34から、「YMD」をインデックスカラムとして最優先で設定できるということが分かる。
ところで、リレーショナルデータベースシステムDには、各SQLに自動的にIDを付与し、当該IDがどのようなアクセスをするか追跡可能なものがあるが、例えば、検索条件が変わるたびに、新たなIDが付与されるため、前記IDでは、ある項目の検索状況の追跡又は特定の開発者が設定したSQLの評価を行う場合など、特定の目的による追跡、評価を正確に行うことができない。
そこで、チューニング装置1は、係る追跡を正確ならしめるために、所定のSQL群に不動のIDを付与するID付与部を有するものとしてもよい(図示せず)。ID付与部は、例えば、SQL文において、所定の目的で発行される1以上のコマンド群に付されたクエリオプティマイザに対する指示、コマンドの説明(以下「コメント等」という。)のように、所定の記号(通常、スラッシュ及びアスタリスク)によって囲まれ、コマンドの実行後でも自動的に変更されないテキストに対してIDを付与するようにすればよい。コメント等の末尾の特定桁分をIDとして認識できるように設定すればよい。
係るIDを付与されたコマンド群は、前記のように新たなIDが付与されることなく維持されるため、当該IDによって正確な追跡が可能となる。チューニング装置1では、係るIDを検索すると、生成部14において、当該IDで特定されるコマンド群の実行情報と取得パターンを表示するテーブルが生成され、これを閲覧可能とすれば、上記追跡を正確に行うことができる。
リレーショナルデータベースシステムDの本番環境での稼働時において、新たなデータの登録、削除、定義の変更が発生したときに、当該発生の前後における2つのチューニング用テーブルの差分、すなわち、従前の取得パターンにない新たな取得パターンの発生を特定して表示させ、当該特定表示された取得パターンのうち、評点が、所定の閾値以下のものについて、最適なインデックスの検討を行うことができるようにしてもよい(図示せず)。
また、前記実行情報の収集を動的パフォーマンスビューから、チューニング装置1側に設けたリポジトリに定期的に収集する形態に代えて、リレーショナルデータベースシステムDから直接収集するようにしてもよい(図示せず)。この構成によれば、前記選定したインデックスデータを介して前記リレーショナルデータベースで検索のシミュレーションを行うと、前記選定されたインデックスを適用する前後の実行情報が閲覧可能となり、併せてデータ分布情報を提供することができ、チューニングの成果をダイレクトかつ迅速に取得することができる。
以下、本発明に係るチューニング装置1を所定の条件下で稼働させた場合の作業量と、チューニング装置1を使用せず、SQL単位でのチューニングを行った場合の作業量の比較を示す。作業期間は、3カ月であり、リレーショナルデータベースの規模は、SQL数が1,000,000、テーブル数が1,400であり、作業を行った技術者のランクは、いずれも同じである(少なくとも、SQL単位のチューニングについては、予め学習する必要がないスキルを有している)。
Figure 0006669571
表1からも明らかな通り、チューニング装置1の環境構築、利用方法の理解に10人日の作業量を要しているにもかかわらず、実作業フェーズ(分析、運用・監視)段階では、すべてにおいてチューニング装置1を使用した方が、効率的に作業を完了しており、特に、分析フェーズの機能別の作業では顕著な仕事量の差が認められた。
1 チューニング装置
11 収集部
12 抽出部
13 算出部
14 生成部
111 算定部
141 選出部
142 選定部
A ユーザ端末
D リレーショナルデータベースシステム
D1 データベース本体
D2 データベース管理システム
T1 チューニング用テーブル
T2 インデックス情報テーブル

Claims (17)

  1. リレーショナルデータベースのパフォーマンスを分析及び改善するチューニング装置であって、
    前記リレーショナルデータベースに対して所定の照会言語を介して発行されたすべてのコマンドが、データベースマネージメントシステムで実行されたときの所定の実行情報を収集する収集手段と、
    前記各コマンドの実行によってデータの検索結果を取得するための検索条件情報及び検索方法情報を一対の取得パターンとして抽出する抽出手段と、
    前記抽出された各取得パターンを前記リレーショナルデータベースのオブジェクト単位に組分けした取得パターン群として一覧可能にグルーピングするとともに、各取得パターンと各取得パターンに対応する前記収集された実行情報とを一連のチューニング情報として構成したチューニング用テーブルを生成する生成手段と、を有することを特徴とするチューニング装置。
  2. 前記抽出手段は、少なくとも、前記データベースマネージメントシステムによって作成された実行計画情報から前記各取得パターンを抽出することを特徴とする請求項1記載のチューニング装置。
  3. 前記検索条件情報は、検索対象を絞り込むためのカラムデータと該カラムデータに対する検索条件を前記照会言語で表記した演算子データによって特定し、前記検索方法情報は、前記検索対象を絞り込むためのカラムデータに対して設定されたインデックスデータと前記オブジェクトに対して設定された検索経路を示す走査方式データによって特定することを特徴とする請求項1又は請求項2記載のチューニング装置。
  4. 前記収集手段が収集する実行情報は、前記実行計画情報のほか、少なくとも、前記各取得パターンの対象となるオブジェクトを参照するための前記照会言語のコマンド数、実行回数、処理の経過時間、CPUの使用時間、待機時間からなる実行実績情報を含むことを特徴とする請求項2又は請求項3記載のチューニング装置。
  5. 前記収集手段は、前記リレーショナルデータベースが稼働中に、該リレーショナルデータベースに実際に格納されているオブジェクトとは別に、継続的に更新される仮想のテーブルから前記実行情報を定期的に収集し、時系列に管理することを特徴とする請求項1から請求項4までのいずれか1項に記載のチューニング装置。
  6. 前記収集手段は、前記実行実績情報を、前記リレーショナルデータベース稼働時からの累計データの収集と、前記収集された累計データから所定の算定手段によって得られた前記リレーショナルデータベース稼働後の特定の期間内のデータの収集との2種類のデータを収集可能とすることを特徴とする請求項4又は請求項5記載のチューニング装置。
  7. 前記各取得パターンの検索条件情報に対する検索方法情報のアクセス効率を所定の演算式によって評点として算出する算出手段を備え、前記生成手段は、算出された前記各評点情報を前記実行情報に含めることを特徴とする請求項2から請求項6までのいずれか1項に記載のチューニング装置。
  8. 前記生成手段は、前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定する選出手段と、選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータからインデックスデータを選定する選定手段とを有し、前記チューニング用テーブルに選定したインデックスデータを含めることを特徴とする請求項3から請求項7までのいずれか1項に記載のチューニング装置。
  9. 前記選定手段は、少なくとも、前記実行実績情報から、前記選定されていないカラムデータの使用回数を優先的選定基準とする第1の基準と、実行回数を優先的選定基準とする第2の基準との2種の選定基準を備え、前記生成手段は、前記チューニング用テーブルから、前記2種の選定基準によって選定されたインデックスデータを選択可能としたものであることを特徴とする請求項8記載のチューニング装置。
  10. 前記生成手段は、前記選出手段によって特定された取得パターンのインデックスデータと同一のインデックスデータが、前記取得パターン群のいずれかで設定されている数を前記特定された取得パターンに対応させて表示することを特徴とする請求項8又は請求項9記載のチューニング装置。
  11. 所定の目的で発行される1以上のコマンド群に付されたクエリオプティマイザに対する指示又はコマンドの説明であって前記コマンドの実行後でも自動的に変更されないテキストに対して、前記ファイルを特定するIDを付与するID付与手段を有し、前記生成手段は、前記付与されたIDによって特定される前記ファイルにおける前記取得パターンを閲覧可能とすることを特徴とする請求項1から請求項10までのいずれか1項に記載のチューニング装置。
  12. リレーショナルデータベースのパフォーマンスを分析及び改善するチューニング方法であって、
    前記リレーショナルデータベースに対して所定の照会言語を介して発行されたすべてのコマンドが、データベースマネージメントシステムで実行されたときの所定の実行情報を収集するステップと、
    前記各コマンドの実行によってデータの検索結果を取得するために、検索対象を絞り込むためのカラムデータと該カラムデータに対する検索条件を前記照会言語で表記した演算子データによって特定された検索条件情報及び前記検索対象を絞り込むためのカラムデータに対して設定されたインデックスデータと前記オブジェクトに対して設定された検索経路を示す走査方式データによって特定された検索方法情報を一対の取得パターンとして抽出するステップと、
    前記抽出された各取得パターンを前記リレーショナルデータベースのオブジェクト単位に組分けした取得パターン群として一覧可能にグルーピングするとともに、各取得パターンと各取得パターンに対応する前記収集された実行情報とを一連のチューニング情報として構成したチューニング用テーブルを生成するステップとを有し、
    前記収集は、前記リレーショナルデータベースが稼働中に、該リレーショナルデータベースに実際に格納されているオブジェクトとは別に、継続的に更新される仮想のテーブルから前記実行情報を定期的に収集し、専用のリポジトリに格納するとともに、時系列に管理することによって行われることを特徴とするチューニング方法。
  13. 前記各取得パターンの検索条件情報に対する検索方法情報のアクセス効率を所定の演算式によって評点として算出するステップを有し、算出された前記各評点情報を前記実行情報に含めることを特徴とする請求項12記載のチューニング方法。
  14. 前記各オブジェクトの取得パターン群から、前記実行情報に基づいて、チューニングの対象となる取得パターンを特定して選出するステップと、選出された取得パターンから、インデックスデータとして選定されていないカラムデータを読み出し、所定の条件に従って当該カラムデータからインデックスデータを選定するステップとを有し、前記チューニング用テーブルに前記選定したインデックスデータを含めることを特徴とする請求項12又は請求項13記載のチューニング方法。
  15. 前記オブジェクトの設計時に行われる複数の段階のテストにおいて、前記実行情報の収集と前記取得パターンの抽出を順次実行するとともに、前記チューニング用テーブルに加えて、前記抽出された取得パターンの検索条件情報から、前記カラムデータごとに分解し、検索時の使用回数が多い順に前記カラムデータをソートしたテーブルを生成することを特徴とする請求項12から請求項14までのいずれか1項に記載のチューニング方法。
  16. 前記リレーショナルデータベースの本番環境での稼働時において、新たなデータの登録、削除、定義の変更が発生したときに、当該発生の前後におけるチューニング用テーブルの差分から新たに発生した取得パターンを特定することを特徴とする請求項12から請求項14までのいずれか1項に記載のチューニング方法。
  17. 前記実行情報は、前記仮想のテーブルからの定期的な収集に代えて、前記リレーショナルデータベースから直接収集するものとし、前記選定したインデックスデータを介して前記リレーショナルデータベースで検索のシミュレーションを行うと、前記選定されたインデックスを適用する前後の前記実行情報に基づくデータ分布を閲覧可能とすることを特徴とする請求項12から請求項14までのいずれか1項に記載のチューニング方法。
JP2016083544A 2016-04-19 2016-04-19 リレーショナルデータベースのチューニング装置及び方法 Active JP6669571B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2016083544A JP6669571B2 (ja) 2016-04-19 2016-04-19 リレーショナルデータベースのチューニング装置及び方法
US15/317,815 US10216773B2 (en) 2016-04-19 2016-05-19 Apparatus and method for tuning relational database
CN201680002045.XA CN108027763B (zh) 2016-04-19 2016-05-19 关系型数据库的调整装置和方法
EP16805264.5A EP3456360B1 (en) 2016-04-19 2016-05-19 Device and method for tuning relational database
PCT/JP2016/002458 WO2017183065A1 (ja) 2016-04-19 2016-05-19 リレーショナルデータベースのチューニング装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016083544A JP6669571B2 (ja) 2016-04-19 2016-04-19 リレーショナルデータベースのチューニング装置及び方法

Publications (2)

Publication Number Publication Date
JP2017194778A JP2017194778A (ja) 2017-10-26
JP6669571B2 true JP6669571B2 (ja) 2020-03-18

Family

ID=60116619

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016083544A Active JP6669571B2 (ja) 2016-04-19 2016-04-19 リレーショナルデータベースのチューニング装置及び方法

Country Status (5)

Country Link
US (1) US10216773B2 (ja)
EP (1) EP3456360B1 (ja)
JP (1) JP6669571B2 (ja)
CN (1) CN108027763B (ja)
WO (1) WO2017183065A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190050436A1 (en) * 2017-08-14 2019-02-14 International Business Machines Corporation Content-based predictive organization of column families
US11003693B2 (en) * 2018-04-05 2021-05-11 Sap Se Grouping tables with existing tables in a distributed database
US11010363B2 (en) 2018-04-05 2021-05-18 Sap Se Complementing existing tables while grouping tables in a distributed database
CN108763536B (zh) * 2018-05-31 2020-04-14 阿里巴巴集团控股有限公司 数据库访问方法及装置
CN110019374B (zh) * 2019-03-26 2021-03-12 杭州数梦工场科技有限公司 基于特征的数据项处理方法、装置、存储介质及计算机设备
US11500755B1 (en) * 2019-05-01 2022-11-15 Amazon Technologies, Inc. Database performance degradation detection and prevention
CN110245137B (zh) * 2019-05-07 2023-06-27 创新先进技术有限公司 一种索引的处理方法、装置及设备
CN111782659B (zh) * 2020-07-10 2023-10-17 东北大学 数据库索引创建方法、装置、计算机设备和存储介质
US11544294B2 (en) 2020-12-10 2023-01-03 Sap Se Distributing tables in a distributed database using consolidated grouping sources
CN113010596B (zh) * 2021-03-19 2024-02-23 上海达梦数据库有限公司 一种动态性能视图的构建方法、装置、设备及存储介质
CN115640274A (zh) * 2021-07-19 2023-01-24 中兴通讯股份有限公司 数据库模型动态调整的方法、设备及存储介质
CN113961637B (zh) * 2021-12-23 2022-03-18 北京力控元通科技有限公司 一种基于数据库的数据融合方法、系统和电子设备
US20230315702A1 (en) * 2022-03-30 2023-10-05 Microsoft Technology Licensing, Llc Constraint-based index tuning in database management systems utilizing reinforcement learning
CN115062011A (zh) 2022-05-23 2022-09-16 浙江工商大学 一种面向关系数据库的智能索引调优方法及系统
US20240193215A1 (en) * 2022-12-07 2024-06-13 Servicenow, Inc. Computationally Efficient Traversal of Virtual Tables

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934759A (ja) * 1995-07-21 1997-02-07 Omron Corp チューニング情報作成装置およびチューニング情報作成方法
JPH10111819A (ja) 1996-10-04 1998-04-28 Hitachi Ltd リレーショナルデータベースのインデックス自動付加システム
US6560593B1 (en) * 1999-07-20 2003-05-06 Computer Associates Think, Inc. Method and apparatus for viewing the effect of changes to an index for a database table on an optimization plan for a database query
JP2001175678A (ja) 1999-12-20 2001-06-29 Toshiba Corp データベース・チューニング装置、データベース・チューニング方法、および記録媒体
US7747606B2 (en) * 2003-09-06 2010-06-29 Oracle International Corporation Automatic SQL tuning advisor
US20060212429A1 (en) * 2005-03-17 2006-09-21 Microsoft Corporation Answering top-K selection queries in a relational engine
US20080052271A1 (en) * 2006-08-26 2008-02-28 Eric Lam Method To Converge A Plurality Of SQL Statements Into SQL Skeletons For Enhanced Database Performance Analysis And Tuning
JP2008204141A (ja) * 2007-02-20 2008-09-04 Nec Corp インデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラム
CN101154241A (zh) * 2007-10-11 2008-04-02 北京金山软件有限公司 一种数据检索方法及一种数据检索系统
US9213740B2 (en) * 2007-10-11 2015-12-15 Sybase, Inc. System and methodology for automatic tuning of database query optimizer
KR101083563B1 (ko) * 2009-04-24 2011-11-14 엔에이치엔비즈니스플랫폼 주식회사 데이터베이스 관리 방법 및 시스템
US9009135B2 (en) * 2010-01-29 2015-04-14 Oracle International Corporation Method and apparatus for satisfying a search request using multiple search engines
JP5713652B2 (ja) * 2010-12-13 2015-05-07 キヤノン株式会社 データ検索装置、方法、及びプログラム
CN103390066B (zh) * 2013-08-08 2016-02-17 上海新炬网络信息技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法

Also Published As

Publication number Publication date
EP3456360A1 (en) 2019-03-20
WO2017183065A1 (ja) 2017-10-26
CN108027763A (zh) 2018-05-11
US20190034463A1 (en) 2019-01-31
CN108027763B (zh) 2022-09-16
US10216773B2 (en) 2019-02-26
EP3456360B1 (en) 2020-09-30
JP2017194778A (ja) 2017-10-26
EP3456360A4 (en) 2019-10-23

Similar Documents

Publication Publication Date Title
JP6669571B2 (ja) リレーショナルデータベースのチューニング装置及び方法
US11461319B2 (en) Dynamic database query efficiency improvement
US11429584B2 (en) Automatic determination of table distribution for multinode, distributed database systems
US7664778B2 (en) SQL tuning sets
US10769123B2 (en) Workload-driven recommendations for Columnstore and Rowstore indexes in relational databases
Zhang et al. Towards high-throughput Gibbs sampling at scale: A study across storage managers
US20110078135A1 (en) Database index monitoring system
Rabl et al. Just can't get enough: Synthesizing Big Data
Li et al. Rios: Runtime integrated optimizer for spark
CN111489135A (zh) 一种稽核数据的分析管理系统及方法
Li et al. S/C: Speeding up Data Materialization with Bounded Memory
Wang et al. QMapper for smart grid: Migrating SQL-based application to Hive
CN112380256B (zh) 能源系统数据存取的方法、数据库、计算机可读存储介质
Taipalus Database management system performance comparisons: A systematic survey
Azadvar et al. Quick generation of ssd performance models using machine learning
Chakkappen et al. Efficient and scalable statistics gathering for large databases in Oracle 11g
JP4088164B2 (ja) ドキュメントスコア計算方法及び装置並びにプログラム
CN113553320B (zh) 数据质量监控方法及装置
Khatiwada Architectural issues in real-time business intelligence
JP2008204141A (ja) インデックス構成提案システムおよび方法ならびにデータ解析装置およびプログラム
Chen et al. An Offline Profile-Guided Optimization Strategy for Function Reordering on Relational Databases
Zhao et al. Analysis and Practice of Automatic Indexing in Big Data
GATIMU Enhancing data staging as a mechanism for fast data access
JP2013125429A (ja) 分析対象決定装置
Buda et al. Towards realistic sampling: generating dependencies in a relational database

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200127

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200227

R150 Certificate of patent or registration of utility model

Ref document number: 6669571

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250