これまで、私はC# "Guid = Guid.NewGuid();を使用していました。メソッドを使用して、SQLへのLinqを使用して、自分のSQL Serverデータベーステーブルの一部にIDフィールドとして格納できる一意のIDを生成します。 私は、インデックス付けの理由から、GUIDを使用することは悪い考えであり、代わりに自動インクリメントのLongを使用する必要があることを知っています。私のデータベーストランザクションを高速化することはできますか?もしそうなら、Long型の一意のIDを生成するにはどうすればいいですか?SQL Server - Guid VS. Long
よろしく、
"私はインデックスの理由から、GUIDを使用することは悪い考えであることを知らされました" - あなたが持っている場合は IDフィールドのクラスタード・インデックスでは、GUIDは挿入のパフォーマンスを低下させます。 SQL Serverは、クラスタ化インデックスに基づいてテーブルを格納します。新しいGUIDが非シーケンシャルなので、新しい行を挿入すると、最後ではなくテーブルの中央に挿入する必要があり、多くのIOが発生します。クラスタ化されたインデックスの列型である限り、この問題は回避されます。 – adrianbanks
追加するだけです - GUIDがプライマリキーの場合は、デフォルトでGUIDがクラスタ化されます。これはクラスタ化されていない可能性がありますが、手動介入が必要です –
http://sqlblogcasts.com/blogs/martinbell/archive/2009/ 05/25/GUID-Fragmentation-in-SQL-Server.aspx - およびトピックに関する多くのコンテンツを含むポッドキャストについては、http://www.dotnetrocks.com/default.aspx?showNum=455を参照してください。 –