1

レポートを Cognos reportnet から Cognos 8.4 に移行したところ、レポートが遅すぎます。

レポートには、期間/四半期/半年/年の集計を含むリスト内にネストされたクロス集計があります。

レポートのデザイン:

  • mainqueryitem (queryitem) は、手動の sql を介してデータを取得します。
  • 手動のSQLには、結合された4つのクエリがあります。
  • 4 つのクエリはすべて、結合された異なるテーブルから選択しただけです (グループ/並べ替え/フィルターはありません)。
  • PlanningLevel (queryitem) は、mainqueryitem からデータを取得します。(例: if mainqueryitem.name = 'Black' then mainqueryitem.quantity else null. PlanningLevel のすべての DataItems は上記の形式を使用します)
  • レポート ページは、リスト内にネストされた (セグメント化された) クロスタブで構成されます。
  • リストはマスタークエリに関連付けられています。
  • クロスタブは計画レベルに関連付けられています。
  • クロスタブには集計も含まれています。
  • プロンプト ページには、複数選択リストが含まれています。

プロンプト値が小さい場合でも、レポートは非​​常に遅くなりました。

次に、reportnet から移行したときに既にいくつかの DimensionInfos を持っていた PlanningLevel queryitem のプロパティ 'OverrideDimInfo' を 'no' に変更しました (それが何であったかはわかりません)。

レポートは、数が少ないほど高速に実行されます。の基準 (<1 分)。(400倍高速)しかし、それ以上はありません。オプション/基準の数 (>2) では、レポートはさらに遅くなります。(最大 3.5 時間、すべての基準が選択された最大のレポートの場合)

最大のレポートを得るためにヒキガエルで実行すると、mainqueryitem sql の実行に 5 分未満かかります。reportnet では数分で実行されていた最大のレポートは 3.5 時間かかります。

パフォーマンスを改善する方法はありますか?

4

1 に答える 1

2

8.4 で、リスト オブジェクト内にネストされたクロス集計オブジェクトをマスター/ディテール関係で結合して使用するときに観察したことの 1 つは、(リストに関連付けられた) マスター クエリはできるだけ限定的かつ単純にする必要があるということです。あなたの状況についてはわかりませんが、通常、マスター クエリを含むリストの目的は、クロス集計の結果をディメンション属性に基づいてグループに分割することです。詳細クエリはより複雑で、ファクト情報も含まれます。この場合、Cognos は、Cognos サーバー上のすべてのデータとフォーマットを取得する 2 つのクエリを実行せず (予想どおり)、グループごとに個別のクエリを起動します。マスター クエリを可能な限り単純化することで、パフォーマンスが向上する場合があります。多くの場合、人々は詳細クエリをコピーするだけです。マスターとして名前を変更し、変更せずに詳細クエリに結合します。マスター クエリで必要のないものはすべて削除します。これはあなたの状況には当てはまらないかもしれませんが、この動作はレポートで何度も確認されており、通常はマスター クエリを微調整すると役立ちます。

レポートの作成方法によっては、リスト セクションを使用するときに発生する可能性があるもう 1 つの問題 (セグメント化が意味するものかどうかは不明) は、Cognos がセクションごとに重複したクエリを実行することがあることです。メニューから [ツール] > [生成された SQL/MDX を表示] を選択すると、実行されたクエリの数を確認できます。

于 2010-11-24T19:27:03.053 に答える