Добрый день,
имеется такая ситуация - представте себе MS SQL Server 200 в одну из баз которого постоянно и очень быстро записывается однородная информация. Кластерный индекс в табличке построен таким образом, что все записи за редким исключением попадают последовательно в одну страничку. Скорость - порядка 20-100 записей в секунду.
так вот в какой-то момент соединение, которое пишет в таблицу порождает BULK-OP-DB и BULK-OP-LOG. Никаких бекапов естественно в этот момент не происходит...
Лок этот имеет тенденцию висеть довольно долго - что и приводит в конце-концов к ошибке 1204...
Вопрос такой - из той скудной информации, что удалось нарыть в Инете про этот тип блокировок ( большая часть из Usenet, что не есть хорошо) я подозреваю что он накладывается также в моменты, когда сервер пытается откусить себе еще места - так вот правда ли это ? И еще - может ли он попасть в deadlock ? И еще - почему хозяин этой блокировки мой процесс, а не какой-то системный ?
Было бы здорово если бы кто-нибудь поделился знаниями про этот тип блокировки - а то судя по BOL, на нем стоит штамп "Для служебного пользования".
MS SQL Server: BULK-OP-DB locks
-
- Уже с Приветом
- Posts: 1099
- Joined: 30 Sep 1999 09:01
- Location: Bryansk,RUSSIA >> Dublin, Ireland
MS SQL Server: BULK-OP-DB locks
Удачи@С.Смирнов
-
- Уже с Приветом
- Posts: 4468
- Joined: 21 Sep 2000 09:01
- Location: Sammamish, WA
Re: MS SQL Server: BULK-OP-DB locks
YellowMan,
В BOL дейстительно есть неточность и BULK_OPERATION... блокировки накладываются во многих случаях, не только в случае backup. И изменение размера файла бд/журнала действительно один из таких случаев. Если для операции вставки строки потребовалось увеличить размер файла, то в SQL Server это будет делаться синхронно, следовательно не системным процессом, а Вашим. При условии, разумеется, что augrow is on. Откуда и один из вариантов лечения - augrow off + планированное изменение размера файлов администратором при необходимости. Тем более, что это стандартная практика для ситуаций, где требуется максимальная надёжность и производительность.
В BOL дейстительно есть неточность и BULK_OPERATION... блокировки накладываются во многих случаях, не только в случае backup. И изменение размера файла бд/журнала действительно один из таких случаев. Если для операции вставки строки потребовалось увеличить размер файла, то в SQL Server это будет делаться синхронно, следовательно не системным процессом, а Вашим. При условии, разумеется, что augrow is on. Откуда и один из вариантов лечения - augrow off + планированное изменение размера файлов администратором при необходимости. Тем более, что это стандартная практика для ситуаций, где требуется максимальная надёжность и производительность.
Cheers
-
- Уже с Приветом
- Posts: 1099
- Joined: 30 Sep 1999 09:01
- Location: Bryansk,RUSSIA >> Dublin, Ireland