機械翻訳について

データ・モデルの検証

データ・モデルを検証する際、検証メッセージにより、データ・モデルの修正、問合せの最適化、スタック・スレッドの削減およびレポート・パフォーマンスの向上を図れます。

最新または前のリリースで作成されたデータ・モデルを作成または編集した後、「検証」をクリックすると、Publisherにより次の処理が実行されます:

  1. データセット、LOVおよびバースティング定義に使用される問合せをチェックします。

  2. SQL問合せの実行計画を生成します。

  3. エラー・メッセージと警告メッセージのリストを表示します。

検証メッセージに基づいて必要なアクションを実行します。 「My Oracle Cloud Support KM ID KB59020」およびMOSノートに添付されているパフォーマンス推奨ドキュメントを参照してください。

前のリリースからPublisherをアップグレードした場合、既存のデータ・モデルは未検証とマークされます。

データ・モデルの検証メッセージ

ここでは、リファレンス用にデータ・モデルの検証メッセージを示します。

メッセージ・タイプ

  • エラー - データ・モデルを使用してレポートを実行する場合、データ・モデルのエラーを解決する必要があります。

  • 警告 - 警告メッセージで提案された修正を行います。 警告を無視してレポートを実行する場合、レポートのパフォーマンスが影響を受けることがあります。

メッセージ・リファレンス

検証タイプ メッセージ・タイプ メッセージ アクション
問合せ 警告

SQL問合せにSELECT *が含まれています。 '*'の使用は制限されています。 特定の列を選択してください。

問合せの列を指定します。

問合せ 警告

データ・モデルにネストされたBI JDBC問合せが含まれています。 論理問合せのリンクは制限されています。 PublisherレポートのかわりにOTBIを使用するか、OBIEEデータセット間のリンクを削除します。

「パブリッシャ」レポートのかわりにOracle Transactional Business Intelligenceレポートを使用するか、OBIEEデータセット間のリンクを削除します。

問合せ 警告

SQL問合せの実行計画にマージ・デカルト結合が含まれています。 SQL問合せの実行計画を生成し、マージ・デカルト結合を指定します。 SQL問合せに必要なフィルタを追加してください。

SQL問合せの実行計画のマージ・デカルト結合を識別します。 SQL問合せに必要なフィルタを追加してください。

ランタイム 警告

パラメータ当たりのバインド値の数が制限{0}を超えると、パフォーマンスが低下します。 バインド値の数を減らしてください。

パラメータごとのバインド値の数を減らします。

問合せ 警告

SELECTの列数が制限{0}を超えています。 必要な列のみを選択し、プルーニングを有効にしてください。

My Oracle Cloud SupportのSaaS環境(KM ID KB98811)の「パブリッシャ」ベスト・プラクティスを参照してください。

必要な列のみを選択し、プルーニングを有効にしてください。

Publisher Best Practices for SaaS Environments』(ドキュメントID 2145444.1)を参照してください。

問合せ 警告

SQL問合せに非等価結合が含まれています。 中間行が生成されると、パフォーマンスの問題が発生する可能性があります。 非等価結合を等価結合または外部結合で置き換えてください。

非等価結合を等価結合または外部結合に置き換えます。

問合せ 警告

選択した列の名前の長さが、制限の{0}を超えています。 列の名前の長さは、15文字を超えてはいけません。 列名に短い別名を使用してください。

列名には、15文字未満の短い別名を使用します。

問合せ 警告

インラインまたは副問合せの数が制限{0}を超えています。 追加のインライン選択問合せを削除してください。

追加のインライン選択問合せを削除してください。

問合せ 警告

SQL問合せにFROM DUAL句が含まれています。 SQL問合せに含まれているDUAL表が多すぎます。 FROM DUAL句を使用しないでください。

FROM DUAL句を使用しないでください。

問合せ 警告

SELECTのLOB列数が制限{0}を超えています。 必要な列のみを選択してください。

