powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировки IX и X. Как запретить эскалацию блокировок до уровня таблицы
3 сообщений из 3, страница 1 из 1
Блокировки IX и X. Как запретить эскалацию блокировок до уровня таблицы
    #39956711
mih.dim1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Есть процедура, которая делает множество операций и в конце открывается явная транзакция со вставкой данных в несколько таблиц (Данные по серверам ниже)
Типо того:
ALTER procedure [dbo].[test]
as
BEGIN
---операции по подготовки #Table_DataN---
begin tran
insert into Table1(...)
select ...
from #Table_Data1

insert into Table2(...)
select ...
from #Table_Data2

insert into Table3(...)
select ...
from #Table_Data3
commit
end

Вопросы:
1. Нужно запретить эскалацию блокировки до уровня таблицы для всех таблиц Table1-Table3? Кол-во строк в таблицах примерно 15-20 млн. Вставка за раз строк 100-40000. Это нужно на рабочем сервере.

2. Есть два сервера (рабочий и тестовый) с БД. Базы и запросы одинаковы.
На рабочем по блокировкам (последняя колонка кол-во блокировок):
86 Work 630293305 Table1 10 5 TAB X GRANT 1
86 Work 630293305 Table1 12 6 PAG X GRANT 35
86 Work 630293305 Table1 13 6 PAG X GRANT 94
86 Work 630293305 Table1 14 6 PAG X GRANT 69
86 Work 630293305 Table1 15 6 PAG X GRANT 15
86 Work 630293305 Table1 114 6 PAG X GRANT 9
86 Work 630293305 Table1 116 6 PAG X GRANT 29
86 Work 630293305 Table1 117 6 PAG X GRANT 94
На тестовом по блокировкам(последняя колонка кол-во блокировок):
66 test 630293305 Table1 0 5 TAB IX GRANT 1
66 test 630293305 Table1 1 6 PAG IX GRANT 1
66 test 630293305 Table1 1 6 PAG X GRANT 1801
66 test 630293305 Table1 2 6 PAG IX GRANT 3
66 PM 630293305 Table1 2 6 PAG X GRANT 158
66 test 630293305 Table1 3 6 PAG IX GRANT 2
66 test 630293305 Table1 3 6 PAG X GRANT 206
66 test 630293305 Table1 4 6 PAG IX GRANT 1436
66 test 630293305 Table1 4 6 PAG X GRANT 105
66 test 630293305 Table1 5 6 PAG IX GRANT 2
66 test 630293305 Table1 5 6 PAG X GRANT 80
66 test 630293305 Table1 14 6 PAG IX GRANT 3
66 test 630293305 Table1 14 6 PAG X GRANT 78
66 test 630293305 Table1 16 6 PAG IX GRANT 1
66 test 630293305 Table1 16 6 PAG X GRANT 136
66 test 630293305 Table1 17 6 PAG IX GRANT 3
66 test 630293305 Table1 17 6 PAG X GRANT 206
66 test 630293305 Table1 1 7 KEY X GRANT 11
66 test 630293305 Table1 2 7 KEY X GRANT 251
66 test 630293305 Table1 3 7 KEY X GRANT 323
66 test 630293305 Table1 4 7 KEY X GRANT 1194
66 test 630293305 Table1 5 7 KEY X GRANT 79
66 test 630293305 Table1 14 7 KEY X GRANT 365
66 test 630293305 Table1 16 7 KEY X GRANT 163
66 test 630293305 Table1 17 7 KEY X GRANT 329

Получается 2017 умнее 2016 и не блокирует всю таблицу??? На рабочий не могу поставить 2017 - это не мое требование.

Сервер рабочий: Microsoft SQL Server 2016 (SP2-CU10) (KB4524334) - 13.0.5492.2 (X64) Oct 4 2019 19:14:08 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor)
Сервер тестовый: Microsoft SQL Server 2017 (RTM-CU19) (KB4535007) - 14.0.3281.6 (X64) Jan 23 2020 21:00:04 Copyright (C) 2017 Microsoft Corporation Developer Edition (64-bit) on Linux (Ubuntu 18.04.4 LTS)
...
Рейтинг: 0 / 0
Блокировки IX и X. Как запретить эскалацию блокировок до уровня таблицы
    #39956715
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эскалация отключается через alter table.
...
Рейтинг: 0 / 0
Блокировки IX и X. Как запретить эскалацию блокировок до уровня таблицы
    #39956974
mih.dim1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич
Эскалация отключается через alter table.


Спасибо. Вроде помогло.
alter Table Pay SET (LOCK_ESCALATION = DISABLE)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Блокировки IX и X. Как запретить эскалацию блокировок до уровня таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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