ページの先頭行へ戻る
Symfoware Server  解説書

5.1.4 最適なデータ操作

Symfoware Serverでは、SQL文の指令と結びつく表を調べて、探索条件に見合った処理手順を決めます。この働きのことを最適化処理(または、オプティマイザ)と呼び、その処理の結果として決定される処理手順をアクセスプランと呼びます。Symfoware Serverは、データ量や格納状況の情報に基づいた最適化処理を実現しています。この情報を最適化情報と呼びます。

最適化情報には、実表のデータ量(行数)、インデックスの階層数および異なるキー値の数などがあります。最適化情報の収集は、RDBコマンドを利用して行います。結果はRDBディクショナリに格納されます。

この最適化情報の値を利用して、1つの表に複数のインデックスがある場合や1つのSQL文で複数の表を検索する場合に、利用するインデックスおよび表の検索順など処理手順にかかるコストを評価して、SQL文の条件式に指定された内容をもとに効率の良い処理手順を決めます。

SQL文ごとにASSIST指定を使用すると、最適化情報に影響されずそのSQL文のアクセスプランだけを手動で指定することもできます。

最適なデータ処理について、以下の機能を説明します。

パフォーマンスモニタ

Symfoware Serverでは、運用中のシステムにおいて性能に問題が発生した場合に、原因を調査、特定するための機能として、パフォーマンスモニタを提供しています。

参照

パフォーマンスモニタについての詳細は、“RDB運用ガイド”を参照してください。

パフォーマンスモニタには、以下の2つの機能があります。

アクセスプランの取得

一定時間以上の処理時間がかかっているSQL文を自動的に検出します。検出したSQL文に関するアクセスプラン、SQL文処理中にどのような状態が多くの時間を占めていたかといった状態のサンプリング情報を取得し、取得したデータを蓄積します。蓄積されたデータは、RDBコマンドを利用することで、そのSQL文を実行したクライアントの情報、SQL文、アクセスプラン、性能を向上させるアドバイス、状態のサンプリング情報として表示できます。表示されたデータから、性能問題が発生したSQL文を特定し、問題の分析と解決のための対策を検討することができます。

対策の1つとして、ASSIST指定を使用してアクセス手順を指定する方法があります。ASSIST指定で指定したとおりのアクセス手順にできない場合、理由をアドバイスとして出力します。

性能の統計情報の取得

アプリケーションやRDBコマンドの動作状況、システム資源の使用情報、アプリケーションが獲得する資源の占有情報を自動的、定期的に取得し、取得したデータを蓄積します。蓄積されたデータは、RDBコマンドを利用することで、任意の時間、任意の種類の統計情報として表示できます。何らかの性能問題が発生した場合には、取得した性能の統計情報から、原因の調査が可能となります。

SQLTOOL

Symfoware Serverでは、SQLTOOLの機能により、アクセスプランを利用者が参照できるようにしています。SQLTOOLは、RDBコマンドにより、SQLを対話的に操作することができ、データベースの性能チューニングを支援することができます。

参照

SQLTOOLについての詳細は、“SQLTOOLユーザーズガイド”を参照してください。

SQLTOOLには、以下の5つの機能があります。

アプリケーションの開発支援

アプリケーションの開発支援機能として、SQL文を対話的に実行する機能を提供しています。アプリケーションを作成することなく対話的にSQL文を記述することで、以下の作業を行うことができます。

  • 作成したSQL文の実行検証

  • データベース内のデータ検索

  • データベース内のデータ更新

アプリケーションの開発支援機能を利用して、対話的に実行できるSQL文を以下に示します。

  • データベース操作文

  • トランザクション管理文

  • コネクション管理文

  • セション管理文

アクセスプランの取得

作成したSQL文のアクセス手順を取得します。取得したアクセスプランにより、対象のSQL文が使用するインデックスおよび表の結合順などを知ることができ、データベースの設計どおりに、SQL文が動作しているかを検証することができます。アクセスプランには、性能を向上させるアドバイスも含まれます。

検証の結果、設計どおりにSQL文が動作しない場合の対策の1つとして、ASSIST指定を使用してアクセス手順を指定する方法があります。ASSIST指定で指定したとおりのアクセス手順にできない場合、理由をアドバイスとして出力します。

性能情報の取得

SQL文実行時の資源使用情報を性能情報として取得します。この情報は、アクセスプランと比較し、SQLの動作を分析し、SQLの動作環境をチューニングする場合に利用します。

最適化情報の変更、表示

データベースの最適化情報を変更、表示します。

チューニング情報の変更、表示

実行中のSQL環境のチューニング情報を動的に変更します。また、チューニング情報を表示することもできます。