powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про совместную блокировку таблицы
12 сообщений из 12, страница 1 из 1
Вопрос про совместную блокировку таблицы
    #40013389
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Может сформулировал тему неправильно.. но все ж.
Задача: в одну таблицу относительно одновременно пишут несколько асинхронных процессов, объединенных одной логической операцией.
Возможно ли установить блокировку на таблицу на период пока не закончат выполняться все эти процессы.
Всем остальным процессам хотелось бы запретить любое чтение/запись этой таблицы.
Что посоветуете?
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013395
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

в таких случаях можно использовать блокировку уровня приложения, т.е блокировать процессы, а не таблицу. Но процессы придется доработать.
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013398
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Писателей можно разрулить через триггеры instead of + sp_getapplock
Разрулить читателей относительно просто не выйдет.
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013406
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читателям можно установить UPDATE уровень блокировки, т.е. совместимый между собой, а писателям EXCLUSIVE, не совместимый ни с чем. Для applock, разумеется.
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013417
invm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
UPDATE уровень блокировки, т.е. совместимый между собой
U не совместимо с U
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013506
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

т.е. разные процессы с одной и той же апплок будут писать конкурентно, а читатели которые вообще не знают ни о каких апплоках буду ждать?
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013513
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor
Владислав Колосов,

т.е. разные процессы с одной и той же апплок будут писать конкурентно, а читатели которые вообще не знают ни о каких апплоках буду ждать?
Нет, нужно поменять код всех процессов. Читатели должны перед чтением запросить разрешение applock, и не читать, если нельзя.

Встроенными средствами в сиквеле это не сделать, что бы ничего не программировать (кроме варианта вставки BULK)
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013514
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

для какой версии сервера хотите построить такую логику?
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013520
ShIgor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
felix_ff,

2016
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013541
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

если таблица не слишком крупная, можно копировать ее содержимое в дубликат, заполнять процессами дубликат и использовать переключение секций для обмена местами таблиц. Понятно, что писать в исходную таблицу ничего нельзя при этом.
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013542
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShIgor,

тогда можете покопать в сторону security policy на уровне строк.

писателей ограничить block-предикатами, а для читателей настроить filter-предикаты.
только в таблице должен тогда существовать некий уникализатор вашей логической единицы.
...
Рейтинг: 0 / 0
Вопрос про совместную блокировку таблицы
    #40013582
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сам никогда не пользовался этим, но встречал упоминание

sp_bindsession / mars не подойдет в данном случае?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вопрос про совместную блокировку таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]