COGNOS Report Studioで、自分のクエリを他のクエリの前に最初に実行する方法はありますか?
ユース ケース: 7 ~ 8 個のストアド プロシージャ (sps) の結果を比較してデータの不一致を見つける COGNOS レポートがあります。このために、sps A の結果を sp B の結果と、B を C に、A を D に、というように結合する必要があります。COGNOS には結果のキャッシングがなく (ローカル キャッシングは役に立たない)、ストアド プロシージャの実行が遅いため、疑似キャッシング手法を実装しました。レポート生成の開始時に、時間のかかる 3 ~ 4 個の SP の結果をテーブルに保存します。また、比較のためにデータが必要な COGNOS クエリではSELECT *
、テーブルに対して a を実行するだけです。問題は、このキャッシュ生成クエリが最初に実行されるようにする方法です。これにより、データの入力前に別のクエリが SELECT * を実行する状況に遭遇することはありません。
洗練されていない解決策:実際のプロンプトの後に自動送信されるダミーのプロンプトを用意します。そして、キャッシュ生成クエリをダミー/非表示プロンプトのソース クエリとして作成します。このように、ユーザーがプロンプトで値を選択すると、別のプロンプトが表示され、自動送信されるため、キャッシュ生成クエリが他のクエリの前に実行されます。
PS
これに cognos が使用される理由は、問題の sp が実際には他の COGNOS レポートのソースであるため、sp を比較することで、実際には異なるレポートを比較していることになり、企業は不一致レポートを PDF のみで表示したいと考えています。
上記の疑似キャッシュ技術を使用して、レポートの実行時間を 50 分から 30 分に短縮しました。この解決策の問題点は、[レポートをメールで送信] オプションを使用してレポートを実行すると、タイムアウトになり、メールが受信されないことがあるということです。
他のクエリの前に COGNOS クエリを最初に実行する他の方法があれば教えてください。可能であれば、パフォーマンスを改善する方法をいくつか提案してください。
プラットフォームSQL サーバーと COGNOS レポート スタジオ