Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Существует ли способ быстро сдублировать секцию секционированной таблицы?  [new]
uaggster
Member

Откуда:
Сообщений: 826
... кроме банального создания таблицы, по структуре - аналогичной дублируемой секции, и insert into with (tablock) Select * в нее?
Для 2016SP3 - 2017 серверов.

Нужно для быстрой неблокирующей модификации секции.
Т.е. идея следующая:
1. Дублируем секцию.
2. Мерджим секцию с изменившимися данными (которых немного, но которые вот тут в табличке рядом).
3. Делаем свитч партишн.

Предполагаем, что из партиции, которую мы пытаемся модифицировать - очень интенсивно читают, и блокировать на чтение - ее нельзя. А модификация производится только одним клиентом, пакетами.

Обычный уровень изоляции "снимок" не позволит ли добиться нужного эффекта?
17 янв 19, 11:10    [21787599]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли способ быстро сдублировать секцию секционированной таблицы?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36965
uaggster
Предполагаем, что из партиции, которую мы пытаемся модифицировать - очень интенсивно читают, и блокировать на чтение - ее нельзя
Для того, чтобы читатели не мешали писателям (и наоборот), уже давно придумали уровни изоляции snapshot / rcsi.

Сообщение было отредактировано: 17 янв 19, 11:25
17 янв 19, 11:25    [21787617]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли способ быстро сдублировать секцию секционированной таблицы?  [new]
uaggster
Member

Откуда:
Сообщений: 826
Гавриленко Сергей Алексеевич, ну, это я как раз понимаю.
Но не вылезут ли подводные камни в случае именно merge?
Блокировки чтения, еще раз повторюсь, недопустимы.
17 янв 19, 12:01    [21787680]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли способ быстро сдублировать секцию секционированной таблицы?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4712
uaggster
Гавриленко Сергей Алексеевич, ну, это я как раз понимаю.
Но не вылезут ли подводные камни в случае именно merge?
Блокировки чтения, еще раз повторюсь, недопустимы.


100 % гарантии, что не произойдет lock escalation никто не даст . Хотя есть опция LOCK_ESCALATION
17 янв 19, 13:08    [21787782]     Ответить | Цитировать Сообщить модератору
 Re: Существует ли способ быстро сдублировать секцию секционированной таблицы?  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
a_voronin
uaggster
Гавриленко Сергей Алексеевич, ну, это я как раз понимаю.
Но не вылезут ли подводные камни в случае именно merge?
Блокировки чтения, еще раз повторюсь, недопустимы.


100 % гарантии, что не произойдет lock escalation никто не даст . Хотя есть опция LOCK_ESCALATION

что собираетесь эскалировать?
на snapshot / rcsi читаются закоммиченные копии данных из rowversion store,
вы собираетесь залочить все содержимое tempdb?
17 янв 19, 15:23    [21787998]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить