(57)【要約】  ＳＱＬ審査方法は、低速ログデータを取得すること、低速ログデータから審査対象ＳＱＬ文及びＳＱＬ文と一致する基本情報を抽出し、ＳＱＬ文を識別して解析し、解析結果を得ること、一つずつ予め設定された審査テンプレートの審査項目に従って、解析結果及び／又は基本情報を審査し、審査結果を得ること、審査結果に基づいて審査結果セットを生成することを含む。【選択図】図２
2018532171.tif 000002
【特許請求の範囲】
【請求項１】
ＳＱＬ審査方法であって、
低速ログデータを取得すること、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
前記ＳＱＬ文を識別して解析し、解析結果を得ること、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ること、
前記審査結果に基づいて審査結果セットを生成すること、
を含むＳＱＬ審査方法。
【請求項２】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記予め設定された審査テンプレートは実行計画審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ることを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記予め設定された審査テンプレートはＳＱＬ文法審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ることを含むことを特徴とする請求項１又は３に記載の方法。
【請求項５】
前記審査結果に基づいて審査結果セットを生成した後、前記方法は、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立すること、
前記ＳＱＬベースラインを分析してＳＱＬ審査データを得て、前記ＳＱＬ審査データを表示すること、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することは、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出すること、
前記審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得すること、
前記ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、前記ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、前記ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立すること、を含むことを特徴とする請求項５に記載の方法。
【請求項７】
ＳＱＬ審査装置であって、
低速ログデータを取得するための取得モジュール、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するための抽出モジュール、
前記ＳＱＬ文を識別して解析し、解析結果を得るための解析モジュール、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るための審査モジュール、
前記審査結果に基づいて審査結果セットを生成するための生成モジュール、
を含むＳＱＬ審査装置。
【請求項８】
前記抽出モジュールは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成するためのテーブル生成ユニット、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するための情報抽出ユニット、
を含むことを特徴とする請求項７に記載の装置。
【請求項９】
前記予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含み、
前記審査モジュールはさらに一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得るように構成され、
前記審査モジュールはさらに一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得るように構成される
ことを特徴とする請求項７に記載の装置。
【請求項１０】
前記装置は、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するための確立モジュール、
前記ＳＱＬベースラインを分析してＳＱＬ審査データを得て、前記ＳＱＬ審査データを表示するための表示モジュール、
をさらに含む請求項７乃至９のいずれか１項に記載の装置。
【請求項１１】
前記確立モジュールは、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出するための文抽出ユニットと、
前記審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得するための取得ユニットと、
前記ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、前記ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、前記ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立するための判定ユニットと、
を含むことを特徴とする請求項１０に記載の装置。
【請求項１２】
サーバであって、メモリとプロセッサを含み、前記メモリにコンピュータ実行可能な命令が記憶され、前記コンピュータ実行可能な命令がプロセッサにより実行される際に、前記プロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させるサーバ。
【請求項１３】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項１２に記載のサーバ。
【請求項１４】
前記予め設定された審査テンプレートは実行計画審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ることを含むことを特徴とする請求項１２に記載のサーバ。
【請求項１５】
前記予め設定された審査テンプレートはＳＱＬ文法審査テンプレートを含み、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ることを特徴とする請求項１４に記載のサーバ。
【請求項１６】
前記コンピュータ実行可能な命令が前記プロセッサにより実行される際に、前記プロセッサに、前記審査結果に基づいて審査結果セットを生成するステップを実行した後、さらに、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するステップ、
前記ＳＱＬベースラインを分析してＳＱＬ審査データを得て、前記ＳＱＬ審査データを表示するステップ、
を実行させることを特徴とする請求項１２に記載のサーバ。
【請求項１７】
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することは、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出すること、
前記審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得すること、
前記ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、前記ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、前記ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立すること、
を含むことを特徴とする請求項１６に記載のサーバ。
【請求項１８】
コンピュータ実行可能な命令が記憶された一つ又は複数の記憶デバイスであって、前記コンピュータ実行可能な命令が一つ又は複数のプロセッサにより実行される際に、前記一つ又は複数のプロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させる記憶デバイス。
【請求項１９】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項１８に記載の記憶デバイス。
【請求項２０】
前記予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ること、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ること、
を含むことを特徴とする請求項１８に記載の記憶デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２０１６年９月２８日に中国国家知識産権局へ提出された、発明の名称を「ＳＱＬ審査方法及び装置」とする中国特許出願番号第２０１６１０８６０５５０Ｘ号に基づく優先権を主張し、当該出願に記載された全ての内容をここに援用するものである。
【０００２】
本発明は、データベース技術分野に関し、特に、ＳＱＬ審査方法、装置、サーバ及び記憶デバイスに関する。
【背景技術】
【０００３】
データベースの作業では、データベースによって実行されるＳＱＬ（構造化照会言語：Ｓｔｒｕｃｔｕｒｅｄ  Ｑｕｅｒｙ  Ｌａｎｇｕａｇｅ）文を審査する必要がある場合が多く、これによって、性能の悪いＳＱＬ文が実動システムに組み込まれてデータベース全体の性能が低下することを回避する。データ辞書情報が完全ではないいくつかのデータベース、例えばＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓなどのデータベースに対するＳＱＬ審査は、従来の方法では、ＳＱＬスクリプトだけでＳＱＬ文を解析し、いくつかの簡単な審査作業を行うことはできたが、ＳＱＬに対してより詳細な審査、例えばＳＱＬの実行計画審査などを行うことができず、その結果、ＳＱＬ審査が正しく行えなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の様々な実施形態に基づき、ＳＱＬ審査方法、装置、サーバ及び記憶デバイスを提供する。
【課題を解決するための手段】
【０００５】
ＳＱＬ審査方法は、
低速ログデータを取得すること、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
前記ＳＱＬ文を識別して解析し、解析結果を得ること、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ること、
前記審査結果に基づいて審査結果セットを生成すること、
を含むことを特徴とする。
【０００６】
ＳＱＬ審査装置は、
低速ログデータを取得するための取得モジュール、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するための抽出モジュール、
前記ＳＱＬ文を識別して解析し、解析結果を得るための解析モジュール、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るための審査モジュール、
前記審査結果に基づいて審査結果セットを生成するための生成モジュール、
を含むことを特徴とする。
【０００７】
サーバは、メモリとプロセッサを含み、前記メモリにコンピュータ実行可能な命令が記憶され、前記コンピュータ実行可能な命令がプロセッサにより実行される際に、前記プロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させることを特徴とする。
【０００８】
コンピュータ実行可能な命令が記憶された一つ又は複数の記憶デバイスであって、前記コンピュータ実行可能な命令が一つ又は複数のプロセッサにより実行される際に、前記一つ又は複数のプロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させることを特徴とする。
【０００９】
本発明の１つ又は複数の実施形態の詳細を、下記の図面及び記載において説明する。本発明の他の特徴、目的と利点は明細書、図面及び特許請求の範囲から明らかになる。
【００１０】
本発明の実施形態又は従来技術における技術的解決手段をより明確に説明するため、以下、実施形態又は従来技術に用いられる図面を簡単に紹介する。なお、下記図面は単に本発明のいくつかの実施形態を示しているに過ぎず、当業者が創造的な努力を払うことなく、下記図面に基づいて他の図面を得ることができることを理解されたい。
【図面の簡単な説明】
【００１１】
【図１】一実施形態におけるサーバのブロック図である。
【図２】一実施形態におけるＳＱＬ審査方法のフローチャートである。
【図３】一実施形態における予め設定された審査テンプレートの審査項目に従って審査するフローチャートである。
【図４】一実施形態におけるＳＱＬベースラインを確立して分析するフローチャートである。
【図５】一実施形態におけるＳＱＬベースラインを確立するフローチャートである。
【図６】一実施形態におけるＳＱＬ審査装置のブロック図である。
【図７】一実施形態における抽出モジュールのブロック図である。
【図８】別の実施形態におけるＳＱＬ審査装置のブロック図である。
【図９】一実施形態における確立モジュールのブロック図である。
【発明を実施するための形態】
【００１２】
本発明の目的、技術的解決手段及び効果をより明らかにするために、以下、図面及び実施形態を参照して、本発明を更に詳細に説明する。なお、以下に説明する具体的な実施形態は、本発明の例示にすぎず、本発明を限定するものではないと理解されたい。
【００１３】
図１は一実施形態におけるサーバのブロック図である。図１に示すように、該サーバはシステムバスを介して接続されたプロセッサ、メモリとネットワークインタフェースを含む。そのうち、該サーバのプロセッサは計算機能と制御機能を提供し、サーバ全体の動作をサポートするのに用いられる。該サーバのメモリはデータ、コードコマンドなどを記憶することに用いられ、一実施形態において、メモリは不揮発性記憶媒体及び内部メモリを含むことができる。不揮発性記憶媒体にはオペレーティングシステム、データベース及びコンピュータ実行可能な命令が記憶され、データベースに低速ログデータが記憶され、該コンピュータ実行可能な命令が本発明の実施形態において提供されるサーバに適用するＳＱＬ審査方法を実現するのに用いられる。内部メモリは不揮発性記憶媒体におけるオペレーティングシステム及びコンピュータ実行可能な命令に高速バッファの実行環境を提供する。該サーバのネットワークインタフェースはネットワークを介して外部端末と通信するのに用いられ、例えば端末から送信された変更後のＳＱＬ文を受信すること、及び端末へＳＱＬ審査データを返信することなどがある。サーバは独立したサーバ又は複数のサーバからなるサーバ群によって構成されてもよい。当業者であれば、図１に示す構造は本発明の解決手段と関連する部分構造のブロック図を示すのみであり、本発明の解決手段のその上のサーバへの応用に対する限定を構成するものではないことが理解できるはずである。具体的な端末は図に示す部材より多くのまたはより少ない部材、又はいくつかの部材を組み合わせたものを含んでもよく、或いは異なる部材配置を有してもよい。
【００１４】
図２に示すように、一つの実施形態においてＳＱＬ審査方法が提供され、図１に示すサーバに適用し、該方法は以下のステップを含む。
【００１５】
ステップＳ２１０では、低速ログデータを取得する。
【００１６】
サーバは外部リンクテーブルを通じてデータ辞書情報が完全ではないターゲットデータベース、例えばＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓなどのターゲットデータベースから低速ログデータを取得することができ、その中で、低速ログデータが低速クエリログデータであり、データベース内で指定された時間を超えるＳＱＬ文クエリが「低速クエリ」と呼ばれ、低速ログデータに指定された時間を超えるＳＱＬ文、及びログ時間、記憶位置、実行時間、実行者番号などのＳＱＬ文を実行する時に生成された関連データが記憶される。
【００１７】
ステップＳ２２０では、低速ログデータから審査対象ＳＱＬ文及びＳＱＬ文と一致する基本情報を抽出する。
【００１８】
サーバは取得された低速ログデータから審査対象ＳＱＬ文、及びＳＱＬ文を審査するために必要な審査対象ＳＱＬ文と一致する基本情報を抽出することができ、基本情報は予め設定された審査テンプレートの審査項目に基づいて抽出されてもよく、基本情報は実行回数、総実行時間、実行操作、実行オーバーヘッドなどを含むことができる。低速ログデータから審査対象ＳＱＬ文を抽出することはＳＱＬ文をスクリーニングすることに相当し、ＳＱＬ文の実行時間に基づいて性能が良いＳＱＬ文をフィルタリングし、指定された時間を超える性能の悪いＳＱＬ文を審査する。
【００１９】
一つの実施形態において、低速ログデータから審査対象ＳＱＬ文及びＳＱＬ文と一致する基本情報を抽出するステップＳ２２０は（ａ）と（ｂ）を含む。
【００２０】
（ａ）予め設定されたフォーマットに基づいて低速ログデータを分析し、低速ログデータテーブルを生成する。
【００２１】
サーバは低速ログデータを分析し且つ予め設定されたフォーマットに従って低速ログデータにおけるデータを抽出することができ、予め設定されたフォーマットが実際のニーズに応じて設定されてもよい。例えば、予め設定されたフォーマットにはフィールド名、フィールドタイプ、フィールド内容を含むことができ、そのため低速ログデータにおける各フィールド名、及びフィールド名に対応するフィールドタイプ及びフィールド内容が抽出される。予め設定されたフォーマットに従って低速ログデータから抽出されたデータに基づいて低速ログデータテーブルを生成することができ、低速ログデータテーブルのフォーマット内容が予め設定されたフォーマット及び抽出されたデータに対応し、例えば、低速ログデータテーブルは表１に示されるものであってもよい。
【００２２】
【表１】
2018532171.tif 000003
【００２３】
ここで、ｌｏｇ＿ｔｉｍｅがログ時間で、ｕｓｅｒ＿ｎａｍｅがユーザ名で、ｄａｔａｂａｓｅ＿ｎａｍｅがデータベース名で、ｕｓｅｒｉｄがユーザ番号で、ｃａｌｌｓが実行回数で、ｔｏｔａｌ＿ｔｉｍｅが総実行時間であり、当然のことながら、低速ログデータテーブルの内容及びフォーマットは表１に示す内容及びフォーマットに限定されるものではない。
【００２４】
（ｂ）低速ログデータテーブルにおけるフィールド名に基づいて低速ログデータテーブルから審査対象ＳＱＬ文及びＳＱＬ文と一致する基本情報を抽出する。
【００２５】
サーバは低速ログデータテーブルから、フィールド名がｑｕｅｒｙであり、即ちフィールド名が実行文であるフィールド内容を審査対象ＳＱＬ文として抽出し、予め設定された審査テンプレートの審査項目に基づき、低速ログデータテーブルから対応する、ＳＱＬ文と一致する基本情報を抽出することができる。例えば、予め設定された審査テンプレートの審査項目が実行時間を含むため、低速ログデータテーブルからフィールド名がｃａｌｌｓ及びｔｏｔａｌ＿ｔｉｍｅであるフィールド内容をＳＱＬ文と一致する基本情報として抽出する。
【００２６】
ステップＳ２３０では、ＳＱＬ文を識別して解析し、解析結果を得る。
【００２７】
サーバは低速ログデータから抽出されたＳＱＬ文を識別して解析し、審査テンプレートによって識別できる解析結果を得ることができ、本実施形態では、ＳＱＬ文が解析された後にＳＱＬツリー解析結果を得ることができ、審査テンプレートの審査項目に従って解析結果を審査することが容易になる。
【００２８】
ステップＳ２４０では、一つずつ予め設定された審査テンプレートの審査項目に従って、解析結果及び／又は基本情報を審査し、審査結果を得る。
【００２９】
予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含むことができる。実行計画審査テンプレートはＳＱＬ文の実行計画を審査するものであり、データベース内で、一つのＳＱＬ文が取得したいデータを表すが、どのようにデータを取得するかは表しておらず、例えば、一つのＳＱＬ文により、深センに住む全ての顧客を抽出できる。このＳＱＬ文がサーバのデータベースに受信された場合、計算により、顧客テーブル全体を読み取るか、インデックスを使用してデータを取得するかを選択し、最終ＳＱＬ文が物理的に実行される方法は実行計画と呼ばれる。実行計画審査テンプレートの審査項目は低速クエリ、高コスト操作などを含むことができる。ＳＱＬ文法審査テンプレートはＳＱＬ文自体の文法セマンティクスを審査するものであり、ＳＱＬ文法審査テンプレートの審査項目はクエリ節の繰り返し禁止、「ｓｅｌｅｃｔ  ＊」禁止などを含むことができる。サーバは一つずつ予め設定された審査テンプレートの各審査項目に従って、解析結果及び／又は基本情報を審査することができ、審査テンプレートのいずれかの審査項目を満たさない場合、審査を通過せず、全て審査テンプレートの各審査項目を満たす場合、審査を通過する。
【００３０】
ステップＳ２５０では、審査結果に基づいて審査結果セットを生成する。
【００３１】
サーバは低速ログデータから抽出された複数のＳＱＬ文及び各ＳＱＬ文と一致する基本情報を監査し、且つ監査結果に基づいて監査結果セットを生成することができ、監査結果セットが監査されたＳＱＬ文のＳＱＬ番号、データベース名、実行時間、命令タイプ、監査状態、違反項目などの内容を含むことができ、且つ監査結果セットを監査データベースに記憶し、そのうち、審査状態が審査結果を表し、０、１などの数字又は他のアルファベット、記号などで審査結果が通過又は未通過であることを表すことができる。
【００３２】
上記ＳＱＬ審査方法では、低速ログデータから審査対象ＳＱＬ文及びＳＱＬと一致する基本情報を抽出し、且つ予め設定された審査テンプレートの審査項目に従って、ＳＱＬ文を解析して得られた解析結果及びＳＱＬ文と一致する基本情報を審査し、低速ログデータをマイニングして分析することにより、データ辞書情報が完全ではないデータベースに、ＳＱＬの詳細な審査が可能なＳＱＬ文とＳＱＬ文と一致する基本情報を拡張することができ、それによってＳＱＬ審査がより目的性を有し、且つＳＱＬ審査の正確性が効果的に向上する。
【００３３】
図３に示すように、一つの実施形態において、一つずつ予め設定された審査テンプレートの審査項目に従って、解析結果及び／又は基本情報を審査し、審査結果を得るステップＳ２４０はステップＳ３０２とステップＳ３０４を含むことができる。
【００３４】
ステップＳ３０２では、一つずつ実行計画審査テンプレートの審査項目に従って、基本情報のうちの審査項目と一致するデータを抽出して審査し、審査結果を得る。
【００３５】
予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含むことができ、実行計画審査テンプレートがＳＱＬ文の実行計画を審査するものである。実行計画審査テンプレートの審査項目は低速クエリ、高コスト操作などの項目を含むことができ、そのうち、低速クエリの審査内容はＳＱＬ文の実行時間が予め設定された実行時間より大きいか、例えば実行時間が１s（秒）より大きいかを判定することであり、高コスト操作の審査内容はＳＱＬ文に高コスト操作があるかどうか、例えばＳｅｑ  Ｓｃａｎ（シーケンススキャン）、全テーブルスキャンなどの操作があるかどうかを判定することである。実行計画審査テンプレートの審査項目の審査内容は一般的にＳＱＬ文と一致する基本情報から取得される必要がある。例えば実行時間が予め設定された実行時間より大きいかどうかを審査すると、基本情報から実行回数及び総実行時間を取得し、且つ平均値、即ち実行時間を求める必要があり、高コスト操作を審査すると、基本情報のうちの実行操作を取得する必要がある。各審査項目は唯一の対応する審査項目番号を有し、審査に通過しない場合、通過しなかった審査項目番号を記録することができる。
【００３６】
ステップＳ３０４では、一つずつＳＱＬ文法審査テンプレートの審査項目に従って、解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得る。
【００３７】
ＳＱＬ文法審査テンプレートはＳＱＬ文自体の文法セマンティクスを審査するものであり、ＳＱＬ文法審査テンプレートの審査項目は、「ｓｅｌｅｃｔ  ＊」の使用を禁止すること、クエリ節の繰り返しを禁止すること、ｕｐｄａｔｅにｏｒｄｅｒ  ｂｙ節を含むのを禁止すること、ｕｐｄａｔｅにｗｈｅｒｅ節が必要であること、ｓｅｌｅｃｔ節の埋め込みを禁止すること、ｄｅｌｅｔｅにｗｈｅｒｅ節が必要であること、ｄｅｌｅｔｅにｏｒｄｅｒ  ｂｙ節を含むのを禁止すること、ｄｅｌｅｔｅにｌｉｍｉｔ節を含むのを禁止することなどを含むことができる。クエリ節の繰り返しを禁止するという審査項目は、ＳＱＬ文の実行効率を向上させることができ、ｕｐｄａｔｅにｏｒｄｅｒ  ｂｙ節を含むのを禁止すること、ｄｅｌｅｔｅにｏｒｄｅｒ  ｂｙ節を含むのを禁止すること、及びｄｅｌｅｔｅにｌｉｍｉｔ節を含むのを禁止することの審査項目は、ＤＭＬ（データ操作言語：Ｄａｔａ  Ｍａｎｉｐｕｌａｔｉｏｎ  Ｌａｎｇｕａｇｅ）中に不要なソートが発生するのを防止することができ、ｕｐｄａｔｅにｗｈｅｒｅ節が必要であること及びｄｅｌｅｔｅにｗｈｅｒｅ節が必要であるという審査項目は、ＤＭＬ中に全テーブルロックが現れるのを防止することができる。一つずつＳＱＬ文法審査テンプレートの各審査項目に基づいて解析して得られたＳＱＬツリー解析結果を分析して審査し、審査結果を得ることができる。
【００３８】
予め設定された審査テンプレートの各審査項目は異なる審査値に対応し、審査されるＳＱＬ文をスコア化することができる。審査項目を通過しない場合、ＳＱＬ文の総審査値から通過しなかった審査項目に対応する審査値を差し引き、審査が終了した後、最後の審査値を得ることができ、ＳＱＬ文をスコア化することにより、ＳＱＬ文の性能良否程度を明確に得ることができる。例えば、実行計画審査テンプレートにおける低速クエリ及び高コスト操作のそれぞれに対応する審査データが１点、２点であり、ＳＱＬ文の総審査値が１００点であり、ＳＱＬ文が低速クエリの審査項目を満たさないと、１点を差し引き、最後の審査値が９９点となる。
【００３９】
本実施形態では、実行計画審査テンプレート及びＳＱＬ文法審査テンプレートにより、ＳＱＬ文を解析して得られた解析結果及び／又はＳＱＬ文と一致する基本情報を一つずつ審査することができ、データ辞書情報が完全ではないデータベースにおけるＳＱＬに対してより詳細な審査を行うことができ、ＳＱＬ審査がより目的性を有し、且つＳＱＬ審査の正確性が効果的に向上する。
【００４０】
図４に示すように、一つの実施形態において、審査結果に基づいて審査結果セットを生成するステップＳ２５０の後、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するステップＳ４０２をさらに含む。
【００４１】
ＳＱＬベースラインは審査結果が未通過であるＳＱＬ文の関連データ及び状態の変化過程を記録することに用いられてもよく、ＳＱＬベースラインはＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査が通過しない審査項目番号、審査状態などを含むことができ、ＳＱＬベースラインを確立する場合、審査状態が未通過であり、データベース管理者がＳＱＬ文を修正した後、審査状態は通過として変更してもよい。
【００４２】
図５に示すように、一つの実施形態において、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するステップＳ４０２は以下のステップを含む。
【００４３】
ステップＳ５０２では、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出する。
【００４４】
ステップＳ５０４では、審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しなかった審査項目番号を取得する。
【００４５】
サーバは審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することができ、審査結果セットから審査結果が未通過であるＳＱＬ文のＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査が未通過である審査項目番号などの情報を取得することができる。
【００４６】
ステップＳ５０６では、ＳＱＬ番号及び通過しなかった審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、ステップＳ５０８を実行し、そうでない場合、ステップＳ５１０を実行する。
【００４７】
ＳＱＬ文の各通過しなかった審査項目は唯一のＳＱＬベースラインに対応でき、即ち各ＳＱＬベースラインが唯一の対応するＳＱＬ番号及び通過しなかった審査項目番号を有し、ＳＱＬ文の通過しなかった項目が複数ある場合、複数の対応するＳＱＬベースラインを確立する必要がある。サーバは審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出し、且つＳＱＬ番号及び通過しない審査項目番号を取得した後、まずＳＱＬ番号に基づいて監査データベースで対応するＳＱＬベースラインがあるかどうかを検索し、そうである場合、さらにＳＱＬ番号に対応するＳＱＬベースラインから、審査項目番号と一致するＳＱＬベースラインがあるかどうかを検索し、そうである場合、ＳＱＬベースラインを再確立する必要がなく、一致するＳＱＬベースラインの審査状態を未通過に変更すればよい。
【００４８】
ステップＳ５０８では、ＳＱＬの基本的な状態を未通過としてマーキングする。
【００４９】
ステップＳ５１０では、ＳＱＬ番号及び通過しなかった審査項目番号に基づいてＳＱＬベースラインを確立する。
【００５０】
ＳＱＬ番号及び通過しない審査項目番号と一致しないＳＱＬベースラインがない場合、ＳＱＬ番号及び通過しない審査項目番号に基づいて監査データベースにＳＱＬベースラインを確立し、ＳＱＬベースラインにおける審査状態を未通過としてマーキングする。
【００５１】
ステップＳ４０４では、ＳＱＬベースラインを分析してＳＱＬ審査データを得て、ＳＱＬ審査データを表示する。
【００５２】
具体的には、サーバは予め設定された時間、例えば１時間、３時間などの時間ごとに監査データベースから予め設定された時間内で新しく確立された又は状態が新たに未通過としてマーキングされたＳＱＬベースラインを抽出し、ＳＱＬの審査データを得ることができ、ＳＱＬの審査データはＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査を通過しない審査項目番号などの内容を含むことができ、且つ端末によって表示される。データベース管理者は表示されたＳＱＬ審査データに基づいてＳＱＬ文を審査項目を満たすように修正することができ、修正が完了した後、修正結果に基づいてＳＱＬベースラインの審査状態を変更することができ、ＳＱＬ文の審査を通過しない審査項目が既に修正された場合、該修正された審査項目番号と一致するＳＱＬベースラインの審査状態を通過としてマーキングすることができる。他の実施形態において、一定時間ごとにベースラインレポートを生成し、例えばベースライン日報とベースライン月報を生成することができ、ベースラインレポートに該時間内で全ての新しく生成されたＳＱＬベースライン、及び審査状態が変更されたＳＱＬベースラインが記録され、データベース管理者が監査データベースにおけるＳＱＬベースラインの変化を理解するのが容易になる。
【００５３】
本実施形態において、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することにより、データベース管理者がデータベースにおける審査を通過しないＳＱＬ文を修正することが容易となり、ＳＱＬ審査作業の効率を効果的に高め、データベースのデータ処理性能の向上に役立つ。
【００５４】
図６に示すように、一つの実施形態において、ＳＱＬ審査装置が提供され、取得モジュール６１０、抽出モジュール６２０、解析モジュール６３０、審査モジュール６４０及び生成モジュール６５０を含む。
【００５５】
取得モジュール６１０は、低速ログデータを取得するためのものである。
【００５６】
サーバは外部リンクテーブルを通じてデータ辞書情報が完全ではないターゲットデータベース、例えばＭｙＳＱＬ、Ｐｏｓｔｇｒｅｓなどのターゲットデータベースから低速ログデータを取得することができ、そのうち、低速ログデータが低速クエリログデータであり、データベース内で指定された時間を超えるＳＱＬ文クエリが「低速クエリ」と呼ばれ、低速ログデータに指定された時間を超えるＳＱＬ文、及びログ時間、記憶位置、実行時間、実行者番号などのＳＱＬ文を実行する時に生成された関連データが記録される。
【００５７】
抽出モジュール６２０は、低速ログデータから審査対象ＳＱＬ文及びＳＱＬ文と一致する基本情報を抽出するためのものである。
【００５８】
サーバは取得された低速ログデータから審査対象ＳＱＬ文、及び審査ＳＱＬ文を審査するために必要な審査対象ＳＱＬ文と一致する基本情報を抽出することができ、基本情報が予め設定された審査テンプレートの審査項目に基づいて抽出されてもよく、基本情報が実行回数、総実行時間、実行操作、実行オーバーヘッドなどを含むことができる。低速ログデータから審査対象ＳＱＬ文を抽出することはＳＱＬ文をスクリーニングすることに相当し、ＳＱＬ文の実行時間に基づいて性能が良いＳＱＬ文をフィルタリングし、指定された時間を超える性能が悪いＳＱＬ文を審査する。
【００５９】
図７に示すように、一つの実施形態において、抽出モジュール６２０はテーブル生成ユニット６２２及び情報抽出ユニット６２４を含む。
【００６０】
テーブル生成ユニット６２２は、予め設定されたフォーマットに基づいて低速ログデータを分析し、低速ログデータテーブルを生成するためのものである。
【００６１】
サーバは低速ログデータを分析して予め設定されたフォーマットに従って低速ログデータにおけるデータを抽出することができ、予め設定されたフォーマットが実際のニーズに応じて設定されてもよい。例えば、予め設定されたフォーマットには、フィールド名、フィールドタイプ、フィールド内容を含むことができ、そのため低速ログデータにおける各フィールド名、及びフィールド名に対応するフィールドタイプ及びフィールド内容を抽出する。予め設定されたフォーマットに従って低速ログデータから抽出されたデータに基づいて低速ログデータテーブルを生成することができ、低速ログデータテーブルのフォーマット内容が予め設定されたフォーマット及び抽出されたデータに対応し、例えば、低速ログデータテーブルは表１に示されるものであってもよく、そのうち、ｌｏｇ＿ｔｉｍｅがログ時間で、ｕｓｅｒ＿ｎａｍｅがユーザ名で、ｄａｔａｂａｓｅ＿ｎａｍｅがデータベース名で、ｕｓｅｒｉｄがユーザ番号で、ｃａｌｌｓが実行回数で、ｔｏｔａｌ＿ｔｉｍｅが総実行時間である。当然のことながら、低速ログデータテーブルの内容及びフォーマットは表１に示す内容及びフォーマットに限定されるものではない。
【００６２】
情報抽出ユニット６２４は低速ログデータテーブルにおけるフィールド名に基づいて低速ログデータテーブルから審査対象ＳＱＬ文及びＳＱＬ文とマッチングする基本情報を抽出するためのものである。
【００６３】
サーバは低速ログデータテーブルから、フィールド名がｑｕｅｒｙであり、即ちフィールド名が実行文であるフィールド内容を審査対象ＳＱＬ文として抽出し、予め設定された審査テンプレートの審査項目に基づき、低速ログデータテーブルから対応する、ＳＱＬ文と一致する基本情報を抽出することができる。例えば、予め設定された審査テンプレートの審査項目が実行時間を含むため、低速ログデータテーブルからフィールド名がｃａｌｌｓ及びｔｏｔａｌ＿ｔｉｍｅであるフィールド内容をＳＱＬ文と一致する基本情報として抽出する。
【００６４】
解析モジュール６３０は、ＳＱＬ文を識別して解析し、解析結果を得るためのものである。
【００６５】
サーバは低速ログデータから抽出されたＳＱＬ文を識別して解析し、審査テンプレートによって識別できる解析結果を得ることができ、本実施形態では、ＳＱＬ文が解析された後にＳＱＬツリー解析結果を得ることができ、審査テンプレートの審査項目に従って解析結果を審査することが容易になる。
【００６６】
審査モジュール６４０は、一つずつ予め設定された審査テンプレートの審査項目に従って、解析結果及び／又は基本情報を審査し、審査結果を得るためのものである。
【００６７】
予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含むことができる。実行計画審査テンプレートはＳＱＬ文の実行計画を審査するものであり、データベース内で、一つのＳＱＬ文が取得したいデータを表すが、どのようにデータを取得するかは表さず、例えば、一つのＳＱＬ文により、深センに住む全ての顧客を抽出できる。このＳＱＬ文がサーバのデータベースに受信された場合、計算により、顧客テーブル全体を読み取るかインデックスを使用してデータを取得するかを選択し、最終ＳＱＬ文が物理的に実行される方法が実行計画と呼ばれる。実行計画審査テンプレートの審査項目は低速クエリ、高コスト操作などを含むことができる。ＳＱＬ文法審査テンプレートはＳＱＬ文自体の文法セマンティクスを審査するものであり、ＳＱＬ文法審査テンプレートの審査項目はクエリ節の繰り返し禁止、「ｓｅｌｅｃｔ  ＊」禁止などを含むことができる。サーバは一つずつ予め設定された審査テンプレートの各審査項目に従って、解析結果及び／又は基本情報を審査することができ、審査テンプレートのいずれかの審査項目を満たさない場合、審査を通過せず、全て審査テンプレートの各審査項目を満たす場合、審査を通過する。
【００６８】
生成モジュール６５０は、審査結果に基づいて審査結果セットを生成するためのものである。
【００６９】
サーバは低速ログデータから抽出された複数のＳＱＬ文及び各ＳＱＬ文と一致する基本情報を審査し、且つ審査結果に基づいて審査結果セットを生成することができ、審査結果セットが審査されたＳＱＬ文のＳＱＬ番号、データベース名、実行時間、命令タイプ、審査状態、違反項目などの内容を含むことができ、且つ審査結果セットを監査データベースに記憶し、そのうち、審査状態が審査結果を表し、０、１などの数字又は他のアルファベット、記号などで審査結果が通過又は未通過であることを表すことができる。
【００７０】
上記ＳＱＬ審査装置では、低速ログデータから審査対象ＳＱＬ文及びＳＱＬと一致する基本情報を抽出し、且つ予め設定された審査テンプレートの審査項目に従って、ＳＱＬ文を解析して得られた解析結果及びＳＱＬ文と一致する基本情報を審査し、低速ログデータをマイニングして分析することにより、データ辞書情報が完全ではないデータベースにＳＱＬの詳細な審査が可能なＳＱＬ文とＳＱＬ文と一致する基本情報を拡張することができ、それによってＳＱＬ審査がより目的性を有し、且つＳＱＬ審査の正確性が効果的に向上する。
【００７１】
一つの実施形態において、審査モジュール６４０は、さらに一つずつ実行計画審査テンプレートの審査項目に従って、基本情報のうちの審査項目と一致するデータを抽出して審査し、審査結果を得るためのものである。
【００７２】
予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含むことができ、実行計画審査テンプレートがＳＱＬ文の実行計画を審査するものである。実行計画審査テンプレートの審査項目は低速クエリ、高コスト操作などの項目を含むことができ、そのうち、低速クエリの審査内容はＳＱＬ文の実行時間が予め設定された実行時間より大きいか、例えば実行時間が１s（秒）より大きいかを判定することであり、高コスト操作の審査内容はＳＱＬ文に高コスト操作があるかどうか、例えばシーケンススキャン（Ｓｅｑ  Ｓｃａｎ）、全テーブルスキャンなどの操作があるかどうかを判定することである。実行計画審査テンプレートの審査項目の審査内容は一般的にＳＱＬ文と一致する基本情報から取得される必要があり、例えば実行時間が予め設定された実行時間より大きいかどうかを審査すると、基本情報から実行回数及び総実行時間を取得し、且つ平均値、即ち実行時間を求める必要があり、高コスト操作を審査すると、基本情報のうちの実行操作を取得する必要がある。各審査項目は唯一の対応する審査項目番号を有し、審査に通過しない場合、通過しなかった審査項目番号を記録することができる。
【００７３】
審査モジュール６４０は、さらに一つずつＳＱＬ文法審査テンプレートの審査項目に従って、解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得るためのものである。
【００７４】
ＳＱＬ文法審査テンプレートはＳＱＬ文自体の文法セマンティクスを審査するものであり、ＳＱＬ文法審査テンプレートの審査項目は「ｓｅｌｅｃｔ  ＊」の使用を禁止すること、クエリ節の繰り返しを禁止すること、ｕｐｄａｔｅにおけるｏｒｄｅｒ  ｂｙ節の使用を禁止すること、ｕｐｄａｔｅにｗｈｅｒｅ節を必要とすること、ｓｅｌｅｃｔ節の埋め込みを禁止すること、ｄｅｌｅｔｅにｗｈｅｒｅ節を必要とすること、ｄｅｌｅｔｅにおけるｏｒｄｅｒ  ｂｙ節の使用を禁止すること、ｄｅｌｅｔｅにおけるｌｉｍｉｔ節の使用を禁止することなどを含むことができる。クエリ節の繰り返しを禁止するという審査項目はＳＱＬ文の実行効率を向上させることができ、ｕｐｄａｔｅにおけるｏｒｄｅｒ  ｂｙ節の使用を禁止すること、ｄｅｌｅｔｅにおけるｏｒｄｅｒ  ｂｙ節の使用を禁止すること、及びｄｅｌｅｔｅにおけるｌｉｍｉｔ節の使用を禁止するという審査項目は、ＤＭＬ（データ操作言語：Ｄａｔａ  Ｍａｎｉｐｕｌａｔｉｏｎ  Ｌａｎｇｕａｇｅ）中に不要なソートが発生するのを防止することができ、ｕｐｄａｔｅにｗｈｅｒｅ節を必要とすること、及びｄｅｌｅｔｅにｗｈｅｒｅ節を必要とするという審査項目は、ＤＭＬ中に全テーブルロックが現れるのを防止できる。一つずつＳＱＬ文法審査テンプレートの各審査項目に基づいて解析して得られたＳＱＬツリー解析結果を分析して審査し、審査結果を得ることができる。
【００７５】
予め設定された審査テンプレートの各審査項目は異なる審査値に対応し、審査されたＳＱＬ文をスコア化することができる。審査項目を通過しない場合、ＳＱＬ文の総審査値から通過しない審査項目に対応する審査値を差し引き、審査が終了した後、最後の審査値を得ることができ、ＳＱＬ文をスコア化することにより、ＳＱＬ文の性能良否程度を明確に得ることができる。例えば、実行計画審査テンプレートにおける低速クエリ及び高コスト操作のそれぞれに対応する審査データが１点、２点であり、ＳＱＬ文の総審査値が１００点であり、ＳＱＬ文が低速クエリの審査項目を満たさないと、１点を差し引き、最後の審査値が９９点となる。
【００７６】
本実施形態では、実行計画審査テンプレート及びＳＱＬ文法審査テンプレートにより、ＳＱＬ文を解析して得られた解析結果及び／又はＳＱＬ文と一致する基本情報を一つずつ審査することができ、データ辞書情報が完全ではないデータベースにおけるＳＱＬに対してより詳細な審査を行うことができ、ＳＱＬ審査がより目的性を有し、且つＳＱＬ審査の正確性が効果的に向上する。
【００７７】
図８に示すように、一つの実施形態において、上記ＳＱＬ審査装置は、取得モジュール６１０、抽出モジュール６２０、解析モジュール６３０、審査モジュール６４０及び生成モジュール６５０に加えて、確立モジュール６６０及び表示モジュール６７０を含む。
【００７８】
確立モジュール６６０は、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するためのものである。
【００７９】
ＳＱＬベースラインは審査結果が未通過であるＳＱＬ文の関連データ及び状態の変化過程を記録するのに用いられてもよく、ＳＱＬベースラインはＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査を通過しない審査項目番号、審査状態などを含むことができ、ＳＱＬベースラインを確立する場合、審査状態が未通過であり、データベース管理者がＳＱＬ文を修正した後、審査状態は通過として変更されてもよい。
【００８０】
図９に示すように、一つの実施形態において、確立モジュール６６０は、文抽出ユニット６６２、取得ユニット６６４及び判定ユニット６６６を含む。
【００８１】
文抽出ユニット６６２は、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出するためのものである。
【００８２】
取得ユニット６６４は、審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得するためのものである。
【００８３】
サーバは審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することができ、審査結果セットから審査結果が未通過であるＳＱＬ文のＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査が未通過である審査項目番号などの情報を取得することができる。
【００８４】
判定ユニット６６６は、ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立するためのものである。
【００８５】
ＳＱＬ文の各通過しない審査項目は唯一のＳＱＬベースラインに対応でき、即ち各ＳＱＬベースラインが唯一の対応するＳＱＬ番号及び通過しない審査項目番号を有し、ＳＱＬ文の通過しない項目が複数ある場合、複数の対応するＳＱＬベースラインを確立する必要がある。審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出し、且つＳＱＬ番号及び通過しない審査項目番号を取得した後、まずＳＱＬ番号に基づいて監査データベースで対応するＳＱＬベースラインがあるかどうかを検索し、そうである場合、さらにＳＱＬ番号に対応するＳＱＬベースラインから、審査項目番号と一致するＳＱＬベースラインがあるかどうかを検索し、そうである場合、ＳＱＬベースラインを再確立する必要がなく、一致するＳＱＬベースラインの審査状態を未通過に変更すればよい。ＳＱＬ番号及び通過しない審査項目番号と一致するＳＱＬベースラインがない場合、ＳＱＬ番号及び通過しない審査項目番号に基づいて監査データベースにＳＱＬベースラインを確立し、ＳＱＬベースラインにおける審査状態を未通過としてマーキングする。
【００８６】
表示モジュール６７０は、ＳＱＬベースラインを分析してＳＱＬ審査データを得て、ＳＱＬ審査データを表示するためのものである。
【００８７】
サーバは予め設定された時間、例えば１時間、３時間などの時間ごとに監査データベースから予め設定された時間内で新しく確立された、又は状態が新たに未通過としてマーキングされたＳＱＬベースラインを抽出し、ＳＱＬの審査データを得ることができ、ＳＱＬの審査データはＳＱＬ文内容、ＳＱＬ番号、データベース名、ユーザ名、審査を通過しない審査項目番号などの内容を含むことができ、且つ端末に表示される。データベース管理者は表示されたＳＱＬ審査データに基づいてＳＱＬ文を審査項目を満たすように修正することができ、修正が完了した後、修正結果に基づいてＳＱＬベースラインの審査状態を変更することができ、ＳＱＬ文の審査が通過しない審査項目が既に修正された場合、該修正された審査項目番号と一致するＳＱＬベースラインの審査状態を通過としてマーキングすることができる。他の実施形態において、一定時間ごとにベースラインレポートを生成し、例えばベースライン日報とベースライン月報を生成することができ、ベースラインレポートに該時間内で全ての新しく生成されたＳＱＬベースライン、及び審査状態が変更されたＳＱＬベースラインが記録され、データベース管理者が監査データベースにおけるＳＱＬベースラインの変化を理解するのが容易になる。
【００８８】
本実施形態において、審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することにより、データベース管理者がデータベースにおける審査を通過しないＳＱＬ文を修正することが容易になり、ＳＱＬ審査作業の効率を効果的に高め、データベースのデータ処理性能の向上に役立つ。
【００８９】
上記ＳＱＬ審査装置の各モジュールは全て又は一部でソフトウェア、ハードウェア及びそれらの組み合わせで実現されてもよい。例えば、ハードウェアで実現される場合、端末がＳＱＬ審査データを表示するように、上記表示モジュール６７０はサーバのネットワークインタフェースを介して端末へＳＱＬ審査データを送信することができ、審査モジュール６４０はサーバのプロセッサにより一つずつ予め設定された審査テンプレートの審査項目に従って、解析結果及び／又は基本情報を審査し、審査結果を得ることができ、そのうち、プロセッサは中央処理ユニット、マイクロプロセッサなどであってもよい。上記各モジュールはハードウェアの形でサーバのプロセッサに内蔵される、又はそれから独立することができ、プロセッサが呼び出して以上の各モジュールに対応する操作を実行するように、ソフトウェアの形で基地局のメモリに記憶されてもよい。
【００９０】
コンピュータプログラムによって関連するハードウェアに指示することにより、上記実施形態における方法の全て又は一部のプロセスを実現することができることを、当業者は理解すべきである。上記プログラムはコンピュータ読み取り可能な記憶媒体に記憶されてもよく、該プログラムは実行される際に、上記各方法の実施形態のプロセスを含むことができる。そのうち、記憶媒体はディスク、光ディスク、読み取り専用メモリ（ＲＯＭ：Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）またはランダムアクセスメモリ（ＲＡＭ：Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などであってもよい。
【００９１】
上記した実施形態の各技術特徴は任意に組み合わせてもよく、記載を簡潔にするため、上記実施形態における各技術特徴の全ての可能な組み合わせを記載していないが、これらの技術特徴の組み合わせが矛盾しない限り、本発明の範囲内にあると見なされるべきである。
【００９２】
上記した実施形態は、本発明のいくつかの実施例を単に説明するものであり、その記載は具体的且つ詳細なものであるが、それに限定されるものではない。なお、当業者にとって、本発明の趣旨から逸脱しない範囲で種々の変形や改善が可能であり、これらは本発明の保護範囲に属するものであると理解されたい。したがって、本発明の技術的な範囲は、添付の特許請求の範囲に準ずるべきである。
【図１】
2018532171.tif 000004
【図２】
2018532171.tif 000005
【図３】
2018532171.tif 000006
【図４】
2018532171.tif 000007
【図５】
2018532171.tif 000008
【図６】
2018532171.tif 000009
【図７】
2018532171.tif 000010
【図８】
2018532171.tif 000011
【図９】
2018532171.tif 000012
【手続補正書】
【提出日】平成29年12月18日(2017.12.18)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＳＱＬ審査方法であって、
低速ログデータを取得すること、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
前記ＳＱＬ文を識別して解析し、解析結果を得ること、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ること、
前記審査結果に基づいて審査結果セットを生成すること、
を含むＳＱＬ審査方法。
【請求項２】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記予め設定された審査テンプレートは実行計画審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ることを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記予め設定された審査テンプレートはＳＱＬ文法審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ることを含むことを特徴とする請求項１又は３に記載の方法。
【請求項５】
前記審査結果に基づいて審査結果セットを生成した後、前記方法は、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立すること、
前記ＳＱＬベースラインを分析してＳＱＬ審査データを得て、前記ＳＱＬ審査データを表示すること、
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することは、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出すること、
前記審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得すること、
前記ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、前記ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、前記ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立すること、を含むことを特徴とする請求項５に記載の方法。
【請求項７】
サーバであって、メモリとプロセッサを含み、前記メモリにコンピュータ実行可能な命令が記憶され、前記コンピュータ実行可能な命令がプロセッサにより実行される際に、前記プロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させるサーバ。
【請求項８】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項７に記載のサーバ。
【請求項９】
前記予め設定された審査テンプレートは実行計画審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ることを含むことを特徴とする請求項７に記載のサーバ。
【請求項１０】
前記予め設定された審査テンプレートはＳＱＬ文法審査テンプレートを含み、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ることを特徴とする請求項９に記載のサーバ。
【請求項１１】
前記コンピュータ実行可能な命令が前記プロセッサにより実行される際に、前記プロセッサに、前記審査結果に基づいて審査結果セットを生成するステップを実行した後、さらに、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立するステップ、
前記ＳＱＬベースラインを分析してＳＱＬ審査データを得て、前記ＳＱＬ審査データを表示するステップ、
を実行させることを特徴とする請求項７に記載のサーバ。
【請求項１２】
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出してＳＱＬベースラインを確立することは、
前記審査結果セットにおける審査結果が未通過であるＳＱＬ文を抽出すること、
前記審査結果が未通過であるＳＱＬ文のＳＱＬ番号及び通過しない審査項目番号を取得すること、
前記ＳＱＬ番号及び通過しない審査項目番号に基づいて一致するＳＱＬベースラインが存在するかどうかを判定し、そうである場合、前記ＳＱＬベースラインの状態を未通過としてマーキングし、そうでない場合、前記ＳＱＬ番号及び通過しない審査項目番号に基づいてＳＱＬベースラインを確立すること、
を含むことを特徴とする請求項１１に記載のサーバ。
【請求項１３】
コンピュータ実行可能な命令が記憶された一つ又は複数の記憶デバイスであって、前記コンピュータ実行可能な命令が一つ又は複数のプロセッサにより実行される際に、前記一つ又は複数のプロセッサに、
低速ログデータを取得するステップ、
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出するステップ、
前記ＳＱＬ文を識別して解析し、解析結果を得るステップ、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得るステップ、
前記審査結果に基づいて審査結果セットを生成するステップ、
を実行させる記憶デバイス。
【請求項１４】
前記低速ログデータから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出することは、
予め設定されたフォーマットに基づいて前記低速ログデータを分析し、低速ログデータテーブルを生成すること、
前記低速ログデータテーブルにおけるフィールド名に基づいて前記低速ログデータテーブルから審査対象ＳＱＬ文及び前記ＳＱＬ文と一致する基本情報を抽出すること、
を含むことを特徴とする請求項１３に記載の記憶デバイス。
【請求項１５】
前記予め設定された審査テンプレートは実行計画審査テンプレート及びＳＱＬ文法審査テンプレートを含み、
一つずつ予め設定された審査テンプレートの審査項目に従って、前記解析結果及び／又は前記基本情報を審査し、審査結果を得ることは、
一つずつ前記実行計画審査テンプレートの審査項目に従って、前記基本情報のうちの前記審査項目と一致するデータを抽出して審査し、審査結果を得ること、
一つずつ前記ＳＱＬ文法審査テンプレートの審査項目に従って、前記解析結果に対して文法分析を行い、分析結果に基づいて審査し、審査結果を得ること、
を含むことを特徴とする請求項１３に記載の記憶デバイス。
【国際調査報告】
2018532171.tif 000013
2018532171.tif 000014
2018532171.tif 000015
2018532171.tif 000016