Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

блокировки

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных
Предыдущая тема :: Следующая тема  
Автор Сообщение
vasilka



Зарегистрирован: 28.03.2006
Сообщения: 1

СообщениеДобавлено: Вт Мар 28 2006 12:31    Заголовок сообщения: блокировки Ответить с цитатой

Здравствуйте, коллеги. У нас появилаь ошибка, может Вы сможете помочь.

причиной ошибки является некорректная блокировка данных на SQL-сервере при параллельном выполнении двух запросов (в сегодняшнем примере - один элементарно простой запрос на UPDATE и очень сложный запрос на выборку по таблице MNT_LOG). Первоначальная гипотеза, что к блокировке приводят два запроса на изменение данных (UPDATE или INSERT) не подтвердилась - как оказалось, достаточно одного запроса на изменение данных (хотя по теории так НИКОГДА не должно быть!).

запрос типа "UPDATE <TABLE> SET … WHERE ID IN (SELECT ID FROM … <TABLE> …)

Ошибка проявляется в том, что SQL-сервер блокируется на одном из запросов, при этом загруженность сервера, сети и клиента нулевая (сервер и клиент ничего не делают, пакетов по сети нет). Блокируются сначала два запроса, вошедшие в конфликт, а потом и все остальные запросы на той же самой БД.

К сожалению, приходится констатировать, что подвисание вызвано ошибкой MS SQL, а не параметрами сети, ПО или аппаратуры. Увеличение мощности сервера снижает вероятность возникновения ошибки, но не гарантирует от нее. Предположительно, ошибка вызвана тем, что MS SQL не может полностью корректно распознать сложный запрос, в который входит более десятка таблиц и вьюшек, перекрывающихся между собой, и как следствие, не может сразу правильно расставить блокировки на таблицы.

Несмотря на то, что механизм возникновения ошибки примерно ясен, остались неразрешенный вопрос:

Почему ошибка проявляется на запросе на выборку, хотя этого никак не должно быть?

Поскольку ситуация является очевидной ошибкой MS SQL, возможно, существует Patch, ее исправляющий, или другое решение. При правильной реакции со стороны сервера блокированный процесс должен убиваться. В идеале хотелось бы добиться именно такого результата.
_________________
hello
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
and3008



Зарегистрирован: 12.10.2001
Сообщения: 14893
Откуда: Н.Новгород

СообщениеДобавлено: Вс Апр 16 2006 22:12    Заголовок сообщения: Ответить с цитатой

MS SQL не поддерживает многоверсионность записей и выполняет блокировку целых страниц, а иногда и таблиц целиком.

Упростите запрос или пользуйтесь оптимизатором запросов.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Базы данных Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...