除外列のあるパフォーマンスのチューニング
分析に未使用列が含まれることはよくあります。不要なのに選択されている列は、パフォーマンスに深刻な影響を与えます。このトピックでは、不要な列をすべて除去することでパフォーマンスを改善する方法を説明します。
未使用列の識別
Year
)を分析に含めると、次のことが原因でパフォーマンスに影響します:
- データベースから取得する必要のあるデータの量の増加
- 取得して処理する列の数の増加
- 分析で集計の複数レベルで結果を計算することの強制
次の図は、地域および年別の顧客数が表示された単純なレポートを示しています。
図ceal_report_customers_by_region_year.jpgの説明
表示されるレポートは、地域別の顧客数を示したグラフです。Year
列が除外されていることがわかります。
未使用の「年」列のある論理問合せ
Year
列は、ビューに表示されていない場合でも、論理問合せの一部としてまだ選択されています。
図ceal_logical_query_includes_year.jpgの説明
Year
列を分析に含めると、次の影響があります:
- 追加の列が取得され、処理されます。
- 追加の行が取得され、処理されます(顧客行の数が地域のみでなく年でも選択されるため)。
- 追加の集計が必要です。
未使用の「年」列のある物理問合せ
物理問合せを確認すると、パフォーマンスが影響を受けている領域を識別できます。
図ceal_-physical_query_performance_impact.jpgの説明
この例は、顧客数集計ルールのSELECT count distinct
を示しています。一部の状況では、合計の集計ルールのあるレポートが影響を受けることもあります。このシナリオで生成される問合せでも、グルーピング・セットが使用されます。データベース・レベルでは、場合によっては多数の行(数百万)を選択し、Region
と同様にYear
およびRegion
でグループ化する必要があります。これにより、無駄なデータベース・リソースが大量に消費される可能性があります。
未使用列の削除
Year
列を削除し、生成される論理問合せおよび物理問合せへの影響を分析します。
「年」列の除去後の論理問合せ
これで、論理問合せにYear
列が含まれなくなり、さらに重要なこととして、レポート集計が削除されました。
「年」列の除去後の物理問合せ
物理問合せは非常に単純になり、グルーピング・セットは含まれなくなって、選択されるレコードの数は大幅に減少しました。
パフォーマンスの低いレポートの分析を確認して、最初の例で冗長な未使用列を除去するだけで、パフォーマンスを大幅に向上できます。生成される物理問合せの複雑さは低下し、返されるレコード数も減少するため、必要な処理が削減されます。