私は定期的なイベントを含むカレンダーイベントの日付を保存しています。テーブルが大きくなる可能性があります。ほとんどのクエリは1か月間(つまり、eventstart> = '1/1/2001'、eventstop < = '1/31/2001')のクエリであるため、クエリの時間はそれほど気にしません。大規模データセットのクエリでは、日付型がdatetimeよりもパフォーマンスが良いですか?
日付の列と日付の列を照会すると、範囲のクエリでパフォーマンスが向上しますか?
私は定期的なイベントを含むカレンダーイベントの日付を保存しています。テーブルが大きくなる可能性があります。ほとんどのクエリは1か月間(つまり、eventstart> = '1/1/2001'、eventstop < = '1/31/2001')のクエリであるため、クエリの時間はそれほど気にしません。大規模データセットのクエリでは、日付型がdatetimeよりもパフォーマンスが良いですか?
日付の列と日付の列を照会すると、範囲のクエリでパフォーマンスが向上しますか?
ルール1)可能な限り大きな値に対応する最小のデータサイズを常に使用してください。
私は知りませんが、それはdatetime' 'の8つのバイトに比べてわずか3バイトであるように私は、そう言うだろう。レコードのために、あなたはまた、4バイトの 'smalldatetime'を持っています。これはより公平な比較かもしれません。 – Andrew
また、クエリがより正確に正しいものになります。あなたの例では、 'where eventstart> = '1/1/2001'とeventstop <= '1/31/2001''のdatetime型では、1月31日の午前10時にイベントを逃すことができます。 1月31日の午前0時にのみ真夜中になります。これが 'date'列だった場合、クエリは常に1月にイベントを選択します。したがって、時間を保存する必要がない場合は、速度とより小さな記憶要件の上にある 'date'型には他の利点があります。 –
@Andrew、smalldatetimeはANSI標準ではありません。使用しないことをお勧めします。 https://msdn.microsoft.com/en-us/library/ms182418.aspx – FLICKER