Тип данных промежуточной таблицы SQL Server
Я хочу знать, какой тип данных я должен определить в промежуточной таблице SQL Server, когда я не знаю точного типа данных источника (CSV-файлы).
Каковы наилучшие методы оптимизации ресурсов?
Пример:
- Для текстового столбца:
varchar(255)
илиnvarchar(255)
? - Для столбца даты:
date
илиdatetime
? - Для десятичного столбца:
decimal
илиfloat
? И какова наилучшая точность в случае десятичной дроби?
1 ответ
Я считаю, что нет общего решения вашего вопроса. Это зависит от того, какие источники данных вы размещаете. Я предоставлю несколько вопросов и ответов, чтобы помочь вам выбрать соответствующие типы данных.
Может ли один и тот же столбец иметь разные жанры типов данных (текстовые, числовые, двоичные)?
Если да, то в промежуточной таблице следует использовать тип данных, поддерживающий неявное преобразование из других типов. Вы можете обратиться к следующей документации , чтобы узнать больше о неявном преобразовании и типах данных SQL.
Если нет, вы должны использовать тип данных, который поддерживает неявное преобразование из других. Например, если источник данных может бытьdate
илиdatetime
типы, если значения содержат значение времени, то вы должны использоватьDateTime
type, поскольку он поддерживает хранение обоих типов.
Я работаю с чистыми данными?
Если данные чистые, вы должны выбрать тип данных, аналогичный целевой базе данных. Например, если исходный столбец может иметь тип данных или. При этом он всегда содержит значение, и ошибочных данных не существует. Тогда было бы лучше, если бы вы использовалиinteger
тип данных в промежуточной таблице, поскольку он уменьшает размер буфера данных.
Что мне нужно в месте назначения данных?
Это самый важный вопрос, поскольку потребление данных должно привести вас к соответствующему типу данных.
Наконец, могут быть и другие вопросы, которые вы должны задать себе, прежде чем принять решение. Имейте в виду, что использованиеnvarchar
для всех столбцов может показаться самым безопасным методом, но он сильно влияет на производительность промежуточного хранения данных. Неявное преобразование оказывает значительное влияние. Вы можете обратиться к следующей статье для получения дополнительной информации:
Понимание требований задачи должно быть вашим первым шагом в принятии этого решения.