SQL 2000: Ver bloqueos

12/11/2007 - 04:03 por Juan Carlos Mendoza | Informe spam
Buenos dias,

En el Query Analizer con el sp_who2 puedo ver las sesiones y bloqueos
que ocurren, aunque para esto tengo que dar F5 y luego con el mouse
correr un poco la ventana para ver la columna BlkBy.

Consulta:
Alguien tendrá o conocerá un query que me filtre y me muestre solo las
sesiones con bloqueos, y en el ideal la sesión que origina el bloqueo?

Gracias.

Juan Carlos Mendoza
Callao - Peru

Preguntas similare

Leer las respuestas

#1 jcac
12/11/2007 - 15:08 | Informe spam
Podrias hacer esto y ya de alli filtrarlo.

create table #tmp(tspid int, tstatus varchar(100), tlogin varchar(100),
thostname varchar(100), tblkbl varchar(20), tdbname varchar(100), tcommand
varchar(100), tcputime int, tdiskio int, tlastbatch varchar(50),
tprogramname varchar(100), tspid2 int)
insert into #tmp
exec sp_who2
select * from #tmp
drop table #tmp

espero te sirva

"Juan Carlos Mendoza" escribió en el mensaje
news:
Buenos dias,

En el Query Analizer con el sp_who2 puedo ver las sesiones y bloqueos
que ocurren, aunque para esto tengo que dar F5 y luego con el mouse
correr un poco la ventana para ver la columna BlkBy.

Consulta:
Alguien tendrá o conocerá un query que me filtre y me muestre solo las
sesiones con bloqueos, y en el ideal la sesión que origina el bloqueo?

Gracias.

Juan Carlos Mendoza
Callao - Peru
Respuesta Responder a este mensaje
#2 Miguel
12/11/2007 - 19:09 | Informe spam
También puedes hacer la consulta sobre la tabla sysprocesses directamente,
allí puedes encontrar más información que te puede servir...
También echale un vistazo al comando DBCC INPUTBUFFER, para saber que esta
ejecutando un proceso determinado.

Yo había creado este script, talvez te ayude..
-
USE master
select
sysp.spid as 'ID'
,sysp.blocked as 'BloqueadoPor'
,sysdb.name as 'BaseDatos'
,ltrim(rtrim(sysp.loginame)) as 'Usuario'
,ltrim(rtrim(sysp.status)) as 'Estado'
,ltrim(rtrim(sysp.hostname)) as 'HostName'
,ltrim(rtrim(sysp.cmd)) as 'Comando'
,sysp.waittime as 'TiempoEspera'
,sysp.cpu as 'TiempoCPU'
,sysp.physical_io as 'I/O'
,sysp.open_tran as 'TransAbiertas'
,sysp.program_name as 'Programa que ejecuta'
,sysp.net_library
Into #Temp
from
sysprocesses sysp,
sysdatabases sysdb

where
blocked <> 0 and
sysdb.dbid = sysp.dbid

Select * from #Temp

Declare @idproceso int
Declare idprocesos cursor for
Select BloqueadoPor from #Temp

open idprocesos
Fetch Next
From idprocesos
Into @idproceso
While @@FETCH_STATUS = 0
Begin
DBCC INPUTBUFFER (@idproceso )

Fetch Next
From idprocesos
Into @idproceso
End
Close idprocesos
Deallocate idprocesos


Drop Table #Temp

-


"jcac" wrote:

Podrias hacer esto y ya de alli filtrarlo.

create table #tmp(tspid int, tstatus varchar(100), tlogin varchar(100),
thostname varchar(100), tblkbl varchar(20), tdbname varchar(100), tcommand
varchar(100), tcputime int, tdiskio int, tlastbatch varchar(50),
tprogramname varchar(100), tspid2 int)
insert into #tmp
exec sp_who2
select * from #tmp
drop table #tmp

espero te sirva

"Juan Carlos Mendoza" escribió en el mensaje
news:
Buenos dias,

En el Query Analizer con el sp_who2 puedo ver las sesiones y bloqueos
que ocurren, aunque para esto tengo que dar F5 y luego con el mouse
correr un poco la ventana para ver la columna BlkBy.

Consulta:
Alguien tendrá o conocerá un query que me filtre y me muestre solo las
sesiones con bloqueos, y en el ideal la sesión que origina el bloqueo?

Gracias.

Juan Carlos Mendoza
Callao - Peru



Respuesta Responder a este mensaje
#3 Juan Carlos Mendoza
13/11/2007 - 03:48 | Informe spam
Muchas gracias a ambos por sus buenas orientaciones.

Saludos,

Juan Carlos Mendoza
Callao - Peru

On 12 nov, 13:09, Miguel wrote:
También puedes hacer la consulta sobre la tabla sysprocesses directamente,
allí puedes encontrar más información que te puede servir...
También echale un vistazo al comando DBCC INPUTBUFFER, para saber que esta
ejecutando un proceso determinado.

Yo había creado este script, talvez te ayude...
­-
USE master
select
sysp.spid as 'ID'
,sysp.blocked as 'BloqueadoPor'
,sysdb.name as 'BaseDatos'
,ltrim(rtrim(sysp.loginame)) as 'Usuario'
,ltrim(rtrim(sysp.status)) as 'Estado'
,ltrim(rtrim(sysp.hostname)) as 'HostName'
,ltrim(rtrim(sysp.cmd)) as 'Comando'
,sysp.waittime as 'TiempoEspera'
,sysp.cpu as 'TiempoCPU'
,sysp.physical_io as 'I/O'
,sysp.open_tran as 'TransAbiertas'
,sysp.program_name as 'Programa que ejecuta'
,sysp.net_library
Into #Temp
from
sysprocesses sysp,
sysdatabases sysdb

where
blocked <> 0 and
sysdb.dbid = sysp.dbid

Select * from #Temp

Declare @idproceso int
Declare idprocesos cursor for
Select BloqueadoPor from #Temp

open idprocesos
Fetch Next
From idprocesos
Into @idproceso
While @@FETCH_STATUS = 0
Begin
DBCC INPUTBUFFER (@idproceso )

Fetch Next
From idprocesos
Into @idproceso
End
Close idprocesos
Deallocate idprocesos

Drop Table #Temp

­-



"jcac" wrote:
> Podrias hacer esto y ya de alli filtrarlo.

> create table #tmp(tspid int, tstatus varchar(100), tlogin varchar(100),
> thostname varchar(100), tblkbl varchar(20), tdbname varchar(100), tcommand
> varchar(100), tcputime int, tdiskio int, tlastbatch varchar(50),
> tprogramname varchar(100), tspid2 int)
> insert into #tmp
> exec sp_who2
> select * from #tmp
> drop table #tmp

> espero te sirva

> "Juan Carlos Mendoza" escribió en el mensaje
>news:
> Buenos dias,

> En el Query Analizer con el sp_who2 puedo ver las sesiones y bloqueos
> que ocurren, aunque para esto tengo que dar F5 y luego con el mouse
> correr un poco la ventana para ver la columna BlkBy.

> Consulta:
> Alguien tendrá o conocerá un query que me filtre y me muestre solo las
> sesiones con bloqueos, y en el ideal la sesión que origina el bloqueo?

> Gracias.

> Juan Carlos Mendoza
> Callao - Peru- Ocultar texto de la cita -

- Mostrar texto de la cita -
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida