Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

SQL contar tiempo de espera entre instrucciones

Estas en el tema de SQL contar tiempo de espera entre instrucciones en el foro de SQL Server en Foros del Web. Hola a todos! Estoy intentando obtener el tiempo entre 2 instrucciones SQL para saber que método es mas eficiente. la idea es obtener el tiempo ...
  #1 (permalink)  
Antiguo 26/05/2011, 09:04
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
SQL contar tiempo de espera entre instrucciones

Hola a todos!

Estoy intentando obtener el tiempo entre 2 instrucciones SQL para saber que método es mas eficiente.

la idea es obtener el tiempo al empezar, realizar la instrucción, obtener nuevamente el tiempo tras esa instruccion, realizar la segunda instruccion y volver a obtener el tiempo, algo así:

Código SQL:
Ver original
  1. BEGIN
  2.  
  3. SELECT 'Comienzo:' AS Momento,CURRENT_TIMESTAMP AS Tiempo
  4.  
  5. SELECT ... INTO #tabla1//primera instruccion
  6.  
  7. UNION SELECT 'Tiempo 1:' AS Momento,CURRENT_TIMESTAMP AS Tiempo
  8.  
  9. SELECT ... INTO #tabla2 //segunda instruccion
  10.  
  11. UNION SELECT 'Tiempo 2:' AS Momento,CURRENT_TIMESTAMP AS Tiempo
  12.  
  13. END

lamentablemente esto no funciona ya que me dá problemas al poner los select entre medio.

el resultado debería ser algo así:

Código C:
Ver original
  1. Momento    Tiempo
  2. Comienzo:  2011-05-26 11:02:46:0023
  3. Tiempo 1:  2011-05-26 11:02:46:0457
  4. Tiempo 2:  2011-05-26 11:02:46:1072

alguien sabe como hacerlo?
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #2 (permalink)  
Antiguo 26/05/2011, 09:51
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

Select getdate() -- inicio
....instrucciones
select getdate() -- fin
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 26/05/2011, 09:53
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: SQL contar tiempo de espera entre instrucciones

no funciona, intenté con:

Select getdate() -- inicio
SELECT 'hola'
select getdate() -- fin

peso sale solo una fecha (supongo que la primera)
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #4 (permalink)  
Antiguo 26/05/2011, 11:54
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

A mi, el resultado que me da es:

1 2011-05-26 12:53:15.460

1 hola

1 2011-05-26 12:53:15.460
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 27/05/2011, 07:37
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: SQL contar tiempo de espera entre instrucciones

gracias iislas, pero lo estás ejecutando en algún transact supongo, necesito lograr eso mismo pero en una sola tabla para leerla con un programa (en PHP) y sin la impresión del 'hola'.

pensé separandolos por ; pero me sale solo la ultima instrucción.

si alguien conoce alguna mejor forma de contar el tiempo de ejecución de una consulta también me sirve.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #6 (permalink)  
Antiguo 27/05/2011, 11:05
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

Entonces hazlo desde PHP, no se lo dejes a SQL Server.....
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 27/05/2011, 16:49
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: SQL contar tiempo de espera entre instrucciones

no hay alguna otra opción?

no quiero confiar el tiempo de respuesta del servidor SQL a PHP, necesito un valor muy exacto del motor de base de datos...
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #8 (permalink)  
Antiguo 30/05/2011, 11:09
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

De que la hay, la hay, pero debes definir variables, asignar valores, recuperar tus valores junto con query, etc, etc, etc.
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 30/05/2011, 12:00
Avatar de Mr_Bers  
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: SQL contar tiempo de espera entre instrucciones

Declare @inicio datetime



select @inicio=getdate()
select * from tabla
select
'duracion:
Horas:'
+convert(varchar(3),datediff(hour,@inicio,getdate( )))
+'minutos:'
+convert(varchar(3),datediff(mi,@inicio,getdate()) )
+'segundos:'
+convert(varchar(3),datediff(second,@inicio,getdat e()))
  #10 (permalink)  
Antiguo 30/05/2011, 12:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

Mr Bers

Considera que la instruccion SELECT se esta ejecutando desde un aplicativo PHP.

Saludos
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 30/05/2011, 15:21
Avatar de Mr_Bers  
Fecha de Ingreso: mayo-2011
Mensajes: 2
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: SQL contar tiempo de espera entre instrucciones

iislas,PHP tiene sus propias funciones para manejo de tiempos.pero igual lo puedes poner en un SP y que ejecute la instrucción y retorne el tiempo que tarda en hacerlo.
  #12 (permalink)  
Antiguo 30/05/2011, 16:36
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 17 años, 5 meses
Puntos: 180
Respuesta: SQL contar tiempo de espera entre instrucciones

Si, pero con la instruccion que tu le sugieres, deberia tomar en cuanta que son DOS RECORDSET's los que deberia tomar en su capa cliente, solo eso....
__________________
MCTS Isaias Islas
  #13 (permalink)  
Antiguo 31/05/2011, 10:34
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: SQL contar tiempo de espera entre instrucciones

funciona perfecto, tal como dice islas son 2 recordset, pero lo soluciono con una tabla temporal, me sirvió bastante para comparar el tiempo entre las 2 sentencias, lo dejé así:

Código SQL:
Ver original
  1. DECLARE @inicio datetime
  2. SELECT @inicio=getdate()
  3.  
  4. SELECT * INTO #tablita FROM mi_tabla
  5.  
  6. SELECT 'Milisegundos: '+CONVERT(VARCHAR(4),datediff(ms,@inicio,getdate())) AS Duracion

17548 milisegundos! (17 segundos), funciona perfecto!, gracias!!
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: espera, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.