この質問をより適切に表現する方法がわからないため、以前に尋ねた質問を見逃した可能性があります。これを閉じて、存在する場合は正しいものを教えてください。
私は2つの重要な列を持つテーブルを持っています(つまり、もっとたくさんありますが、この質問に関係するのは2つだけです). 最初の列は GUID (ID) で、2 番目の列は nvarchar (URL の格納) です。ID と URL の組み合わせは一意である必要があります (したがって、同じ GUID を繰り返すことができますが、各行には異なる URL があり、その逆も同様ですが、同じ GUID と URL の行が複数存在することはできません)。
現在、すべての INSERT の前に SELECT を実行して、同じ ID と URL を持つ行が存在するかどうかを確認しています。ただし、nvarchar のルックアップが遅いようです。したがって、挿入時に URL のハッシュ (SHA1) で埋められる余分な列を格納するようにテーブルを更新すると思います。今は小さいハッシュ (varbinary?) のルックアップのみを行っており、これは以前よりも大幅に高速になると思います。
SQL Server 2008 でハッシュを自動的に保存し、実際のテキストではなくそのハッシュ値に対してルックアップを行う方法はありますか? インデックスは B ツリーであると想定しているので、SQL Server が nvarchar フィールドのテキストのハッシュ値を使用して B ツリーを作成し、select が実行されたときに計算する必要があります。ハッシュを取得し、ハッシュ値を使用してツリー内でルックアップを行います。これは可能ですか?