Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

SQL パフォーマンスの最適化の概要

Caché SQL は、SQL のパフォーマンスを最適化する複数の機能をサポートしています。

テーブル定義の最適化

SQL のパフォーマンスは、基本的にデータ・アーキテクチャが適切かどうかによって決まります。複数のテーブルにデータを分割して、それらのテーブルにリレーションシップを確立することは、効率的な SQL にとって欠かせないことです。テーブルとそれらのテーブル間のリレーションを定義する方法は、このドキュメントでは説明していません。

このドキュメントでは、テーブル定義を最適化するための以下の操作について説明します。これらの操作では、テーブルを定義することが必要ですが、テーブルにデータを移入するテーブルは必要はありません。

  • インデックス:インデックスは、テーブルのフィールドまたはフィールドのグループに定義できます。複数の異なるタイプのインデックス (標準、ビットマップ、ビットスライス、およびビットマップ・エクステント) を定義できます。SQL の最適化では、クエリ操作、更新操作または削除操作の際に、データ値そのものではなく、定義済みのインデックスを使用して特定のレコードにアクセスします。

  • 凍結プラン:データ定義の実行計画を凍結できます (凍結プランは、クエリ・プランを凍結する場合にも使用します)。

テーブル・データの最適化

テーブル内の一般的なデータの分析に基づいてテーブル・アクセスを最適化するために、以下の操作を実行できます。

  • テーブルのチューニング:一般的なテーブル・データを調べて、ExtentSize (行数)、Selectivity (特定の値を保持する行の割合)、および BlockCount メタデータを生成します。クエリ・オプティマイザは、この情報を使用して、最も効率的なクエリ実行計画を決定します。

  • Selectivity と Outlier Selectivity:フィールドに特定の値を保持している行の割合と、ある値が異常値 (そのフィールドの他の値よりも著しく多く存在する値) であるかどうかを判断します。

クエリの最適化

特定のクエリの実行を最適化するために、以下の操作を実行できます。これらのクエリの最適化には、既存のテーブル定義の最適化とテーブル・データの最適化を使用します。

構成の最適化

既定では、[メモリと開始設定] の既定値は [自動] に構成されていてます。また、[プロセス当たりの最大メモリ] の既定値は 262,144 kb に構成されています。プロダクション・システムで実行する SQL を最適化するには、既定値を [手動] に構成して、[プロセス当たりの最大メモリ] の設定値を大きくする必要があります。詳細は、"Caché システム管理ガイド" の “Caché の構成” の章にある "メモリと開始設定" を参照してください。

FeedbackOpens in a new tab