クエリ処理の向上 このバージョンでは、クエリ実行エンジンとオプティマイザが強化されています。これによって、パフォーマンス、特に複雑なクエリのパフォーマンスが大幅に向上しています。Adaptive Server Anywhere のクエリ処理は、次の点が強化されています。
ジョインの内部処理の高度化。
代替アクセス・プランへのアクセスに使用されるオプティマイザのコスト・モデルの向上。
実行モデルの向上。
変更の大半は、内部の変更です。詳細な説明については、クエリの最適化と実行を参照してください。
これらの変更により、これまでのように結果の実体化が必ずしも非効率的とは言えなくなります。テンポラリ・ワーク・テーブルを使用することによって、クエリを非常に効率的に実行できる場合もあります。詳細については、クエリ処理におけるワーク・テーブルの使用 (All-rows 最適化ゴールの使用)を参照してください。
オプティマイザは、コストに基づいてインデックスを選択するようになり、これまでのリリースのように述語の選択性だけに頼ることはなくなりました。
強化されたクエリ処理のほとんどは、データベースのアップグレードを必要としません。このリリースより前に作成されたデータベースで新しいコスト・モデルを使用するには、データベースをアンロードして再ロードすることによってそのデータベースのファイル・フォーマットをアップグレードする必要があります。
新しいインデックス・タイプ 複数のカラム・インデックスと幅の広いカラムを含むインデックスについて、パフォーマンスを向上させる新しいタイプのインデックスが追加されました。新しいインデックスは、圧縮 B ツリー・インデックスといいます。
Adaptive Server Anywhere は、インデックスの幅 (インデックス内の全カラムの幅の合計) に基づいて、適切なタイプのインデックスを自動的に作成します。圧縮 B ツリー・インデックスは、インデックスの幅が 10 バイト以上で、ページ・サイズの 1/8 未満から最大 256 バイトまでのときに作成されます。それ以外の場合は、ハッシュ B ツリー・インデックスが作成されます。
CREATE INDEX 文の WITH HASH SIZE 句は、廃止されました。
このリリースより前に作成されたデータベースで新しいタイプのインデックスを使用するには、データベースをアンロードして再ロードすることによってそのデータベースのファイル・フォーマットをアップグレードする必要があります。
新しい制約が追加されています。外部キー・インデックスのサイズとタイプは、対応するプライマリ・キー・インデックスと同じである必要があります。
dbunload は、デフォルト (WITH HASH SIZE 10) で指定された場合は、ハッシュ・サイズ指定を省略するようになりました。
新しいデータベース・オプション optimization_goal クエリ処理の最適化の対象を、最初のローを迅速に返すこと、または完全な結果セットを返すコストを最小限に抑えることのどちらかに指定します。デフォルトは、最初のローの最適化です。
詳細については、optimization_goal オプション [データベース]を参照してください。
テーブル・スキャンのパフォーマンスの強化 Adaptive Server Anywhere 8.0 で作成された 2 K、4 K、または 8 K ページのデータベースでは、テーブルの逐次スキャンを必要とするクエリのパフォーマンスが強化されました。大きなテーブルに対しては、ページ・マップとも呼ばれるビットマップが Adaptive Server Anywhere によって作成されます。特定のテーブルのデータを含むすべてのページがビットマップにリストされます。この機能によって、1 回の I/O 操作だけで大きなテーブルを検索できます。
詳細については、テーブルとページのサイズを参照してください。
このリリースより前に作成されたデータベースでこの拡張機能を利用するには、データベースをアンロードして再ロードすることによってそのデータベースのファイル・フォーマットをアップグレードする必要があります。
チェックポイント・ログの記憶領域の向上 チェックポイント・ログは、データベース・ファイルの最後にある連続ページ内に格納されるようになりました。これによって、チェックポイント・ログ内の項目に対して逐次スキャンと複数ページの書き込みが可能になり、パフォーマンスが向上しました。
チェックポイント・ログの詳細については、チェックポイント・ログの概要を参照してください。
このリリースより前に作成されたデータベースでこの拡張機能を利用するには、データベースをアンロードして再ロードすることによってそのデータベースのファイル・フォーマットをアップグレードする必要があります。
プランのキャッシュ Adaptive Server Anywhere では、クエリと、ストアド・プロシージャ、ユーザ定義関数、トリガで実行される INSERT 文、UPDATE 文、DELETE 文の実行プランがキャッシュされます。キャッシュできるプランの最大数は、max_plans_cached オプションで指定します。プランのキャッシュを無効にするには、このオプションを 0 に設定します。
詳細については、プランのキャッシュを参照してください。
デフォルトの I/O コスト・モデルの上書き ALTER DATABASE 文に CALIBRATE 句を指定すると、デフォルトの I/O コスト・モデルを上書きできるようになりました。
詳細については、ALTER DATABASE 文を参照してください。
新しいデータベース・オプション max_plans_cached キャッシュに格納される実行プランの最大数を設定します。
詳細については、max_plans_cached オプション [データベース]を参照してください。
新しいデータベース・オプション min_table_size_for_histogram このオプションは、ヒストグラムを作成するテーブルの最小サイズを設定します。ヒストグラムには、1 つのカラムでの値の分散状況に関する情報が格納されます。オプティマイザはこの情報をもとに、効率的な実行プランを選択します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |