Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » データベース・パフォーマンスのモニタリングと改善 » データベース・パフォーマンスの改善 » パフォーマンス向上のためのヒント

 

インデックスの有効な使用

クエリを実行するとき、SQL Anywhere は各テーブルへのアクセス方法を選択します。インデックスは、アクセスを高速化します。データベース・サーバが適切なインデックスを見つけられないときは、テーブルを順にスキャンしなければならず、時間を要します。

たとえば、大規模なデータベースから複数の従業員を検索する必要があるのに、姓か名前のどちらかしかわからないとします。インデックスがない場合、SQL Anywhere はテーブル全体をスキャンします。しかし、姓が先に入力されているインデックスと名前が先に入力されているインデックスの 2 つのインデックスが作成されていれば、SQL Anywhere はこの 2 つのインデックスを先にスキャンするので、たいていはより速く情報を返すことができます。

インデックスを適切に選択すると、パフォーマンスに大きな違いが生じます。インデックスの作成と管理の詳細については、インデックスの操作を参照してください。

インデックスの使用

SQL Anywhere では、インデックスによって非常に効率よく情報を検索できますが、インデックスを追加するときは注意してください。各インデックスは、ローの挿入、削除、更新時に余分な作業を生みます。SQL Anywhere は影響を受けるインデックスもすべて更新するからです。

このため、SQL Anywhere がデータにより効率的にアクセスできるときにかぎってインデックスを追加するようにしてください。特に、大きなテーブルに連続して不必要なアクセスを行うような処理をなくすときに実施します。ただし、テーブルにローを追加するときのパフォーマンスを向上する必要があり、情報を迅速に検索する必要がない場合は、できるだけ少ないインデックスを使用します。

データベースに有効なインデックスを選択する手助けをするインデックス・コンサルタントを使用することも 1 つの手段です。インデックス・コンサルタントを参照してください。

クラスタード・インデックス

クラスタード・インデックスを使用すると、テーブル内のローをインデックス内の順序とほぼ同じ順序で格納できます。インデックスクラスタード・インデックスの使用を参照してください。