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

SQL Server で Merge を使用せずに 5000 行以上を Upsert するための最も効率的な/ベスト プラクティスは何ですか?

    最初に UPDATE を実行します。そうしないと、挿入したばかりの行が更新されます

    SELECT .. INTO #temp FROM (shredXML)
    
    BEGIN TRAN
    
    UPDATE ... FROM WHERE (matches using #temp)
    
    INSERT ... SELECT ... FROM #temp WHERE NOT EXISTS
    
    COMMIT
    

    また、XML を一時テーブルに変更し、SQLBulkCopy を使用することも検討します。これは、一般的に数百行を超える XML を解析するよりも効率的であることがわかりました。これを変更できない場合は、最初に XML を一時テーブルに分割しますか?




    1. 行間の時間差の合計

    2. 主キーSQLチュートリアル–データベースで主キーを定義する方法

    3. AssertionError:データベース接続がUTCに設定されていません

    4. 2回のmysqlの間で時間を選択します