必要な列のみを選択してください。

問合せ エラー

問合せにDDLまたはDMLキーワードが含まれています。 SQL問合せからDDLおよびDMLキーワードを削除してください。

SQL問合せからDDLおよびDMLキーワードを削除してください。

構造 警告

1つのデータセットでのグループ・ブレイク数が制限{0}を超えています。 データセットから複数のグループを削除してください。

データセットから複数のグループを削除してください。

構造 警告

データ・モデルにグループ・フィルタが含まれています。 SQL問合せでグループ・フィルタをWHERE句で置き換えてください。

SQL問合せでグループ・フィルタをWHERE句で置き換えてください。

ランタイム エラー

データ・モデル・プロパティが無効であるか、無効な値が含まれています。 正しいデータ・モデル・プロパティを指定して、プロパティ値を確認してください。

問合せで正しいデータ・モデル・プロパティを指定し、プロパティ値を確認します。

問合せ 警告

SQL問合せの実行計画に全表スキャンが含まれています。 SQL問合せで索引付き列に必要なフィルタを指定してください。

SQL問合せで索引付き列に必要なフィルタを指定してください。

問合せ 警告

SQL問合せの実行計画でのバッファ読取りが大量です。 バッファ読取りが制限1GBを超えています。 SQL問合せにフィルタを追加して、データのフェッチ量を減らしてください。

SQL問合せにフィルタを追加して、データのフェッチ量を減らしてください。

問合せ 警告

SQL問合せの実行計画でのCPUサイクルが高いです。 SQL問合せに必要なフィルタを追加して、データのフェッチ量を減らしてください。

SQL問合せに必要なフィルタを追加して、データのフェッチ量を減らしてください。

問合せ 警告

SQL問合せ実行計画にフィルタ列での関数コールが含まれています。 索引列でSQL関数コールを使用すると、パフォーマンスが低下します。 フィルタ列の関数コールを削除してください。

フィルタ列に対するファンクション・コールを削除します。

問合せ 警告

WHERE句の述語に関数コールが検出されました。

フィルタ式または結合式の列にSQLまたはPL/SQL関数を適用しないでください。

問合せ 警告

SELECTリストにPL/SQL関数へのコールが検出されました。このようなコールはパフォーマンスに多大な影響を及ぼす場合があります。

SELECT句でカスタムPL/SQL関数を使用しないでください。

問合せ 警告

スカラー副問合せが、SELECTリスト内の副問合せです。 値は1つのみを返す必要があります。 ROWNUMまたはDISTINCTを使用した出力の制限は、潜在的なパフォーマンスの問題があることを意味します。

DISTINCTまたはROWNUMキーワードでスカラー副問合せを使用しないでください。

問合せ 警告

IN-LISTフィルタ内の値が多すぎると、オプティマイザでより効率的なプランを検出できなくなる可能性があります。

IN-LISTフィルタの値の数を減らします。

ランタイム 警告

データ・セキュリティ述語(DSP)は副問合せ内にラップされ、不要なネストが生成されます。 冗長副問合せを使用すると、問合せの合計解析時間が長くなります。

副問合せの不要なネストは避けてください。

問合せ 警告

サポートされていないSYS_OP_MAP_NONNULLファンクションを使用して、BIサーバーがWITH副問合せ間で生成した結合が多すぎます。 結合述語が多すぎると、それぞれの表の結合のカーディナリティの見積りが低くなる可能性があります。

副問合せ間の結合が多すぎないようにしてください。

問合せ 警告

SELECTリストに列がない問合せで外部結合表が見つかりました。 これにより、オプティマイザが未使用の結合を排除できない可能性があるため、解析時および実行時のパフォーマンス・オーバーヘッドが増加する可能性があります。 VOプルーニングが発生している場合は、OTBIコードを確認してください。

未使用の外部結合表は避けてください。

問合せ 警告

