Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье приведены рекомендации по определению типов данных таблицы в выделенном пуле SQL.
Поддерживаемые типы данных
Выделенный пул SQL (ранее — хранилище данных SQL) поддерживает наиболее часто используемые типы данных. Список поддерживаемых типов данных см. в типах данных в инструкции CREATE TABLE.
Уменьшение длины строки
Уменьшение размера типов данных сокращает длину строки, что улучшает производительность запросов. Используйте наименьший тип данных, подходящий для ваших данных.
- Избегайте определения столбцов символов с большой длиной по умолчанию. Например, если самое длинное значение состоит из 25 знаков, столбец необходимо определить как VARCHAR(25).
- Избегайте использования NVARCHAR , если требуется только VARCHAR.
- По возможности используйте NVARCHAR(4000) или VARCHAR(8000) вместо NVARCHAR(MAX) или VARCHAR(MAX).
Если вы используете внешние таблицы PolyBase для загрузки таблиц, определенная длина строки таблицы не может превышать 1 МБ. Если строка с данными переменной длины превышает 1 МБ, можно загрузить строку с помощью BCP, а не PolyBase.
Определение неподдерживаемых типов данных
Если вы переносите базу данных из другой базы данных SQL, можно найти типы данных, которые не поддерживаются в выделенном пуле SQL. Используйте следующий запрос, чтобы обнаружить неподдерживаемые типы данных в существующей схеме SQL:
SELECT t.[name], c.[name], c.[system_type_id], c.[user_type_id], y.[is_user_defined], y.[name]
FROM sys.tables t
JOIN sys.columns c on t.[object_id] = c.[object_id]
JOIN sys.types y on c.[user_type_id] = y.[user_type_id]
WHERE y.[name] IN ('geography','geometry','hierarchyid','image','text','ntext','sql_variant','xml')
AND y.[is_user_defined] = 1;
Обходные решения для неподдерживаемых типов данных
В следующем списке показаны типы данных, которые выделенный SQL-пул (ранее, хранилище данных SQL) не поддерживает, и предоставляются полезные альтернативы для неподдерживаемых типов данных.
| Неподдерживаемые типы данных | Обходной путь |
|---|---|
| geometry | varbinary |
| geography | varbinary |
| hierarchyid | nvarchar(4000) |
| Изображение | varbinary |
| текст | varchar |
| ntext | nvarchar |
| sql_variant | Разделите столбец на несколько строго типизированных столбцов. |
| таблицы | Преобразуйте во временные таблицы. |
| timestamp | Для использования datetime2 и функции CURRENT_TIMESTAMP внесите изменения в код. Поддерживаются только константы по умолчанию, поэтому current_timestamp нельзя определить как ограничение по умолчанию. Если вам нужно переместить значения версий строк из столбца с типом метки времени, используйте BINARY(8) или VARBINARY(8) для значений версии строк NOT NULL или NULL. |
| xml | varchar |
| Определяемый пользователем тип | По возможности выполните преобразование в исходный тип данных. |
| Значения по умолчанию | Значения по умолчанию поддерживают только литералы и константы. |
Дальнейшие действия
Дополнительные сведения о разработке таблиц см. в разделе "Обзор таблиц".