Производительность Datetime2 и String в SQL Server
Каковы преимущества наличия столбца типа datetime2
в SQL Server вместо строки? Очевидно, что строки гораздо более гибкие. Есть ли преимущества производительности при выполнении запросов?
Я проектирую базу данных, в которой все записи добавляются с помощью функций на другом языке, и поэтому не нужно беспокоиться о том, что значение, не отформатированное как дата, будет добавлено в рассматриваемый столбец. Я подумываю о том, чтобы создать строку типа столбца, чтобы мне было легче разбирать их при запросах. Когда они добавляются в базу данных, они преобразуются из формата даты-времени Python, который по договоренности имеет шесть цифр точности в долях секунды, в формат даты-времени2, который имеет семь. Создание столбца типа string предотвратит это, но я беспокоюсь о проблемах производительности, которые могут возникнуть из-за отсутствия datetime2.
1 ответ
Datetime2 (и другие типы даты / времени):
- сэкономит вам место для хранения, и это в конечном итоге приведет к увеличению производительности.
- позволит вам легко выполнять математику по дате без необходимости создавать процедуры, которые нужно будет вычислить, если в феврале будет 28 или 29 дней (просто для примера).
- имеют свои встроенные ограничения, чтобы вам не пришлось беспокоиться о том, что кто-то вставит недопустимую дату.
- можно легко конвертировать в разные форматы
- могут быть извлечены их части, включая недели, будни или дни года.
- и так далее...