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

挿入前に主キー値をチェックする方が、try-catchを使用するよりも高速ですか?

    SQL 2008では、MERGEを使用できます。どちらのアプローチよりもはるかに簡単です。

    また、「パフォーマンス上の理由でトランザクションを使用したくない」ということについては、私はあなたと一緒ではありません。実行するすべてのDMLコマンドは、とにかく何らかのトランザクションの一部であるため、明示的に開かなくてもトランザクションがあります。パフォーマンスの問題が発生している場合は、詳細を投稿して、パフォーマンスに関するサポートをさらに得ることができます。

    編集:本当に高速な挿入が必要な場合は、一度に1行ずつ挿入しないでください。行のセットを追加し、MERGEを使用します。一度に行のバッチを挿入することで得られる利点は、1つの行を追加する速度を最適化することで得られる小さな改善よりもはるかに重要です。

    とにかく、データベースに関連するものについての理論的な推論は、通常、十分ではありません。何が速いかを判断するには、本当にベンチマークを行う必要があります。 「既存の回線を不必要に照会する」と呼んでいることは完全に無視できる可能性があり、現実的な条件下で測定するまで、これが当てはまるかどうかはわかりません。



    1. 別のテーブルの主キーを持つSQLテーブル

    2. CSVをMySQLにインポートし、日付を変換します

    3. SQLビューを介して複数のテーブルにデータを挿入する

    4. GRANTALLPRIVILEGESを持つユーザーに対してCREATEコマンドが拒否されました