スカラー副問合せはSELECTリストに存在します。 最も内側の副問合せおよびその外側の親副問合せは、採用問合せによって生成されるすべての行に対して実行されるため、スカラー副問合せ内のファクタ・リングされた副問合せは、実行中にパフォーマンスが徐々に低下します。

スカラー副問合せでWITH句を使用しないでください。

問合せ 警告

問合せにリストされ、他の表に結合されているが、選択されていない表が冗長になる可能性があります。 これにより、追加の結合オーバーヘッドのためにパフォーマンスが低下します。 主キー列でこの表が他の表の外部キー列に結合されているかどうかを確認します。

問合せで使用されていない表を結合しないでください。

問合せ 警告

スカラー相関副問合せとして定義される列が見つかりました。 そのような列が後でフィルタ式または結合式で使用されると、パフォーマンスが著しく低下する可能性があります。

SELECTリストにスカラー副問合せが含まれているインライン・ビューが重複しないようにします。

問合せ 警告

バインド変数を使用する述語(:JCODE IS NULL OR mcd.JCODE LIKE :JCODEなど)は、簡潔でない方法で使用しないことをお薦めします。 また、バインド値が渡されるかどうかに関係なく、選択的なフィルタ述語でのORの使用は推奨されません。このようなケースを処理するより適切なメソッドがあるためです。

選択的なフィルタ述語ではORを使用しないでください。

問合せ 警告

10を超える複合式を含むCASE式(WHEN ... THEN)は、特にWHERE句で使用される場合、CPU負荷が高くなります。

複雑すぎるCASE式のWHEN ... THEN式を避けます。

問合せ 警告

副問合せでリテラル定数として定義された列は、後でメイン問合せの他の場所で結合述語で参照されました。 このようなケースを処理するには、メインSQL問合せを実行する前に、より適切なメソッドがあります。

定数(リテラル)として定義されている列を結合しないでください。

問合せ 警告

10を超えるUNIONブランチを含む副問合せが見つかりました。 UNIONの各ブランチは個別に実行されるため、問合せの実行時間が大幅に増加します。 ほとんどの場合、共通分母副問合せをファクタ・リングし、機能要件に従って再利用することで、UNIONが多い問合せをより単純な問合せに再処理できます。

副問合せのUNIONブランチの数を減らします。

問合せ 警告

不要な表参照の削除: この表から別の列を取得できます。 冗長な表が問合せに含まれている場合、データベース・オプティマイザは解析および最適化中にその表を削除できないことがあります。

不要な表参照を削除します。

構造 警告

XMLTYPE関数を使用したCLOBからXMLへのデータの変換が遅い。 XML文書をデータベースに格納するには、データ型XMLTYPEを使用します。

データをCLOBに格納し、XMLに変換するかわりに、XMLTYPEデータ型を使用してXML文書をデータベースに格納します。

問合せ 警告

FROM句が10を超える行ソース(表、ディクショナリ・ビューまたはインライン・ビュー)で見つかりました。 行ソースが多すぎると、複数の理由でパフォーマンスが著しく低下する可能性があります。

FROM句の行ソース(表、ディクショナリ・ビューまたはインライン・ビュー)の数を減らします。

問合せ 警告

インライン・ビューは、問合せの他の場所にある同じFROM句表に結合されます。 これにより、参照の使用に冗長性が作成されます(同じ表がディメンションと参照の両方として使用されます)。

インライン・ビューが、問合せ内の他の場所でも同じFROM句表に結合されていないことを確認します。

問合せ 警告

参照表はディメンションとして使用され、問合せの他の場所での参照としてそれ自体に結合されました。 これにより、参照の使用に冗長性が作成されます(同じ表がディメンションと参照の両方として使用されます)。

参照表が問合せ内の他の場所でも同じFROM句表に結合されていないことを確認してください。

問合せ 警告

参照表は、ディメンションとして使用されるそれ自体に結合されます。 これにより、参照の使用に冗長性が作成されます(同じ表がディメンションと参照の両方として使用されます)。

