Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Tip
Microsoft Fabric Data Warehouse — это реляционное хранилище корпоративного масштаба на основе озера данных, с архитектурой, готовой к будущему, встроенной ИИ и новыми функциями. Если вы не знакомы с хранилищем данных, начните с Fabric Data Warehouse. Существующие рабочие нагрузки выделенного пула SQL могут обновляться до Fabric для доступа к новым возможностям в области науки о данных, аналитики в реальном времени и отчетности.
В этой статье приведены рекомендации по определению типов данных таблицы в выделенном пуле 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 |
| Определяемый пользователем тип | По возможности выполните преобразование в исходный тип данных. |
| Значения по умолчанию | Значения по умолчанию поддерживают только литералы и константы. |
Дальнейшие действия
Дополнительные сведения о разработке таблиц см. в разделе "Обзор таблиц".