予算システム用のSQLサーバーデータベースに対して、ビジネスオブジェクトのWebインテリジェンスによって大量のクエリを生成しました。レポート開発者がGUIでこのクエリを作成し、完了しないことが判明しました。私はそれが昨晩実行させ、私たちのサーバーがWindowsの更新のために再起動する前に7時間走った。「結合述語なし」のソースを見つける方法
SQLのExplainプランを見て、いくつかのネストループ(内部結合)ステップでいくつかの警告が表示されました。これらの警告のうちの2つが最後から3番目のステップです。警告は「結合述語なし」です。
私はこれで持っている他のノートは、クエリがwhere句でこれを含有することである: - ので、何とか二コードが追加
BF_FUND.CD IN ('0105','0101')
あなたはそこだけで1つのファンドのコードを入れた場合、それが正常に動作します私たちのことをデカルトにしています(おそらく、これは結合述語がないと起こります)。
これを追跡する方法についての推奨事項はありますか? 790行目のすばらしいSQLがウェイ・スルーされます。
説明計画が特定の地域を指すことはありますか?
ご協力いただきありがとうございます。
編集:
は、クエリ、セキュリティの事を投稿することはできませんし、それが難読化する大規模に多くのです。そして私はそれを誰にも見させたくありません。
1 - **ポストクエリ** – JNK
2 - 。あなたは(XY = zy'上のxを左結合 ')明示的な' JOIN'構文を使用していることを確認し、ない暗黙のSYNAX( 'からのX、 z ') – JNK
実行計画は関係するテーブルを示しているので、どのように見つけにくいのですか?暗黙の 'JOIN'構文で書かれていますか? –