Welcome to Sign in | Help

Re: Process ID killed by ...

  •  06-27-2008, 10:18 AM

    Re: Process ID killed by ...

    Conexiunea cu @@SPID 89 a fost terminata de applicatia care ruleaza pe host-ul S-1 cu process-id-ul 2000. Din pacate termenul de 'Process ID' are doua semnificatzii in acest mesaj, prima data se refera la un @@SPID de conexiune SQL, a doua oara la un PID de Windows.

    Intrebarea ta este cum s-a facut KILL-ul? Sau tu ai facut KILL-ul si vrei acuma sa intzelegi de ce a trebuit facut?

    Momentul cel mai bun de descoperit de ce tranzactia se bloca era cind era blocat. In SQL 2000 folosesti sp_who, sp_who2 si sp_lock ca sa vezi ce procese sint blocate si evebntual de ce. In SQL 2005 ai mult mai multe informatii la dispozitie si te uitzi in sys.dm_exec_connections, sys.dm_exec_sessions si sys.dm_exec_requests pentru a vedea ce face fiecare 'process', in sys.dm_tran_database_transactions, sys.dm_tran_locks, sys.dm_tran_active_transactions si sys.dm_tran_session_transactions pentru a vedea ce tranzactii se executa, ce lock-uri sint acordate sau in asteptare. In fine mai ai sys.dm_os_schedulers, sys.dm_os_workers si sys.dm_os_tasks pentru cazurile rare cind ai de a face cu un caz de 'workers starvation'.

    Pentru a face o analiza retroactiva asupra ce sa intimplat, este mult prea greu. Cel mult ai putea sa analizezi log-urile cu DBCC LOG sau cu ::fn_dblog. Daca ai noroc poate gasesti ceva in ERRORLOG care sa-tzi dea un hint, dar putzin probabil.
    Recomandarea mea ar fi sa asteptzi sa se intimple din nou si cind se intimpla sa te conectezi la server, fara sa omori procesul care s-a blocat, si sa vezi de ce s-a blocat (sau de ce face progres foarte incet daca face progres).



    http://rusanu.com
View Complete Thread
Powered by Community Server (Commercial Edition), by Telligent Systems