バルク削除/挿入/選択のパフォーマンスを向上させるSQL Server 2005データベースがあります。主キーにはdecimal(18,0)
が使用されています。私はこれがbigint
よりも多くの価値を与えてくれると理解していますが、それが速い勝利であり、私の計算によって何百万年もの成長を続けなければならないことを望んでいました。私は、.NET docs小数で見る主キーのBIGINTまたはDECIMAL(18,0)
は16バイトの代わりに、long型で必要とされる8を取るが、SQL Serverでそれがbigint
take 8 bytesのように見えるがdecimal(18,0)
だけ5 bytesを取る - もselect DATALENGTH(max(id)) from table
で見られるように。これは正しいです?
他の理由がありますかbigint
は遅くなるか、decimal(18,0)
に固執する必要がありますか?
あなたの場合、10進数(18,0)は9バイトではありません5 –
DATALENGTH関数は5ですか? –