sql >> データベース >  >> RDS >> Oracle

Oracleデータリンクからマージする際の最適化

    /*+DRIVING_SITE(rd)*/ マージされたテーブルが置かれているデータベースで操作を実行する必要があるため、ヒントはMERGEでは機能しません。この場合、これはローカルデータベースです。つまり、結果セット全体 リモートテーブルからはデータベースリンクを介してプルされ、ローカルテーブルからのデータに対してフィルタリングされます。

    したがって、ヒントを破棄します。また、IN句を結合に変換することをお勧めします:

    Merge into project p
    using (select rp.projectID,
                  rp.otherdata
           FROM Project ld
                inner join [email protected] rd
                         on rd.projectID = ld.projectID
          where ld.LastUpdated < (sysdate - 6/24)) q
    -- This select in the in clause one returns 10 rows. Its a test database.
        On (q.projectID = p.projectID)
        )
    

    十分な詳細がないパフォーマンスチューニングの質問への回答は、単なる推測であることに注意してください。 。



    1. 複数の子行を1つの行に結合するMYSQL

    2. データベース、テーブル、列の照合の違い

    3. 2つのテーブル(メインテーブルと多対1のサブテーブル)を外部結合して、2番目のテーブルから1つのアイテムのみを取得するにはどうすればよいですか?

    4. Oracleの異なるCURRENT_TIMESTAMPとSYSDATE