Я храню даты календаря, включая повторяющиеся события. Стол может стать огромным. Большинство моих запросов относятся к диапазонам месяца (т. Е. Где eventstart> = '1/1/2001' и eventstop < = '1/31/2001'), поэтому мне не нужно столько времени в моих запросах.Является ли тип даты более результативным, чем datetime для запросов на больших наборах данных?
Могу ли я получить лучшую производительность в запросах диапазона, если я запросил столбец даты и столбца datetime?
Я не знаю, но я бы сказал, что да, так как это всего 3 байта по сравнению с 8 байт 'datetime'. Только для записи у вас также есть «smalldatetime», что составляет 4 байта, и это может быть более справедливое сравнение. – Andrew
Кроме того, ваши запросы станут более обоснованными. В вашем примере 'where eventstart> = '1/1/2001' и eventstop <= '1/31/2001'' с типом' datetime' вы можете пропустить событие 31 января в 10:00, скажем, потому что ваш диапазон только до полуночи утром 31 января. Если бы это был столбец «дата», ваш запрос всегда выбирал любое событие в январе. Поэтому, если вам не нужно сохранять время, есть другие преимущества для типа «даты» в дополнение к скорости и меньшим требованиям к хранению. –
@Andrew, smalldatetime не является стандартом ANSI и рекомендуется не использовать его. https://msdn.microsoft.com/en-us/library/ms182418.aspx – FLICKER