参照表が問合せ内の他の場所でも同じFROM句表に結合されていないことを確認してください。

問合せ 警告

一番上の問合せブロックの表の列を使用して副問合せが見つかりました。 副問合せで冗長表を使用すると、解析時間と実行時間が長くなります。

親問合せおよび副問合せの表の同じ列をWHERE句とともに使用しないでください。

問合せ 警告

同じ条件(表およびWHERE句)が親問合せブロックに存在するため、SELECT副問合せブロックは冗長です。 相関スカラー副問合せはマージ可能ではなく、それらを含む問合せによって生成された行ごとに1回実行する必要があるため、これはパフォーマンスの問題です。

副問合せで冗長なWHERE句条件を使用しないでください。

問合せ 警告

SET操作(UNION、INTERSECTなど)で同一またはほぼ同一の問合せブロックを使用すると、コストが高く冗長な操作が多数発生する可能性があります

UNIONおよびSET操作で同一の問合せを使用しないでください。

問合せ 警告

問合せで結合が欠落すると、デカルト積が生成され、パフォーマンスに重大な問題が発生し、機能的なバグを示す場合があります。 欠落している結合が多数の行を持つ表にある場合、パフォーマンスの結果は悲惨なものになる可能性があります。

表間の結合を含めます。

問合せ 警告

フィルタがない(返される行数を制限する意味のあるWHERE句の条件)と、表内のデータ量によってはパフォーマンスの問題が発生する可能性があります。 複数の表をフィルタなしで結合すると、パフォーマンスが低下します。

問合せにフィルタを含めて、返される行を制限します。

問合せ 警告

GROUP BY句が20を超える列で見つかりました。 GROUP BY結果セットに多数の列があると、ソートおよびグループ化操作の実行にCPU時間がかかる場合があります。

GROUP BY句の列数を減らします。

問合せ 警告

表は結合されましたが、選択されていません。一方、問合せの残りの部分に少なくとも1つの結合条件が含まれています。 冗長な表が原因で問合せ内の結合数が増加すると、この潜在的な問題によって問合せランタイムが増加します。

問合せ内の冗長ブリッジ表を削除します。

問合せ 警告

場合によっては、SUBSTR関数(SUBSTR、SUBSTRB、SUBSTRC、SUBSTR2、SUBSTR4)を使用して、索引アクセス・パスの使用を容易にするためにLIKE条件に安全に置換できます。

問合せのSUBSTRをLIKE条件に置き換えます。

問合せ 警告

これは、LANGUAGEフィルタを適用する必要があるOracle Business Intelligence "_TL"サフィクス表に固有の潜在的な問題です。 LANGUAGEフィルタがないと、表が必要以上に多くの行が返されます。

問合せの「言語」列にフィルタを含めます。

問合せ 警告

データベースで索引パスを使用できないため、LIKE条件の先頭のワイルドカードはパフォーマンスが低下します。

LIKE条件で先頭のワイルドカードを使用しないでください。

問合せ 警告

階層問合せは、再帰的な性質のために低速です。 このような構造は、ブロックをマテリアライズすることで最適化できます。

副問合せでの再帰問合せは避けてください。

問合せ 警告

これは、名前にサフィクス「_VL」が付いたOracle Fusionビューに固有の潜在的な問題です。 これらのビューの表バージョンのパフォーマンスが向上します。

_VLビューへの外部結合を回避します。

問合せ 警告

複数の物理表の列に対するORDER BY操作では、負荷の高いソートが発生し、CPU使用率が急増する可能性があります。

異なる表の列を使用してソートすることは避けてください。

問合せ 警告

ほとんどの場合、アナリティク・インライン・ビューは、同じロジックのWHEREブロック集計よりもパフォーマンスが優れています。 WHEREブロック副問合せをアナリティク・インライン・ビューに変換します。

