除外列のあるパフォーマンスのチューニング

分析に未使用列が含まれることはよくあります。不要なのに選択されている列は、パフォーマンスに深刻な影響を与えます。このトピックでは、不要な列をすべて除去することでパフォーマンスを改善する方法を説明します。

未使用列の識別

ビューから除外されている列(この例では「」)を分析に含めると、次のことが原因でパフォーマンスに影響を与えます:
  • データベースから取得する必要のあるデータの量の増加
  • 取得して処理する列の数の増加
  • 分析で集計の複数レベルで結果を計算することの強制

次の図は、地域および年別の顧客数が表示された単純なレポートを示しています。

GUID-39B953E5-433E-4991-B3BA-BB1064CE8D83-default.jpgの説明が続きます
.jpgの説明

表示されるレポートは、地域別の顧客数を示したグラフです。「」列が除外されていることがわかります。

GUID-CFF82673-4988-4185-915E-0F1AA5027E42-default.jpgの説明が続きます
.jpgの説明

未使用の「年」列のある論理問合せ

「年」列は、ビューに表示されていない場合でも、論理問合せの一部としてまだ選択されています。

GUID-104759F4-A6F4-4366-ACD6-472BA2931E18-default.jpgの説明が続きます
.jpgの説明

「年」列を分析に含めると、次の影響があります:
  • 追加の列が取得され、処理されます。
  • 追加の行が取得され、処理されます(顧客行の数が地域のみでなく年でも選択されるため)。
  • 追加の集計が必要です。

未使用の「年」列のある物理問合せ

物理問合せを確認すると、パフォーマンスが影響を受けている領域を識別できます。

GUID-D9F85168-B448-49BE-9261-78270C01784C-default.jpgの説明が続きます
.jpgの説明

この例は、顧客数集計ルールのSELECT count distinctを示しています。一部の状況では、合計の集計ルールのあるレポートが影響を受けることもあります。このシナリオで生成される問合せでも、グルーピング・セットが使用されます。データベース・レベルでは、場合によっては多数の行(数百万)を選択し、「地域」と同様に「年」「地域」でグループ化する必要があります。これにより、無駄なデータベース・リソースが大量に消費される可能性があります。

未使用列の除去

」列を除去して、生成される論理および物理問合せへの影響を分析します。

「年」列の除去後の論理問合せ

これで、論理問合せに「年」列が含まれなくなり、さらに重要なこととして、レポート集計が除去されました。

GUID-A28E8FC3-37ED-4350-866C-A9BC58356833-default.jpgの説明が続きます
.jpgの説明

「年」列の除去後の物理問合せ

物理問合せは非常に単純になり、グルーピング・セットは含まれなくなって、選択されるレコードの数は大幅に減少しました。

GUID-96421968-C978-4383-853C-EAACB0079CEB-default.jpgの説明が続きます
.jpgの説明

パフォーマンスの低いレポートの分析を確認して、最初の例で冗長な未使用列を除去するだけで、パフォーマンスを大幅に向上できます。生成される物理問合せの複雑さは低下し、返されるレコード数も減少するため、必要な処理が削減されます。