Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
День добрый. Есть таблица, с именем _InfoRg6219 и колонками [_Fld6220RRef] [_Fld6221] [_Fld6222_TYPE] [_Fld6222_RTRef] [_Fld6222_RRRef] [_Fld6223RRef] [_Fld281] содержащая 7 млн строк данных и 2 индекса: Кластерный [_Fld281] [_Fld6220RRef] [_Fld6221] [_Fld6222_TYPE] [_Fld6222_RTRef] [_Fld6222_RRRef] [_Fld6223RRef] и некластерный: [_Fld281] [_Fld6222_TYPE] [_Fld6222_RTRef] [_Fld6222_RRRef] [_Fld6220RRef] [_Fld6221] [_Fld6223RRef] Из этой таблицы в 2 транзакциях, параллельно удаляются записи запросом вида: DELETE FROM T1 FROM dbo._InfoRg6219 T1 WHERE (T1._Fld6222_TYPE = 0x08 AND T1._Fld6222_RTRef = 0x000016E5 AND T1._Fld6222_RRRef = @P1) AND (T1._Fld281 = @P2) План запроса прост, как палка и не менялся ни разу: StmtText -------- Clustered Index Delete(OBJECT:([DISTR_DE].[dbo].[_InfoRg6219].[_InfoRg6219_1] AS [T1]), OBJECT:([DISTR_DE].[dbo].[_InfoRg6219].[_InfoRg6219_2] AS [T1]), OBJECT:([DISTR_DE].[dbo].[_InfoRg6219].[_InfoRg6219_3] AS [T1]) WITH UNORDERED PREFETCH) |--Index Seek(OBJECT:([DISTR_DE].[dbo].[_InfoRg6219].[_InfoRg6219_2] AS [T1]), SEEK:([T1].[_Fld281]=[@P2] AND [T1].[_Fld6222_TYPE]=0x08 AND [T1].[_Fld6222_RTRef]=0x000016E5 AND [T1].[_Fld6222_RRRef]=[@P1]) ORDERED FORWARD) Уровень изоляции транзакции - READ COMMITTED SNAPSHOT В случае, если удаляется до 500 записей, транзакции выполняются параллельно, если записей больше 5000 - 2 транзакция ждет первую. Во всех случаях - попадание в индекс есть, сколько строк к удалению - столько строк и прочитано в Index Seek. Эскалаций блокировки в событиях профайлера не увидел. В событии timeout lock Блокировка - IX на объекте _InfoRg6219 Что я не понимаю или делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 13:30 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ну так посмотрите на каком ресурсе ждет. UPD: Ежов Дмитрий Сергеевич timeout lock Блокировка - IX на объекте _InfoRg6219 Запрещайте эскалацию, понижайте уровень гранулярности блокировок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 13:35 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий Сергеевич5000 5000 - "магическое" число эскалации блокировок Запретите эскалацию на уровне таблицы ALTER TABLE ... SET ( LOCK_ESCALATION = DISABLE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 13:36 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
msLex, а почему я не вижу эскалацию в профайлере? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 13:50 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Пардон, вижу, дико извиняюсь, стоял фильтр по другой БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 13:52 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Так. Управлять эскалацией блокировки я не могу, запрос делает наша прекрасная 1С и вмешаться в его работу я не могу. Я могу менять только параметр locks и флаги трассировки: https://docs.microsoft.com/ru-ru/previous-versions/sql/sql-server-2005/ms188396(v=sql.90) DBCC TRACEON (1221,-1); DBCC TRACEON (1224,-1); В MSDN говориться, что может не хватить памяти, но у нас на сервере SQL 1 Тб памяти, из которой SQL пользует только 600-700 Гб. Кто пользовался этой штукой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:01 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий Сергеевич, 96 байт на одну... может и не хватит :) Но вроде под блокировки не всё может выделить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:04 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
вру, то можно ограничить максимум sp_configure 'locks' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:06 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий Сергеевич, емнип игры с этой настройкой заканчиваются экспоненциальным ростом времени выполнения запроса. Граница там не от скуки сделана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:15 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовЕжов Дмитрий Сергеевич, емнип игры с этой настройкой заканчиваются экспоненциальным ростом времени выполнения запроса. Граница там не от скуки сделана. т.е. время которое будет вызывано ожиданием получения блокировки лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:23 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
а если просто включить флаг DBCC TRACEON (1224,-1); ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:25 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий Сергеевича если просто включить флаг DBCC TRACEON (1224,-1); ? Правильно это отключить эскалация на конкретном объекте, а не во всём борделе. Почему вам это запрещает 1С не ясно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:27 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
TaPaK, потому что сам запрос формирует сервер 1С, закрытое приложение. Но, собственно, вопрос снят, нашел рекомендации самой 1С по флагам трассировки https://its.1c.ru/db/metod8dev#content:5946:hdoc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:38 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий СергеевичTaPaK, потому что сам запрос формирует сервер 1С, закрытое приложение. Но, собственно, вопрос снят, нашел рекомендации самой 1С по флагам трассировки https://its.1c.ru/db/metod8dev#content:5946:hdoc я всё равно не могу понять, запрос - запросом, таблица - таблицей ALTER TABLE ... SET ( LOCK_ESCALATION = DISABLE) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:39 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
TaPaK, стоп. ALTER TABLE ... SET ( LOCK_ESCALATION = DISABLE) выключит эскалацию блокировок для таблицы раз и навсегда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:42 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий СергеевичTaPaK, стоп. ALTER TABLE ... SET ( LOCK_ESCALATION = DISABLE) выключит эскалацию блокировок для таблицы раз и навсегда? доставка мануала на дом: авторDISABLE Prevents lock escalation in most cases. Table-level locks aren't completely disallowed. For example, when you're scanning a table that has no clustered index under the serializable isolation level, Database Engine must take a table lock to protect data integrity. для вас это "выключит эскалацию блокировок для таблицы раз и навсегда" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:45 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
TaPaK, спасибо тебе, добрый человек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 14:46 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Ежов Дмитрий Сергеевич, рискуете нагрузить журнал так, что сервер чихнуть не сможет. Однако, практика - критерий истины. Расскажете, что получилось, если будет желание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:30 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовЕжов Дмитрий Сергеевич, рискуете нагрузить журнал так, что сервер чихнуть не сможет. Однако, практика - критерий истины. Расскажете, что получилось, если будет желание. а журнал то при чём? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:31 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
TaPaK, разве блокировки не пишутся в журнал? Надо освежить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:35 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
Владислав КолосовTaPaK, разве блокировки не пишутся в журнал? Надо освежить... я могу и ошибаться, но зачем в принципе это для лога транзакций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:38 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
TaPaKВладислав КолосовTaPaK, разве блокировки не пишутся в журнал? Надо освежить... я могу и ошибаться, но зачем в принципе это для лога транзакций Пишутся, вместе с операцией изменения Нужно это, для того, чтобы в стадии UNDO база была доступна для изменения. В стадии REDO накладываются блокировки а затем получается как бы обычный откат транзакции в рабочей базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 17:53 |
|
||
|
Параллеьное удаление из таблицы вызывает ожидание на блокировке.
|
|||
|---|---|---|---|
|
#18+
msLexTaPaKпропущено... я могу и ошибаться, но зачем в принципе это для лога транзакций Пишутся, вместе с операцией изменения Нужно это, для того, чтобы в стадии UNDO база была доступна для изменения. В стадии REDO накладываются блокировки а затем получается как бы обычный откат транзакции в рабочей базе. да, информация о блокировках есть. Но "больше данных" её не становится от количества этих самих блокировок. Просто для блокировки будет в строке аля HoBt 72057594044022784:ACQUIRE_LOCK_X OBJECT: 15:1586104691:0 для ключа HoBt 72057594044022784:ACQUIRE_LOCK_IX OBJECT: 15:1586104691:0 ;ACQUIRE_LOCK_IX PAGE: 15:1:832 ;ACQUIRE_LOCK_X KEY: 15:72057594044022784 (fb4bcb376b2f) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2019, 18:19 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39779807&tid=1688220]: |
0ms |
get settings: |
9ms |
get forum list: |
23ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 406ms |

| 0 / 0 |
