sql 2000 дидлоки с утра достали(( как обнаружить того кто блочит #545481


#0 by Skom
как увидить запросом SPID того кто блочит всех остальных ну когда в sql сервере в current activity смотришь и там в locks видно кто заблочен и кто блочит надо получить запросом. потому что в момент блокировок нет доступа к этой информации. постоянно говорит что невозможно получить эту инфу из EM кто может помочь???
#1 by Skom
sp_lock не показывает того кто блокирует там я вижу только заблокированных. ну или я как то не так смотрю. в общем научите плиз
#2 by упс
В профайлере отлавливайте deadlock graph - увидите кто и кого
#3 by Skom
ок. спс. а нельзя ли как нить из базы данных мастер выудить эту информацию???
#4 by Андрюха
У нас долгое время дедлочил сбрендивший маршрутизатор, прямо замучились, пока его вычислили.
#5 by Skom
как вычислили???
#6 by упс
Я думаю, что вряд ли вы в мастере это увидите - максимум, зная таблицу, сможете увидеть кто на нее наложил блокировки и кто ждет ее освобождения. Вообще, database enngine не знает ни про какие дедлоки, он просто накладывает/снимает блокировки, а отдельное фоновое задание их анализирует и ищет дедлоки, после чего убивает одну из сессий. А чем вас профайлер не устраивает? Вообще, вот годная статья по дедлокам:
#7 by Андрюха
Уже всё перепробовали, SQL поставили 2005, память сервера увеличили, стали делать ежедневную оптимизацию, млин... Потом чё-то решили железо проверить, раутер поменяли - и всё взлетело.
#8 by VladZ
select str(spid,4) as spid,left(loginame,10) as login, left(hostname,15) as host, str(blocked,4) as blk, str(max(waittime),15)  as wait , str(sum(cpu),15) as CPU, str(sum(memusage),15) as mem , hostprocess  from master..sysprocesses where hostname<>'' group by str(spid,4),left(loginame,10), left(hostname,15), str(blocked,4), hostprocess, hostname ORDER BY str(blocked,4) desc, left(hostname,15)
#9 by VladZ
В ХостМониторе используем такой запрос: select convert(varchar, t1.blocked)+' '+rtrim(t2.hostname)+' '+convert(varchar, t2.hostprocess) +db_name(t2.dbid)  from master..sysprocesses  t1 inner join master..sysprocesses  t2 on (t2.spid = t1.blocked) and (t2.blocked = 0) where t1.hostname<>'' and t1.blocked<>0   and t1.waittime>1000   union all select 'OK' as bloked Принцип тот же, вид другой.
#10 by Кириллка
может подойдет: SELECT    CAST(sli.req_spid as smallint) as spid,    sli.rsc_dbid as dbid,    sli.rsc_objid as ObjId,    so.Name as ObjectName,    sli.rsc_indid as IndId,    ISNULL(CAST(BlkSli.req_spid as varchar), '') as BlkBy FROM master.dbo.syslockinfo as sli (NOLOCK) INNER JOIN master.dbo.spt_values as v (NOLOCK) ON INNER JOIN master.dbo.spt_values as x (NOLOCK) ON INNER JOIN master.dbo.spt_values as u (NOLOCK) ON INNER JOIN master.dbo.sysdatabases as sd (NOLOCK) ON sli.rsc_dbid = sd.dbid INNER JOIN dbo.sysobjects as so (NOLOCK) ON sli.rsc_objid = so.id LEFT JOIN master.dbo.syslockinfo as BlkSli (NOLOCK) ON
#11 by Skom
буду смотреть. сейчас делаю sql таблицу в самой базе что бы видеть какие документы открыты в данный момент в целом во всей базе
#12 by Skom
кстати ка выяснилось ДИДЛОКИ постоянно в течении дня совершал один и тот же компьютер. работа идет в терминальном режиме. на сервере терминалов. 1С запускает из того же каталога что и остальные. может было у кого что подобное. я понимаю на железяки косить если бы локально запускалась 1С но тут то с СЕРВЕРА терминалов....
#13 by Кириллка
на каких таблицах хоть? небось напрограммировал так?
#14 by Skom
пока не ясно почему у одного из 4-х пользователей (выписка документов физлицам в торговом зале) возникают такие дидлоки
#15 by Кириллка
тебе скрипт из не помог чтоли?
#16 by Skom
я делаю монитор действий в 1С счас будут открытые документы видны и будет видно действие с документом. проводится он или просто открыт. и потом монитор на ТП зафигачю. проще будет решать вопросы зависаний и косяков
#17 by Кириллка
А вообще для твоего случая mssql2000:
#18 by Skom
так в 6 уже было))
#19 by Кириллка
так повторение - мать учения.
#20 by val
Я пользуюсь этим:
#21 by Skom
спс. буду пользоваться мониторить
#22 by VladZ
У нас в кабинете на стене висят два монитора, на которые с помощью HostMonitor-а выводятся всяческие показатели: контроль Инета, наличие пинга до филиальских серваков, блокировки SQL и т.д. Там для анализа блокировок используется запрос, озвученный в . Причем еще и письма приходят на электронку.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С