GUIDをプライマリキーとして挿入すると、dbサーバはすべての単一の行を調べて重複がないことを確認しますか、重複が不可能か、またはほとんど起こりそうでないと仮定しますか? DBサーバは、単にGUIDをsqlサーバーは挿入時に重複GUIDをチェックしますか?
2
A
答えて
5
これは、列が主キーであることをデータベースに伝えた後のことです。
この時点で心配する必要はありません。データベースでこれを心配してください。
また、これは主キーであるため、インデックスが作成されます。ですから、各行(またはテーブルスキャン)は実際にはこのレベルでは発生しませんが、あなたの事前の関心事は懸念されます。データベースは索引ファイルを使用して、一意の値のみを挿入できるようにします。
0
私はそれが主キーまたは一意キー
である場合にのみ推測しかし、私が知っているようにGUIDが一意であるとのケースを、キーをインクリメントすることはできませんが、int型と
。
1
すべての主キーは一意です。したがって、サーバは、2つの行に同じ主キーが存在することを確認する責任を負いません。これは、主キーがint、varchar、guidなどであれば真です。 一意制約が検証される方法は、実装定義です。基本的には、それがパフォーマンス上の障壁であることがわかっていない限り、あなたに心配しないでください。
パフォーマンスについて過度に心配する前に常にプロファイルしてください。
関連する問題
- 1. Wordpressチェック重複してデータを挿入
- 2. GUIDをSQL Serverに挿入する
- 3. T-SQL ERPへのレコードの挿入、重複のチェック
- 4. SQLは重複を挿入しません
- 5. 挿入GUIDはNLOG
- 6. C#ASP.NET、SQL Server:Button Click重複行を挿入します。
- 7. sqliteを挿入する前に重複をチェックしています(コアデータ)
- 8. Asp.Net SQL Refreshページの重複挿入?
- 9. GWT RPC:flextableにDBからの重複値の挿入をチェックするには
- 10. WCF SQL挿入GUID変換エラー
- 11. SQL Server - 選択したユニオンの重複を挿入して挿入する
- 12. SQL Server:重複しない値を複製する文を挿入します
- 13. SQLサーバーにタイムスタンプを挿入
- 14. バルク挿入SQLサーバー
- 15. SQLサーバーは、挿入された行を決定しますか?
- 16. SQL - 新しいテーブルに重複行を挿入してから重複レコードを削除する
- 17. 一時テーブルから重複行を挿入する
- 18. 重複更新に挿入
- 19. 重複更新に挿入
- 20. SQLサーバー複数の行を挿入し、int列をインクリメントする
- 21. SQL Serverの重複チェック
- 22. 挿入する前にデータベースの重複をチェックする方法は?
- 23. 重複キーに更新を挿入するためのSQLクエリ
- 24. 重複レコードを一時テーブルに挿入する
- 25. バルク挿入時に重複した主キーを持つ行をスキップするか、SQLをスキップする
- 26. 角チェック重複入力
- 27. サーバーにデータを挿入しますか?
- 28. sql - テーブル2からテーブル1に挿入する方法重複値を挿入しない
- 29. RPCサーバーの起動時に「エンドポイントは重複しています」
- 30. 重複なしでテーブルに挿入
GUIDは確率的な意味でユニークですが、(多くの実装では)保証されていません。 –
はい、ランダムなGUIDジェネレータを使用している場合は、重複している可能性があります(ほとんどありません)。しかし、これらの2つの重複を主キーとして挿入しようとすると、サーバーはエラーにフラグを付けます。 –