Інструменти даних SQL Server та функції розділу


16

Я створюю сценарій завантаження розсувного вікна, і функції розділу будуть змінювати свої межі через час.

Я створив деякі функції розділу в моєму проекті баз даних SQL Server (SSDT) ​​з певними початковими межами.

Однак з часом, і межі функцій розділів змінюються, майбутня база даних SSDT поверне межі до початкових.

Чи є спосіб виправити цей сценарій витончено, можливо, відключивши публікацію функцій розділу?

Я намагався змінити властивість Build Action функцій розділів в SSDT з типового Buildна None, але потім проект не вдалося побудувати через відсутність посилання в залежних об'єктах.


4
Я завжди говорив, що розгортання на основі розбиття принципово порушено. Міграції - така надзвичайно чудова метафора розгортання !
Рем Русану

Також слід встановити "Ігнорувати параметри індексу", щоб уникнути перебудови SSDT вашого розділеного індексу щоразу, коли запускається розгортання.

Відповіді:


16

Я зміг знайти рішення своєї проблеми - сподіваюся, що це допоможе комусь іншому.

Щоб уникнути того, щоб кожна публікація бази даних відтворювала функцію розділу, ви можете перевірити параметр « Ігнорувати схеми розділів» у діалоговому вікні « Додаткові параметри публікації» ( кнопка « Додатково ... » у діалоговому вікні «Публікація бази даних»).

З опису варіанту (міна наголосу):

Вказує, чи слід ігнорувати або оновлювати відмінності в схемах і функціях розділів при публікації в базі даних.

Однак якщо ви визначили розділений об'єкт (таблицю або індекс) зі стисненням сторінки або рядків, хоча опція Ігнорувати схеми розділів більше не відтворює функцію розділу, розділений об’єкт все одно буде відтворений.

Це трапляється тому, що розділений об’єкт отримує сценарій із заданим стисненням для кожного розділу , і оскільки об’єкт має іншу кількість розділів, ніж було визначено спочатку, SSDT відтворює об'єкт при публікації. Напр. (Відформатовано):

WITH ( DATA_COMPRESSION = PAGE ON PARTITIONS (1)
     , DATA_COMPRESSION = PAGE ON PARTITIONS (2)
     , ...

Щоб цього не сталося, ви також можете перевірити параметр « Ігнорувати параметри таблиці» у тому ж діалоговому вікні « Додаткові параметри публікації» - просто пам’ятайте, що ви будете ігнорувати інші параметри, наприклад ALLOW_ROW_LOCKSта ALLOW_PAGE_LOCKS( посилання на параметри таблиці ).

Діалогове вікно Налаштування публікації


1
Google просто привів мене сюди. Дивовижна інформація, дякую за обмін.
jamiet

Зауважте, що якщо ви використовуєте аналогічний діалог на сторінці властивостей проекту -> Налагодження, зміни будуть збережені у файлі .sqlproj.user, АЛЕ лише при завантаженні проекту.
Таран

3

Так, це не дуже вдала ситуація. Наскільки я знаю, SSDT це не підтримує. Найкраще, що я можу придумати, - це використовувати скрипт попереднього розгортання для зберігання меж у таблиці, а потім змінити функцію розділу, використовуючи ці значення в сценарії після розгортання.


Тут ігнорую мою відповідь, судячи з моєї відповіді Гонсалу вище, я явно помилявся.
jamiet
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.