07.06.2005, 09:50 | #1 |
Программатор
|
Блокировки
Уважаемые господа!!! Очень часто возникают блокировки!!! Мне то в 2 ночи позвонят домой то в час. В сетке есть тонкие и толстые клиенты. SPIDы у разных пользователей бывают одинаковые, SPIDы двух пользователей блокируют друг друга и вешают всех. А еще появляются SPIDы пяти значные!! (помоему, такого быть не должно). Временно помогает перезапуск SQL, но потом опять все по новой...В чем проблема подскажите плз!!!??? как исправить ситуацию???
Заранее благодарен - Sada.... |
|
07.06.2005, 10:07 | #2 |
Модератор
|
База Какая? SQL?
|
|
07.06.2005, 10:28 | #3 |
Программатор
|
Да.
|
|
07.06.2005, 10:33 | #4 |
Модератор
|
На какую таблицу?
Кстати, почитай эти ветки, там было указанно какое-то программное решение. http://www.axforum.info/forums/searc...der=descending Люди SP3 на SQL ставили и MDAC обновляли. А вообще - так с кандачка нельзя сказать, надо рабрираться. С Уважением, Георгий |
|
07.06.2005, 10:47 | #5 |
сибиряк
|
Sada, если не секрет, Вы территориально где находитесь?
Прошу прощения, за офф-топ
__________________
С уважением, Вячеслав. |
|
07.06.2005, 10:48 | #6 |
Программатор
|
Уважаемый Георгий. Давайте разбираться. Сделаю все, что посоветуете. Скажу всё, что спросите . В выше указанной ссылке проблема не раскрыта. Думаю участникам форума пригодится более подробное раскрытие данной темы.
Заранее благодарен - Sada... |
|
07.06.2005, 10:50 | #7 |
Программатор
|
Цитата:
Изначально опубликовано slava
Sada, если не секрет, Вы территориально где находитесь? Прошу прощения, за офф-топ |
|
07.06.2005, 10:57 | #8 |
Модератор
|
Цитата:
Изначально опубликовано Sada
Давайте разбираться. Сделаю все, что посоветуете. Скажу всё, что спросите Есть корифеи... возможно, откликнуться, ближе к вечеру. А пока скажите, на какую таблицу идут взаимные блокировки. Вы это можете узнать? С Уважением, Георгий. |
|
07.06.2005, 12:30 | #9 |
Программатор
|
К сожалению я тоже не являюсь профи в администрировании Аксапты , но так как я один занимаюсь Аксаптой на нашем предприятии(надеюсь что пока один ) приходится заниматься всем сразу. Узнать могу что при блокировке следующую информацию: какая база, LockType, Mode, Status, Owner, Index, Resourse. Наверно это стандартные SQL параметры.
Заранее благодарен - Sada... |
|
07.06.2005, 15:25 | #10 |
Участник
|
это через sp_lock?
еще есть Администрирование\Запросы\База данных\Блокировки пользователей базы данных |
|
07.06.2005, 16:43 | #11 |
Участник
|
Цитата:
Изначально опубликовано George Nordic
Есть корифеи... возможно, откликнуться, ближе к вечеру. Пока просто документ с базовой информацией. |
|
08.06.2005, 01:10 | #12 |
Модератор
|
Ночь на дворе. Похоже, корифеи спят уже. Встряну..
Цитата:
Изначально опубликовано korolf76
еще есть Администрирование\Запросы\База данных\Блокировки пользователей базы данных Весьма полезный материал есть тут |
|
08.06.2005, 07:06 | #13 |
Программатор
|
Цитата:
Изначально опубликовано korolf76
это через sp_lock? еще есть Администрирование\Запросы\База данных\Блокировки пользователей базы данных По поводу последней ссылки. Там скриптик. Его в QweryAnaliser втыкать или нет? Заранее благодарен - Sada... |
|
08.06.2005, 11:55 | #14 |
Программатор
|
А корефеев все нет........
|
|
08.06.2005, 13:01 | #15 |
----------------
|
Немного общих рассуждений
Простите за "танцы от печки"
Блокировка состоит из 2х частей: - блокирующий процесс - блокируемый процесс Проблемы могут быть в обеих частях с равной вероятностью Правильный способ лечения - найти то место в коде, где делается неоправдано большая выборка или выборка по неиндексированым полям Для поисков вам понадобятся: - помощь юзверей, которые подробно расскажут что и как запускалось - блокируемые объекты - таблицы. Как их получить - отдельный разговор - доступ к исходному коду и умение его читать Сделать это за Вас не сможет никто. Итак. 1. Вы знаете какие процессы блокируют(ся)? 2. Вы знаете какие объекты блокируются? 3. Какие последние изменения были в приложении? --------(добавлено)-------- Конечно, причины могут быть в железе, настройке сервера и т.п., но это уже не ко мне |
|
08.06.2005, 13:16 | #16 |
Moderator
|
От себя хочу добавить - я видел не разрюхиваемые MS SQL дидлоки при неаккуратной работе с номерными сериями. Ну скажем - если у тебя одно и тоже приложение пытается достучаться до numberSequenceTable или numberSequenceList и через специально выделенную сессию - и через общую сессию - последствия будут крайне плачевные.
Скажем: Клиент 1 Сессия 1 читает таблицу inventSum и блокирует ее до конца транзакции Читает таблицу numberSequenceTable и блокирует ее до конца транзакции Сессия пытается читать inventTrans и ждет освобождения ее от блокировки. Клиент 2 Сессия 1 Читает таблицу inventTrans и блокирует ее Сессия 2 Пытается читать таблицу NumberSeqeunceTable - ждет освобождения ее от блокировки. В итоге - клиент1 бесконечно ждет освобождения inventTransа захваченного клиентом2, а клиент2 ждет освобождения numberSequenceTable, захваченного клиентом1. Налицо - классический дидлок, однако MS SQL не в состоянии это дело понять и пресечь - поскольку не осознает что две сессии клиента 2 связаны друг с другом и ожидают освобождения блокировок вместе. |
|
08.06.2005, 13:27 | #17 |
Участник
|
Бывает еще человеческий фактор - есть в каждой организации люди не последние по должности, которые любят блокировать все и вся, так вот в прошлой конторе такая буча помнится поднялась и никак.. короче я пердложил на время отсутствия техсаппорта на работе запускать периодическую процедуру, которая убивает блокирующие процессы, которые долго висят - т.е. дублировать работу саппорта но на автомате.. Делать это конечно надо только после того как поймешь истоки проблемы и устранишь все узкие места.. этого никто не отменял.. А вообще фишк справедливая - запустит какой-нить гомодей в твое отсутствие обороточку по складу с начала времен по всем складам и все отдыхают, бывают такие люди..
|
|
08.06.2005, 13:59 | #18 |
NavAx
|
Sada, такие вещи обычно возникают, когда в аксовским таблицам обращаются не как к объектам AOT, а как к сторонним источникам данных, к примеру ODBC. Она не рассчитана на то, что таблицу может заблокировать еще кто-то.
__________________
Isn't it nice when things just work? |
|
08.06.2005, 15:01 | #19 |
Программатор
|
Re: Немного общих рассуждений
Вот это уже разговор посуществу!!
Цитата:
Изначально опубликовано Wamr
Для поисков вам понадобятся: - помощь юзверей, которые подробно расскажут что и как запускалось - блокируемые объекты - таблицы. Как их получить - отдельный разговор - доступ к исходному коду и умение его читать Итак. 1. Вы знаете какие процессы блокируют(ся)? 2. Вы знаете какие объекты блокируются? 3. Какие последние изменения были в приложении? 2. Какие объекты (таблицы) блокируюися - хотелось бы поподробнее как точно узнать 3. Изменений много, сторонними программерами.... 4. Доступ к исходному коду есть, умение читать чужой код пока хромает но наверстываю 5. Юзвери помогут (в крайнем случае возьму палку ) to macklakov - такое обращение исключено, писали профессионалы запросы и пр. to MironovI - мысль хорошая, я учту , но рано пока мне такое творить.... to fed - про ето пока сказать не могу.......... Заранее благодарен - Sada.......... |
|
08.06.2005, 16:17 | #20 |
----------------
|
1. sp_who2 - смотрите какой spid всех залочил
2. Администрирование\Запросы\База данных\Блокировки пользователей базы данных - смотрите какие объекты этим spid блокированы. Уделяете особое внимание к типу блокировки - Блокировка таблицы 3. там же смотрите какая таблица пользуется наибольшим спросом. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|