Adaptive Server Anywhere による処理を引き起こす条件

クエリ構築のヒント

分割GROUP BY によってクエリのパフォーマンスを向上させるには、

AGGREGATION_PREFERENCE データベース・オプションをデフォルト値 の0 に設定します。これにより、Sybase IQ オプティマイザはGROUP BY に 適用する最善のアルゴリズムを判断できるようになります。Sybase IQ オプ ティマイザがGROUP BY の処理にソート・アルゴリズムを選択するように

AGGREGATION_PREFERENCE の値が設定されている場合は、分割GROUP BY によるメリットはありません。AGGREGATION_PREFERENCE オプショ ンを使用すると、オプティマイザがGROUP BY の処理に選択するアルゴリ ズムを上書きできます。分割GROUP BY では、この値を1 または2 に設定 しないでください。

分割 GROUP BY の例 次の例では、tableA という大きなテーブルを、tabA1tabA2tabA3tabA4 という 4 つの小さなテーブルにセグメント化しています。この 4 つの小さな テーブルと UNION ALL を使用して、unionTab ビューを作成します。

CREATE VIEW unionTab (v1 int, v2 int, v3 int, v4 int) AS

SELECT a, b, c, d FROM tabA1

UNION ALL

SELECT a, b, c, d FROM tabA2

UNION ALL

SELECT a, b, c, d FROM tabA3

UNION ALL

SELECT a, b, c, d FROM tabA4;

Sybase IQ オプティマイザは GROUP BY の処理を次のクエリに分割し、クエリ のパフォーマンスを向上させます。

SELECT v1, v2, SUM(v3), COUNT(*) FROM unionTab

GROUP BY v1, v2;

SELECT v3, SUM(v1*v2) FROM unionTab

GROUP BY v3;

Adaptive Server Anywhere による処理を引き起こす条件

Sybase IQ アーキテクチャには、Adaptive Server Anywhere のルールに従ってク エリを処理する製品の部分が含まれています。CIS ( 以前は OMNI) 機能補正と 呼ばれるこの機能を使用すると、Sybase IQ のセマンティックで直接サポート されないクエリを処理できますが、パフォーマンスが大幅に低下します。

CIS は次のクエリを傍受します。

ユーザ定義関数を参照するクエリ

データベース間のジョインまたはプロキシ・テーブルを含むクエリ

特定のシステム関数を含むクエリ

カタログ・ストア・テーブルまたは SYSTEM dbspace で作成されたテーブ ルを参照するクエリ

34

Sybase IQ

Page 50
Image 50
Sybase 12.7 manual Adaptive Server Anywhere による処理を引き起こす条件, Sybase IQ