概要
以前、ドリルスルーを設定した際のパフォーマンスの劣化の原因を説明するため、こちらの記事を投稿しました。
Cognos BI ドリルスルー使用時のパフォーマンス上の注意点
https://qiita.com/shinyama/items/2fa81dfd42689eb1b407
平たく言えば、「ドリルスルーポイント分だけ、パラメーターで指定された値を繰り返し持つ」という、Cognosのレポートの仕様によるもので、これは以下の様なクロス集計をドリルスルー元とした場合でも同じです。
この場合、クロス集計は4列x5行で20セルありますので、ドリルスルーポイントも20個となり、「Fax」という文字の情報が、20回繰り返されてレポートに保持されます。
お気づきの通り、「2010年」の「Mountaineering Equipment」は、データがNULLで入ってないですが、このブランクセルにもドリルスルーは内部的には設定されていて、「Fax」という文字を保持します。
一般的なクロス集計では、このような空白のセルは多いですので、この空白セルからドリルスルーを排除できたらパフォーマンスが向上できる、というのが今回の内容です。
手順
やり方は簡単です。
クロス集計のセルの中に「条件ブロック」を入れています。
ブロック変数の条件がYesの時、ドリルスルーが設定された「Quantity」が配置されています。
条件がNoの時、ドリルスルーは設定されていない、そのままの「Quantity」が配置されています。
コンディション・エクスプローラーで、ブール値変数として、以下の定義を置いています。
非常に単純ですが、クロス集計が「遅い」「ドリルスルーを設定している」「空白セルが多い」という環境では、非常に効果がありますので、是非覚えておいて頂ければと思います。