Microsoft SQL Server 2017: Identity Cache и Select Into Filegroup
Две новые полезные функции в Microsoft SQL Server 2017
На этой неделе мы обнаружили две новые функции в Microsoft SQL Server 2017, которые могут стать полезными как для разработчиков, так и для администраторов баз данных. Это два небольших изменения, но они решают проблемы, которые долгое время были постоянной головной болью.
IDENTITY_CACHE
Это параметр области охвата базы данных, доступный в Microsoft SQL Server 2017 и открытый в предварительном просмотре для базы данных Microsoft Azure SQL.
По умолчанию режим Microsoft SQL Server в 2017 представляет собой кеширование значений столбца идентификатора для быстрого их предоставления во время работы оператора INSERT.
IDENTITY_CACHE позволяет отключить этот режим или включить его на уровне базы данных, что означает, что когда экземпляр перезагружен или восстанавливается после сбоя, в значениях столбца IDENTITY пробелов будет меньше или не будет вообще.
Это полезно для нескольких типов специалистов:
- Администраторов баз данных, которые были затронуты этой ошибкой или аналогичной проблемой.
- Разработчики, которым нужно, чтобы столбец IDENTITY был без пробелов и с увеличивающимся значением.
Первые в этом списке - администраторы баз данных. Они получили хорошее решение, воплощенное в Microsoft SQL Server 2017.
Разработчики приблизились к решению своей проблемы на один шаг. Но, честно говоря, это все еще не очень хорошая идея. Microsoft SQL Server не запускает инструкции INSERT последовательно, потому что это основное слабое место. Кроме того, неудачные INSERT будут по-прежнему вызывать значение IDENTITY. Но если вы работаете с устаревшей системой или с приложением, неконтролируемым вами, это может устранить некоторые ваши головные боли.
Код представляет собой следующее:
ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE= [ON|OFF]
SELECT INTO ON FILEGROUP
Любимый инструмент резервного копирования SELECT ... INTO получает возможность поместить новую таблицу в FILEGROUP, отличную от настроек по умолчанию, начиная с Microsoft SQL Server 2017.
Синтаксис будет очень простым:
SELECT ... INTO [tablename] ON FILEGROUP
Часто бывает сложно скопировать большую таблицу из-за дополнительных накладок на уже перегруженном диске. Другие люди могут иметь дело с процессом создания собственного архива.
Это позволит быстро и легко автоматизировать создание и перемещение данных в новый FILEGROUP.