副問合せで集計するのではなく、インライン・ビューでアナリティクスを使用します。

問合せ 警告

問合せブロック内の未使用列(SQL列プルーニング)を削除すると、実行プロセス中の関連リソース・ニーズが排除され、パフォーマンスが向上します。 プルーニングによって、SQLをより軽量化できます。

問合せから未使用の列および冗長属性を削除します。

問合せ 警告

スカラー副問合せの集計関数が実行されると、メイン問合せで返されるすべての行に対して同じ関数が実行されます。 各実行は、繰り返し同じ値を戻します。 このような副問合せはリライトする必要があります。

スカラー副問合せで集計関数を使用しないでください。

問合せ 警告

深くネストされたDECODE文によって、データベースによるカーディナリティの見積りが正しくなくなる可能性があります。 パフォーマンスを向上させるには、DECODE文を単純化するか、属性を事前に計算します。

問合せに深くネストされたデコード文を使用しないでください。

問合せ 警告

このチェックは、遅延フィルタの理由として機能する属性を識別します。 SQL構造の遅い時点でフィルタを適用すると、最適なフィルタリングが防止され、不要な処理オーバーヘッドが発生する可能性があります。 より低いレベルでフィルタを適用すると、パフォーマンスが向上します。

問合せの初期レベルでフィルタを適用します。

問合せ 警告

結合条件は、複数のEXIST句およびIN句が使用されている場合、WHERE句の同じ側に記述する必要があります。

問合せで多くのEXIST句およびIN句を使用する場合、WHERE句の同じ側で結合条件を使用します。

問合せ 警告

特定の式をリライトすると、同じ機能を維持しながら、データベース・オプティマイザがより適切な計画を選択できるようになります。 式に連結がある場合、データベースのバグが発生する可能性があります。 回避方法と解決策については、Technote 2800118.1の実行計画の最適でないCONCATENATIONを参照してください。

式をリライトして、データベース・オプティマイザがより適切な計画を選択できるようにします。

問合せ 警告

OTBIレポートとBIPレポートの両方でFusionビュー・オブジェクト(VO)が使用され、複雑な準結合(EXISTS条件)を相関インライン・ビューに追加することでユーザー・レベルのセキュリティが実装されます。 セキュリティ句の構造が非常に複雑なため、オプティマイザで非効率的な結合メソッドが選択される可能性があります。 外部表との相関関係によって、このようなセキュリティ述語が複数回実行されることもあります。

副問合せで複雑なEXISTS述語を使用しないでください。

問合せ 警告

相関副問合せは、結合先の外部表から抽出される行ごとに1回実行されるため、コストが高くなります。 相関副問合せ内の集計は、フィルタ処理がないか弱いと想定されるため、コストも高くなります。

集計操作ではスカラー副問合せを回避します。

問合せ 警告

IN条件内にラップされた副問合せには、集計(DISTINCTまたはGROUP BY、あるいはその両方)演算子またはソート(ORDER BY)演算子が含まれます。 これらの演算子はいずれもIN条件のセマンティクスに影響を与えません。 ただし、高価な操作が発生し、パフォーマンスに著しく影響する可能性があります。

副問合せのIN_CONDITIONからDISTINCT、GROUP BYまたはORDER BY句を削除します。

問合せ 警告

FROM句のほぼ同一の副問合せは避ける必要があります。このパターンによって、実表への複数の冗長アクセス、複数の冗長結合およびフィルタ操作が発生するためです。

問合せおよび副問合せに類似したコンテンツおよび構造を持つ副問合せの繰返しインスタンスを削除します。

問合せ 警告

個別値が少ない列に等価結合された2つの表によって、非常に大きな中間行ソースが生成される可能性があります。

問合せで適切なフィルタおよび条件を使用して、特定のデータにアクセスします。

問合せ 警告

表のフィルタ条件は非効率であり、多数の行が生成される可能性があります。

問合せで適切なフィルタを使用します。