JP6570156B2 - データベースシステム最適化の方法、システム、電子装置及び記憶媒体 - Google Patents

データベースシステム最適化の方法、システム、電子装置及び記憶媒体 Download PDF

Info

Publication number
JP6570156B2
JP6570156B2 JP2018532071A JP2018532071A JP6570156B2 JP 6570156 B2 JP6570156 B2 JP 6570156B2 JP 2018532071 A JP2018532071 A JP 2018532071A JP 2018532071 A JP2018532071 A JP 2018532071A JP 6570156 B2 JP6570156 B2 JP 6570156B2
Authority
JP
Japan
Prior art keywords
read data
sql
buffer read
sql statement
preset
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
JP2018532071A
Other languages
English (en)
Other versions
JP2019508774A (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.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen 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 Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Publication of JP2019508774A publication Critical patent/JP2019508774A/ja
Application granted granted Critical
Publication of JP6570156B2 publication Critical patent/JP6570156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/242Query formulation
    • G06F16/2433Query languages
    • 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/24539Query rewriting; Transformation using cached or materialised query results
    • 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/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/80Database-specific techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Description

「関連出願の相互参照」
本願は、2017年02月20日にパリ条約に基づく、中国特許出願第CN2017100881525号の「データベースシステム最適化の方法及び装置」と題する中国特許出願の優先権を主張し、当該中国出願の全体が参照により本願に援用される。
本発明は、データベース技術分野に関し、特にデータベースシステム最適化の方法、システム、電子装置及びコンピュータ読み取り可能な記憶媒体に関するものである。
データベースの照会SQL(Structured Query Language、構造化照会言語)文は、種々の異なる表記方法を有し、異なる表記方法のSQL文は、アプリケーションシステムの性能の優劣に関わる。アプリケーションシステムの開発初期に、データベースにおけるデータが比較的少ないため、異なる表記方法のSQL文はアプリケーションシステムに対する影響がそれほど大きくない。実際の応用において、データベースにおけるデータが増加しつつ、アプリケーションシステムの応答速度に大きな影響を与えてしまい、従って、アプリケーションシステムを最適化するように、SQL文を最適化する必要がある。
現在、DBA(Database Administrator、データベース管理者)は、大量のSQL文に直面している時に、通常、手動でSQL文を選択して最適化する。選択されたSQL文の使用頻度が低いと、最適化してもアプリケーションシステムの応答速度を向上させることができず、従って、手動選択の形態により、最適化すべきSQL文を正確に位置決めできず、最適化の効率が低下する。
本発明は、最適化すべきSQL文を正確に位置決めし、最適化効率を向上させるデータベースシステム最適化の方法、システム、電子装置及びコンピュータ読み取り可能な記憶媒体を提供することにその目的がある。
上記の目的を達成するために、本発明は、データベースシステム最適化の方法を提供し、前記データベースシステム最適化の方法は、
予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
を備える。
上記の目的を達成するために、本発明は、データベースシステム最適化のシステムをさらに提供し、前記データベースシステム最適化のシステムは、
予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存することに用いられるスナップショットモジュールと、
現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出することに用いられる算出モジュールと、
各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択することに用いられる選択モジュールと、
を備える。
上記の目的を達成するために、本発明は、電子装置をさらに提供し、
前記電子装置は、
メモリと、前記メモリに接続されるプロセッサと、を備え、前記メモリには、前記プロセッサ上で実行できるデータベースシステム最適化のシステムが記憶されており、
前記データベースシステム最適化のシステムは、前記プロセッサに実行される際に、
予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
を実現する。
上記の目的を達成するために、本発明は、コンピュータ読み取り可能な記憶媒体をさらに提供し、
前記コンピュータ読み取り可能な記憶媒体にはデータベースシステム最適化のシステムが記憶されており、
前記データベースシステム最適化のシステムは、前記プロセッサに実行される際に、
予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
を実現する。
本発明の有益な効果は、予め設定された時間おきにSQL文の性能データをスナップショットし、今回のスナップショットの性能データと、前のスナップショットの性能データとを差を算出することで、前記予め設定された時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出し、各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量によって使用頻度及び性能が高いSQL文を取得でき、これらの使用頻度及び性能が高いSQL文を最適化することで、アプリケーションシステムの応答速度を向上できることである。本発明は、バッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値に基づいて、最適化対象のSQL文を選択し、最適化すべきSQL文を正確に位置決めし、最適化効率を向上することができる。
本発明に係るデータベースシステム最適化の方法の第一実施例の概略フローチャートである。 本発明に係るデータベースシステム最適化の方法の第二実施例の概略フローチャートである。 図1に示されるステップS3の詳細な概略フローチャートである。 本発明に係る各実施例の1つの選択可能な応用環境の概略図である。 本発明に係るデータベースシステム最適化のシステムの第一実施例の概略構造図である。 本発明に係るデータベースシステム最適化のシステムの第二実施例の概略構造図である。 図5に示される選択モジュールの概略構造図である。
以下、図面を参照して本発明の原理及び特徴について説明し、例示された実施例は、単に本発明を説明するためのものであり、本発明の範囲を限定するためものではない。
図1に示すように、図1は本発明に係るデータベースシステム最適化の方法の第一実施例の概略フローチャートであり、前記データベースシステム最適化の方法は、電子装置に用いられ、ステップS1と、ステップS2と、ステップS3と、を備える。
ステップS1:予め設定された第一時間おきにデータベースシステムの各SQL文の性能データをスナップショットし、前記スナップショットを時系列順に配列して保存する。
本実施例において、予め設定された第一時間おきにデータベースシステムの各SQL文の性能データをスナップショット(すなわちsnapshot)し、例えば、1時間おきに各SQL文の性能データをスナップショットすることで、対応する時間におけるデータベースの静的ビューを取得し、ここで、スナップショットによって取得されるものはデータベース全体のデータである。
ここで、SQL文の性能データは、実行回数(すなわちexecutions)及びバッファ読み取り(すなわちbuffer gets)データの量を含み、バッファ読み取りデータの量は、SQL文がメモリから読み取られたデータ量である。
ステップS2:現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出する。
本実施例において、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出する。すなわち現在のスナップショットの各SQL文に対応するバッファ読み取りデータの総量と、前のスナップショットの各SQL文に対応するバッファ読み取りデータの総量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量を算出する。現在のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量と、前のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出する。例えば、現在のスナップショットのスナップショット時間が8:00で、時間間隔が1時間であれば、前のスナップショットのスナップショット時間が7:00であり、差を算出した後、時間が7:00-8:00の間である各SQL文に対応するバッファ読み取りデータの総量及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を取得する。
ここで、1つのSQL文に対応する1回実行のバッファ読み取りデータの平均量は、前記SQL文に対応するバッファ読み取りデータの総量と前記SQL文に対応する実行回数との商に等しい。
ステップS3:各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択する。
本実施例において、各SQL文のバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、すなわち各SQL文について、バッファ読み取りデータの総量の値と1回実行のバッファ読み取りデータの平均量の値とを加算するたけで、合計値を求める。
例えば、2つのSQL文のバッファ読み取りデータの総量が同じで、いずれも10万であり、1つ目のSQL文の実行回数が2万で、2つ目のSQL文の実行回数が5万であれば、1つ目のSQL文の1回実行のバッファ読み取りデータの平均量が5で、2つ目のSQL文の1回実行のバッファ読み取りデータの平均量が2であり、それによって、合計値が(10万+5)である2つ目のSQL文を最適化対象のSQL文として優先的に選択する。また、例えば2つのSQL文の実行回数が同じである場合、バッファ読み取りデータの総量が大きいSQL文を最適化対象のSQL文として選択する。さらに、例えば2つのSQL文のバッファ読み取りデータの総量が異なり、実行回数も異なる場合、バッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値が大きいSQL文を最適化対象のSQL文として選択する。
ここで、1回実行のバッファ読み取りデータの平均量は、1つのSQL文が1回実行するバッファ読み取りデータの平均量を示し、前記平均量が大きいほど、1つのSQL文が1回実行するバッファ読み取りデータが多くなり、バッファ読み取りデータの総量が同じである場合、1つのSQL文が1回実行するバッファ読み取りデータの平均量が大きいほど、前記SQL文は性能がより高いSQL文であり、優先的に最適化対象のSQL文とする。前記合計値から、本実施例は、バッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量に基づいてSQL文の使用状況を全体的、総合的に評価し、SQL文の合計値が大きいほど、前記SQL文の使用頻度及び性能が高くなることが明らかである。
本実施例において、合計値に基づいて最適化対象のSQL文を選択し、具体的には合計値に従って降順で並べ替え、前記並べ替えの順で最適化対象のSQL文を選択することができ、ここで、前に並べ替えられたSQL文は最適化対象のSQL文である。
本実施例は、従来技術と比べ、予め設定された時間おきにSQL文の性能データをスナップショットし、今回のスナップショットの性能データと、前のスナップショットの性能データとの差を算出することで、前記予め設定された時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出して取得し、各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量によって使用頻度及び性能が高いSQL文を取得でき、これらの使用頻度及び性能が高いSQL文を最適化することで、アプリケーションシステムの応答速度を向上させることができ、本実施例は、バッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値に基づいて、最適化対象のSQL文を選択することで、最適化すべきSQL文を正確に位置決めし、最適化効率を向上させることができる。
好ましい実施例において、図1の実施例の上で、前記ステップS2は、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量、全てのSQL文のバッファ読み取りデータの総量の合計値及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出し、そして各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、さらに前記比が前記予め設定された比よりも大きいSQL文を、前記ステップS3を実行するSQL文とするというステップで置き換えられる。
本実施例において、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出する。すなわち現在のスナップショットの各SQL文に対応するバッファ読み取りデータの総量と、前のスナップショットの各SQL文に対応するバッファ読み取りデータの総量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量を算出する。
現在のスナップショットの全てのSQL文のバッファ読み取りデータの総量の合計値と、前のスナップショットの全てのSQL文のバッファ読み取りデータの総量の合計値との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で全てのSQL文のバッファ読み取りデータの総量の合計値を算出する。
現在のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量と、前のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出する。
そして、各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、前記比が小さければ、前記SQL文は使用頻度の低いSQL文であり、比が予め設定された比以下であるSQL文をフィルタリングし、例えば、比が1%以下であるSQL文をフィルタリングし、そして比が予め設定された比よりも大きいSQL文を、ステップS3を実行するSQL文とする。
好ましい実施例において、図2に示すように、図1の実施例の上で、前記ステップS2の後に、ステップS201と、ステップS202と、をさらに備える。
ステップS201:1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析する。
ステップS202:存在する場合、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記ステップS3を実行するSQL文とする。
本実施例において、各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出した後、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析し、SQL文の1回実行のバッファ読み取りデータの平均量が前記SQL文の性能の高低程度を示すため、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングすることができ、例えば、1回実行のバッファ読み取りデータの平均量が100以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記ステップS3を実行するSQL文とする。
好ましい実施例において、図3に示すように、図1の実施例の上で、前記ステップS3は、ステップS31と、ステップS32と、を備える。
ステップS31:各SQL文について対応するバッファ読み取りデータの総量の大きさに従って1回目の並べ替えを行い、そして各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行うことで、前記1回目の並べ替え及び前記2回目の並べ替えを基準とする各SQL文の総合並べ替えを取得する。
ステップS32:前記総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択する。
本実施例において、各SQL文について対応するバッファ読み取りデータの総量に従って降順で1回目の並べ替えを行い、すなわち対応するバッファ読み取りデータの総量の大きさに従って並べ替え、例えば、SQL文A、B、C、D、Eについて対応するバッファ読み取りデータの総量の大きさに従って並べ替えしてB、C、D、A、Eになり、そして、対応する番号を生成でき、例えばSQL文B、C、D、A、Eに対応する番号は1、2、3、4、5であってもよい。
各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行い、すなわち1回実行のバッファ読み取りデータの平均量の大きさに従って降順で並べ替え、例えば、SQL文A、B、C、D、Eについて対応する1回実行のバッファ読み取りデータの平均量の大きさに従って並べ替えしてD、A、E、B、Cになり、そして、対応する番号を生成でき、例えばSQL文D、A、E、B、Cに対応する番号が1、2、3、4、5であってもよい。
総合番号を取得する際に1回目の並べ替え及び2回目の並べ替えを基準とし、例えば1回目の並べ替えの番号及び2回目の並べ替えの番号を加算してA(4+2)、B(4+1)、C(2+5)、D(3+1)、E(5+3)を取得し、すなわち総合並べ替えの結果はE、C、A、B、Dであり、最終的にSQL文E、C、A、B、Dの総合番号を生成し、例えばSQL文E、C、A、B、Dに対応する番号は1、2、3、4、5である。
当然のことながら、本実施例は、1回目の並べ替え及び2回目の並べ替えを基準とする他の総合並べ替えを採用してもよく、ここで説明を省略する。
以上からわかるように、総合並べ替え後のSQL文は、SQL文のバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量の両方を総合し、量に従って降順で並べ替えられたものであり、よって、総合並べ替え後のSQL文は、その使用頻度及び性能に従って降順で並べ替えられたものであると考えられる。
本実施例において、総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択する。
好ましくは、各SQL文の総合並べ替えに対応する総合番号と全てのSQL文の数との商を算出することで、各SQL文に対応する目標値を求めることができる。前記予め設定された第一時間よりも大きい予め設定された第二時間内(例えば10時間内)で少なくとも1つのSQL文の目標値が存在するか否かを分析する。存在する場合、前記予め設定された第二時間内で同じSQL文に対応する目標値を加算することで、同じSQL文の目標値の合計値を求める。例えば、予め設定された第二時間内で、1つのSQL文は複数の目標値に対応すると、前記SQL文に対応する全ての目標値を加算することで、前記SQL文に対応する目標値の合計値を求める。予め設定された第二時間内で、1つのSQL文は1つの目標値のみに対応すると、前記目標値を前記SQL文の目標値の合計値とする。前記目標値の合計値が予め設定された値以上であるSQL文を最適化対象のSQL文とする。
図4に示すように、本発明に係る各実施例の好適な実施例の応用環境の概略図であり、前記応用環境の概略図は、電子装置1と端末設備2とを備える。電子装置1は、ネットワーク、近距離通信技術などの適切な技術によって端末設備2とデータ交換を行うことができる。
前記端末設備2は、キーボード、マウス、リモコン、タッチパネル、又は音声制御設備などの方式を介してユーザとヒューマンコンピュータインタラクション可能ないずれかの電子製品、例えば、パーソナルコンピュータ、タブレット、スマートフォン、パーソナルデジタルアシスタント(Personal Digital Assistant、PDA)、ゲーム機、インタネットプロトコルテレビ(Internet Protocol Television、IPTV)、スマートウェアラブルデバイス、ナビゲーション装置などの移動設備、あるいはデジタルTV、デスクトップコンピュータ、ノートパソコン、サーバなどの固定端末を含むが、これに限定されるものではない。
前記電子装置1は、事前に設定又は記憶されたコマンドに従って、数値計算及び/又は情報処理を自動的に行うことができる設備である。前記電子装置1はコンピュータであってもよいし、1つのネットワークサーバ、複数のネットワークサーバで構成されたサーバ群又はクラウドコンピューティングに基づく大量なホスト又はネットワークサーバで構成されたクラウドであってもよく、ここでクラウドコンピューティングは分散型計算の1種類であり、一群の疎結合のコンピュータで構成された1つの仮想スーパーコンピュータである。
本実施例において、電子装置1は、システムバスを介して相互に通信接続可能な記憶装置11、プロセッサ12、ネットワークインタフェース13を含むが、これに限定されるものではなく、ここで記憶装置11には前記プロセッサ12で動作できるデータベースシステム最適化のシステムが記憶されている。なお、図4にはモジュール11−13を備える電子装置1のみを示すが、当然のことながら、示される全てのモジュールを有する必要がなく、そのかわりにより多くの又はより少ないモジュールを有することも可能である。
ここで、記憶装置11は、メモリと少なくとも1種類の読み取り可能な記憶媒体とを備える。前記メモリは電子装置1の動作にバッファを提供する。前記読み取り可能な記憶媒体は、フラッシュメモリ、ハードディスク、マルチメディアカード、カード型メモリ(例えば、SD又はDXメモリなど)、ランダムアクセスメモリ(RAM)、スタティックランダムアクセスメモリ(SRAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラマブル読み取り専用メモリ(EEPROM)、プログラマブル読み取り専用メモリ(PROM)、磁気メモリ、磁気ディスク、光ディスクなどの不揮発性記憶媒体であってもよい。いくつかの実施例において、前記読み取り可能な記憶媒体は、電子装置1のハードディスクなどの内部記憶ユニットである。他の実施例において、前記不揮発性記憶媒体は、電子装置1に配置されるプラグインハードディスク、スマートメディアカード(Smart Media(登録商標)Card、SMC)、セキュアデジタル(Secure Digital、SD)カード、フラッシュカード(Flash Card)などの電子装置1の外部の記憶装置であってもよい。本実施例において、記憶装置11の読み取り可能な記憶媒体は、通常本発明の一実施例におけるデータベースシステム最適化のシステムのプログラムコードなどの、電子装置1にインストールされているオペレーションシステムや種々のアプリケーションソフトウェアを記憶することに用いられる。また、記憶装置11は、すでに出力した又は出力しようとする各種のデータを一時的に記憶することに用いることができる。
いくつかの実施例において、前記プロセッサ12は、中央処理装置(Central Processing Unit、CPU)、コントローラ、マイクロコントローラ、マイクロプロセッサ、又は他のデータ処理チップであってもよい。前記プロセッサ12は、通常、例えば端末設備2とのデータ交換又は通信関連の制御及び処理の実行など、前記電子装置1の全体操作を制御することに用いられる。本実施例において、前記プロセッサ12は、例えばデータベースシステム最適化のシステムの実行など、記憶装置11には記憶されているプログラムコードの実行又はデータの処理に用いられる。
前記ネットワークインタフェース13は、無線ネットワークインタフェース又は有線ネットワークインタフェースを含むことができ、前記ネットワークインタフェース13は、通常、電子装置1と他の電子設備との間に通信接続を確立することに用いられる。本実施例において、ネットワークインタフェース13は、主に電子装置1と1つ又は複数の端末設備2を接続し、電子装置1と1つ又は複数の端末設備2との間にデータ伝送通路及び通信接続を確立することに用いられる。
前記データベースシステム最適化のシステムは記憶装置11に記憶されており、記憶装置11に記憶されている少なくとも1つのコンピュータ読み取り可能なコマンドを含み、前記少なくとも1つのコンピュータ読み取り可能なコマンドは、本願の各実施例の方法を実現するように、プロセッサ12によって実行されてもよい。かつ、前記少なくとも1つのコンピュータ読み取り可能なコマンドは、各部分に実現される機能により、異なるロジックモジュールに区画することができる。
前記データベースシステム最適化のシステムは、前記プロセッサ12によって実行される際に、予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータ量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップと、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップと、各SQL文のバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量の合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップと、を実行し、最適化すべきSQL文を正確に位置決めし、最適化効率を向上することができる。
図5に示すように、図5は本発明に係るデータベースシステム最適化のシステムの第一実施例の概略構造図であり、前記データベースシステム最適化のシステムは、異なる機能に応じて、複数の機能モジュールに区画できる。前記データベースシステム最適化のシステムは、スナップショットモジュール101と、算出モジュール102と、選択モジュール103と、を備える。
スナップショットモジュール101は、予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータ量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存することに用いられる。
本実施例において、予め設定された第一時間おきにデータベースシステムの各SQL文の性能データをスナップショット(すなわちsnapshot)し、例えば、1時間おきに各SQL文の性能データをスナップショットすることで、対応する時間におけるデータベースの静的ビューを取得し、ここで、スナップショットによって取得されるものはデータベース全体のデータである。
ここで、SQL文の性能データは、実行回数(すなわちexecutions)及びバッファ読み取り(すなわちbuffer gets)データの量を含み、バッファ読み取りデータの量は、SQL文がメモリから読み取られたデータ量である。
算出モジュール102は、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出することに用いられる。
本実施例において、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出する。すなわち現在のスナップショットの各SQL文に対応するバッファ読み取りデータの総量と、前のスナップショットの各SQL文に対応するバッファ読み取りデータの総量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量を算出する。現在のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量と、前のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出する。例えば、現在のスナップショットのスナップショット時間が8:00で、時間間隔が1時間であれば、前のスナップショットのスナップショット時間が7:00であり、差を算出した後、時間が7:00-8:00の間である各SQL文に対応するバッファ読み取りデータの総量及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を取得する。
ここで、1つのSQL文に対応する1回実行のバッファ読み取りデータの平均量は、前記SQL文に対応するバッファ読み取りデータの総量と前記SQL文に対応する実行回数との商に等しい。
選択モジュール103は、各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択することに用いられる。
本実施例において、各SQL文のバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、すなわち各SQL文について、バッファ読み取りデータの総量の値と1回実行のバッファ読み取りデータの平均量の値とを加算するたけで、合計値を求める。
例えば、2つのSQL文のバッファ読み取りデータの総量が同じで、いずれも10万であり、1つ目のSQL文の実行回数が2万で、2つ目のSQL文の実行回数が5万であれば、1つ目のSQL文の1回実行のバッファ読み取りデータの平均量が5で、2つ目のSQL文の1回実行のバッファ読み取りデータの平均量が2であり、それによって、合計値が(10万+5)である2つ目のSQL文を最適化対象のSQL文として優先的に選択する。また、例えば2つのSQL文の実行回数が同じである場合、バッファ読み取りデータの総量が大きいSQL文を最適化対象のSQL文として選択する。さらに、例えば2つのSQL文のバッファ読み取りデータの総量が異なり、実行回数も異なる場合、バッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値が大きいSQL文を最適化対象のSQL文として選択する。
ここで、1回実行のバッファ読み取りデータの平均量は、1つのSQL文が1回実行するバッファ読み取りデータの平均量を示し、前記平均量が大きいほど、1つのSQL文が1回実行するバッファ読み取りデータが多くなり、バッファ読み取りデータの総量が同じである場合、1つのSQL文が1回実行するバッファ読み取りデータの平均量が大きいほど、前記SQL文は性能がより高いSQL文であり、優先的に最適化対象のSQL文とする。前記合計値から、本実施例は、バッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量に基づいてSQL文の使用状況を全体的、総合的に評価し、SQL文の合計値が大きいほど、前記SQL文の使用頻度及び性能が高くなることが明らかである。
本実施例において、合計値に基づいて最適化対象のSQL文を選択し、具体的には合計値に従って降順で並べ替え、前記並べ替えの順で最適化対象のSQL文を選択することができ、ここで、前に並べ替えられたSQL文は最適化対象のSQL文である。
好ましい実施例において、図5の実施例の上で、前記算出モジュール102は、現在スナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量、全てのSQL文のバッファ読み取りデータの総量の合計値及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出し、そして各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、さらに前記比が前記予め設定された比よりも大きいSQL文を前記選択モジュール103のSQL文とすることに用いられる処理モジュールに置き換えられる。
本実施例において、現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出する。すなわち現在のスナップショットの各SQL文に対応するバッファ読み取りデータの総量と、前のスナップショットの各SQL文に対応するバッファ読み取りデータの総量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量を算出する。
現在のスナップショットの全てのSQL文のバッファ読み取りデータの総量の合計値と、前のスナップショットの全てのSQL文のバッファ読み取りデータの総量の合計値との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で全てのSQL文のバッファ読み取りデータの総量の合計値を算出する。
現在のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量と、前のスナップショットの各SQL文に対応する1回実行のバッファ読み取りデータの平均量との差を算出する(例えば統計して減算する)ことで、予め設定された第一時間内で各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出する。
そして、各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、前記比が小さければ、前記SQL文は使用頻度の低いSQL文であり、比が予め設定された比以下であるSQL文をフィルタリングし、例えば、比が1%以下であるSQL文をフィルタリングし、そして比が予め設定された比よりも大きいSQL文を、選択モジュール103のSQL文とする。
好ましい実施例において、図6に示すように、図5の実施例の上で、前記データベースシステム最適化のシステムは、分析モジュール201と、フィルタリングモジュール202と、をさらに備える。
分析モジュール201は、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析することに用いられる。
フィルタリングモジュール202は、存在する場合、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記選択モジュール103のSQL文とすることに用いられる。
本実施例において、各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出した後、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析し、SQL文の1回実行のバッファ読み取りデータの平均量が前記SQL文の性能の高低程度を示すため、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングすることができ、例えば、1回実行のバッファ読み取りデータの平均量が100以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、選択モジュール103のSQL文とする。
好ましい実施例において、図7に示すように、図5の実施例の上で、前記選択モジュール103は、並べ替えユニット1031と、選択ユニット1032と、を備える。
並べ替えユニット1031は、各SQL文について対応するバッファ読み取りデータの総量の大きさに従って1回目の並べ替えを行い、そして各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行うことで、前記1回目の並べ替え及び前記2回目の並べ替えを基準とする各SQL文の総合並べ替えを取得することに用いられる。
選択ユニット1032は、前記総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択することに用いられる。
本実施例において、各SQL文について対応するバッファ読み取りデータの総量に従って降順で1回目の並べ替えを行い、すなわち対応するバッファ読み取りデータの総量の大きさに従って並べ替え、例えば、SQL文A、B、C、D、Eについて対応するバッファ読み取りデータの総量の大きさに従って並べ替えしてB、C、D、A、Eになり、そして、対応する番号を生成でき、例えばSQL文B、C、D、A、Eに対応する番号は1、2、3、4、5であってもよい。
各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行い、すなわち1回実行のバッファ読み取りデータの平均量の大きさに従って降順で並べ替え、例えば、SQL文A、B、C、D、Eについて対応する1回実行のバッファ読み取りデータの平均量の大きさに従って並べ替えしてD、A、E、B、Cになり、そして、対応する番号を生成でき、例えばSQL文D、A、E、B、Cに対応する番号が1、2、3、4、5であってもよい。
総合番号を取得する際に1回目の並べ替え及び2回目の並べ替えを基準とし、例えば1回目の並べ替えの番号及び2回目の並べ替えの番号を加算してA(4+2)、B(4+1)、C(2+5)、D(3+1)、E(5+3)を取得し、すなわち総合並べ替えの結果はE、C、A、B、Dであり、最終的にSQL文E、C、A、B、Dの総合番号を生成し、例えばSQL文E、C、A、B、Dに対応する番号は1、2、3、4、5である。
当然のことながら、本実施例は、1回目の並べ替え及び2回目の並べ替えを基準とする他の総合並べ替えを採用してもよく、ここで説明を省略する。
以上からわかるように、総合並べ替え後のSQL文は、SQL文のバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量の両方を総合し、量に従って降順で並べ替えられたものであり、よって、総合並べ替え後のSQL文は、その使用頻度及び性能に従って降順で並べ替えられたものであると考えられる。
本実施例において、総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択する。
好ましくは、選択ユニット1032は、具体的には、各SQL文の総合並べ替えに対応する総合番号と全てのSQL文の数との商を算出することで、各SQL文に対応する目標値を求めることができる。前記予め設定された第一時間よりも大きい予め設定された第二時間内(例えば10時間内)で少なくとも1つのSQL文の目標値が存在するか否かを分析する。存在する場合、前記予め設定された第二時間内で同じSQL文に対応する目標値を加算することで、同じSQL文の目標値の合計値を求める。例えば、予め設定された第二時間内で、1つのSQL文は複数の目標値に対応すると、前記SQL文に対応する全ての目標値を加算することで、前記SQL文に対応する目標値の合計値を求める。予め設定された第二時間内で、1つのSQL文は1つの目標値のみに対応すると、前記目標値を前記SQL文の目標値の合計値とする。前記目標値の合計値が予め設定された値以上であるSQL文を最適化対象のSQL文とすることに用いられる。
以上に記載したことは本発明の好適な実施例だけであり、本発明を限定するものではなく、本発明の精神と原則内で行われた全ての修正、均等置換及び改善などは、いずれも本発明の保護範囲に含まれるべきである。

Claims (15)

  1. データベースシステム最適化の方法であって、
    予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
    各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
    を備えることを特徴とするデータベースシステム最適化の方法。
  2. 前記ステップS2は、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量、全てのSQL文のバッファ読み取りデータの総量の合計値及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出し、
    各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、
    前記比が前記予め設定された比よりも大きいSQL文を、前記ステップS3を実行するSQL文とする
    というステップで置き換えられることを特徴とする請求項1に記載のデータベースシステム最適化の方法。
  3. 前記ステップS2の後に、
    1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析するステップS201と、
    存在する場合、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記ステップS3を実行するSQL文とするステップS202と、
    をさらに備えることを特徴とする請求項1に記載のデータベースシステム最適化の方法。
  4. 前記ステップS3は、
    各SQL文について対応するバッファ読み取りデータの総量の大きさに従って1回目の並べ替えを行い、そして各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行うことで、前記1回目の並べ替え及び前記2回目の並べ替えを基準とする各SQL文の総合並べ替えを取得するステップS31と、
    前記総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択するステップS32と、
    を備えることを特徴とする請求項1から3のいずれか1項に記載のデータベースシステム最適化の方法。
  5. 前記ステップS32は、
    各SQL文の総合並べ替えに対応する総合番号と全てのSQL文の数との商を算出することで、各SQL文に対応する目標値を求め、
    前記予め設定された第一時間よりも大きい予め設定された第二時間内で少なくとも1つのSQL文の目標値が存在するか否かを分析し、
    存在する場合、前記予め設定された第二時間内で同じSQL文に対応する目標値を加算することで、同じSQL文の目標値の合計値を求め、
    前記目標値の合計値が予め設定された値以上であるSQL文を最適化対象のSQL文とする
    ことを備えることを特徴とする請求項4に記載のデータベースシステム最適化の方法。
  6. 電子装置であって、メモリと、前記メモリに接続されるプロセッサと、を備え、前記メモリには、前記プロセッサ上で実行できるデータベースシステム最適化のシステムが記憶されており、
    前記データベースシステム最適化のシステムは、前記プロセッサに実行される際に、
    予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
    各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
    を実現することを特徴とする電子装置。
  7. 前記ステップS2は、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量、全てのSQL文のバッファ読み取りデータの総量の合計値及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出し、
    各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し
    前記比が前記予め設定された比よりも大きいSQL文を、前記ステップS3を実行するSQL文とする
    というステップで置き換えられることを特徴とする請求項に記載の電子装置。
  8. 前記データベースシステム最適化のシステムは、前記プロセッサに実行される際に、
    1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析するステップS201と、
    存在する場合、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記ステップS3を実行するSQL文とするステップS202と、
    をさらに実現することを特徴とする請求項に記載の電子装置。
  9. 前記ステップS3は、
    各SQL文について対応するバッファ読み取りデータの総量の大きさに従って1回目の並べ替えを行い、そして各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行うことで、前記1回目の並べ替え及び前記2回目の並べ替えを基準とする各SQL文の総合並べ替えを取得するステップS31と、
    前記総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択するステップS32と、
    を備えることを特徴とする請求項からのいずれか1項に記載の電子装置。
  10. 前記ステップS32は、
    各SQL文の総合並べ替えに対応する総合番号と全てのSQL文の数との商を算出することで、各SQL文に対応する目標値を求め、
    前記予め設定された第一時間よりも大きい予め設定された第二時間内で少なくとも1つのSQL文の目標値が存在するか否かを分析し、
    存在する場合、前記予め設定された第二時間内で同じSQL文に対応する目標値を加算することで、同じSQL文の目標値の合計値を求め、
    前記目標値の合計値が予め設定された値以上であるSQL文を最適化対象のSQL文とする
    ことを備えることを特徴とする請求項に記載の電子装置。
  11. コンピュータ読み取り可能な記憶媒体であって、
    前記コンピュータ読み取り可能な記憶媒体にはデータベースシステム最適化のシステムが記憶されており、
    前記データベースシステム最適化のシステムは、プロセッサに実行される際に、
    予め設定された第一時間おきにデータベースシステムの各SQL文の、実行回数及びバッファ読み取りデータの量が含まれる性能データをスナップショットし、前記スナップショットを時系列順に配列して保存するステップS1と、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量及び1回実行のバッファ読み取りデータの平均量を算出するステップS2と、
    各SQL文に対応するバッファ読み取りデータの総量と1回実行のバッファ読み取りデータの平均量との合計値を取得し、前記合計値に基づいて、最適化対象のSQL文を選択するステップS3と、
    を実現することを特徴とするコンピュータ読み取り可能な記憶媒体。
  12. 前記ステップS2は、
    現在のスナップショットの性能データと、前のスナップショットの性能データとをそれぞれ対応づけて差を算出することで、予め設定された第一時間内で各SQL文に対応するバッファ読み取りデータの総量、全てのSQL文のバッファ読み取りデータの総量の合計値及び各SQL文に対応する1回実行のバッファ読み取りデータの平均量を算出し、
    各SQL文に対応するバッファ読み取りデータの総量と全てのSQL文のバッファ読み取りデータの総量の合計値との比を取得し、
    前記比が前記予め設定された比よりも大きいSQL文を、前記ステップS3を実行するSQL文とする
    というステップで置き換えられることを特徴とする請求項11に記載のコンピュータ読み取り可能な記憶媒体。
  13. 前記データベースシステム最適化のシステムは、前記プロセッサに実行される際に、
    1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文が存在するか否かを分析するステップS201と、
    存在する場合、1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量以下であるSQL文をフィルタリングし、かつ1回実行のバッファ読み取りデータの平均量が予め設定されたデータ量よりも大きいSQL文を、前記ステップS3を実行するSQL文とするステップS202と、
    をさらに実現することを特徴とする請求項11に記載のコンピュータ読み取り可能な記憶媒体。
  14. 前記ステップS3は、
    各SQL文について対応するバッファ読み取りデータの総量の大きさに従って1回目の並べ替えを行い、そして各SQL文について対応する1回実行のバッファ読み取りデータの平均量の大きさに従って2回目の並べ替えを行うことで、前記1回目の並べ替え及び前記2回目の並べ替えを基準とする各SQL文の総合並べ替えを取得するステップS31と、
    前記総合並べ替えに基づいて予め設定された算出ルールを利用し、各SQL文に対応する目標値を算出し、前記目標値に基づいて最適化対象のSQL文を選択するステップS32と、
    を備えることを特徴とする請求項11から13のいずれか1項に記載のコンピュータ読み取り可能な記憶媒体。
  15. 前記ステップS32は、
    各SQL文の総合並べ替えに対応する総合番号と全てのSQL文の数との商を算出することで、各SQL文に対応する目標値を求め、
    前記予め設定された第一時間よりも大きい予め設定された第二時間内で少なくとも1つのSQL文の目標値が存在するか否かを分析し、
    存在する場合、前記予め設定された第二時間内で同じSQL文に対応する目標値を加算することで、同じSQL文の目標値の合計値を求め、
    前記目標値の合計値が予め設定された値以上であるSQL文を最適化対象のSQL文とする
    ことを備えることを特徴とする請求項14に記載のコンピュータ読み取り可能な記憶媒体。
JP2018532071A 2017-02-20 2017-06-30 データベースシステム最適化の方法、システム、電子装置及び記憶媒体 Active JP6570156B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710088152.5A CN107688589B (zh) 2017-02-20 2017-02-20 数据库系统优化的方法及装置
CN201710088152.5 2017-02-20
PCT/CN2017/091375 WO2018149085A1 (zh) 2017-02-20 2017-06-30 数据库系统优化的方法、系统、电子装置及存储介质

Publications (2)

Publication Number Publication Date
JP2019508774A JP2019508774A (ja) 2019-03-28
JP6570156B2 true JP6570156B2 (ja) 2019-09-04

Family

ID=61152404

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018532071A Active JP6570156B2 (ja) 2017-02-20 2017-06-30 データベースシステム最適化の方法、システム、電子装置及び記憶媒体

Country Status (8)

Country Link
US (1) US11132362B2 (ja)
EP (1) EP3388957B1 (ja)
JP (1) JP6570156B2 (ja)
KR (1) KR102141083B1 (ja)
CN (1) CN107688589B (ja)
AU (1) AU2017399399B2 (ja)
SG (1) SG11201808828RA (ja)
WO (1) WO2018149085A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110888909B (zh) * 2018-09-07 2022-09-23 大唐移动通信设备有限公司 一种评估内容的数据统计处理方法及装置
CN109299132B (zh) * 2018-11-29 2021-08-06 中国人民财产保险股份有限公司 Sql数据处理方法、系统以及电子设备
CN110148011B (zh) * 2019-04-15 2024-03-22 平安科技(深圳)有限公司 基于大数据的活跃量下降分析方法、装置、设备及介质
CN115037798B (zh) * 2022-08-11 2022-12-27 成都金诺信高科技有限公司 一种时统报文数据包分发方法
CN115858399B (zh) * 2023-02-09 2023-05-05 创智和宇信息技术股份有限公司 一种利用线程栈快照进行代码级性能分析的方法和系统

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP2007122405A (ja) 2005-10-28 2007-05-17 Hitachi Ltd データベース管理システムの性能チューニングシステム
US8301636B2 (en) * 2005-12-15 2012-10-30 Microsoft Corporation Providing schedulable calendars electronically
US8903801B2 (en) * 2007-09-14 2014-12-02 Oracle International Corporation Fully automated SQL tuning
CN102541884B (zh) * 2010-12-10 2014-07-02 中国移动通信集团贵州有限公司 数据库优化方法和装置
CN103176974B (zh) 2011-12-20 2016-01-13 国际商业机器公司 优化数据库中访问路径的方法和装置
CN103390066B (zh) * 2013-08-08 2016-02-17 上海新炬网络信息技术有限公司 一种数据库全局性自动化优化预警装置及其处理方法
KR102160251B1 (ko) * 2013-10-23 2020-09-25 삼성전자주식회사 복수의 프로세서들을 병렬적으로 이용하여 시뮬레이션을 수행하는 방법 및 장치
CN105243068A (zh) * 2014-07-09 2016-01-13 华为技术有限公司 数据库系统的查询方法、服务器和能耗测试系统
CN105989137B (zh) * 2015-02-27 2019-12-10 中国移动通信集团河北有限公司 一种结构化查询语言性能优化方法及系统
CN105302858B (zh) * 2015-09-18 2019-02-05 北京国电通网络技术有限公司 一种分布式数据库系统的跨节点查询优化方法及系统
CN106372135A (zh) * 2016-08-26 2017-02-01 深圳市卓讯信息技术有限公司 一种结构化查询语言sql执行效率跟踪方法及装置
US11232102B2 (en) * 2016-10-17 2022-01-25 Salesforce.Com, Inc. Background processing to provide automated database query tuning

Also Published As

Publication number Publication date
US20190065548A1 (en) 2019-02-28
WO2018149085A1 (zh) 2018-08-23
EP3388957B1 (en) 2020-10-14
JP2019508774A (ja) 2019-03-28
AU2017399399B2 (en) 2020-01-23
KR102141083B1 (ko) 2020-08-05
SG11201808828RA (en) 2018-11-29
CN107688589A (zh) 2018-02-13
EP3388957A4 (en) 2018-11-07
KR20190022434A (ko) 2019-03-06
CN107688589B (zh) 2019-02-26
EP3388957A1 (en) 2018-10-17
AU2017399399A1 (en) 2018-10-11
US11132362B2 (en) 2021-09-28

Similar Documents

Publication Publication Date Title
JP6570156B2 (ja) データベースシステム最適化の方法、システム、電子装置及び記憶媒体
CN107239392B (zh) 一种测试方法、装置、终端及存储介质
US20160364273A1 (en) Data Processing Apparatus and Method for Processing Serial Tasks
CN107203462B (zh) 一种数据生成方法及装置
EP4239491A1 (en) Method and system for processing data tables and automatically training machine learning model
US20180247234A1 (en) Platform for management and tracking of collaborative projects
CN109871311B (zh) 一种推荐测试用例的方法和装置
CN112948079A (zh) 任务调度方法、装置、设备和计算机存储介质
US20210191921A1 (en) Method, apparatus, device and storage medium for data aggregation
CN109325167B (zh) 特征分析方法、装置、设备、计算机可读存储介质
WO2021143055A1 (zh) 智能化的数据优化方法、装置、电子设备及存储介质
US20140310248A1 (en) Verification support program, verification support apparatus, and verification support method
CN110704404A (zh) 一种数据质量校验方法、装置、系统
CN115563310A (zh) 一种关键业务节点的确定方法、装置、设备及介质
CN114722048A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN110032445B (zh) 大数据聚集计算方法及装置
CN110134390B (zh) 一种基于用户相似度的可编程控制器图编程控件的智能推送功能的实现方法
CN113778982A (zh) 一种数据迁移方法和装置
CN114048136A (zh) 测试类型确定方法、装置、服务器、介质及产品
CN113343064B (zh) 数据处理方法、装置、设备、存储介质以及计算机程序产品
JP7241201B2 (ja) サンプリング対象特定方法、装置、電子機器およびコンピュータ可読記憶媒体
CN113722292A (zh) 分布式数据系统的应灾处理方法、装置、设备及存储介质
CN117608734A (zh) 一种页面生成方法、装置、设备及存储介质
CN114817058A (zh) 并发风险检测方法、装置、电子设备及存储介质
CN115292179A (zh) 测试数据的生成方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180618

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190719

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: 20190731

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190802

R150 Certificate of patent or registration of utility model

Ref document number: 6570156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250