Hola a todos:
 
Tengo el siguiente problema, quiero hacer una consulta a una tabla que tiene mucha informacion, pero en varias ocasiones me ha indicado el error "QUERY TIME OUT", la tabla donde tengo la informacion esta bien indexada, pero este reporte lo ejecuto desde una aplicacion cliente.
 
Ahora mi duda es alguien podria asesorame como crear un Store Procedure para poder ejecutar esta sentencia SQL, ya lo intente pero a decir verdad no consigo informacion del mismo. Les muestro lo que quiero y lo que llevo del Store Procedure.
 
Mi Tabla
 
 Usuario	FechaAcceso	             Operación	Tiempoacceso
USUARIO 1	30/01/2010	             REVISION	1 HR
USUARIO 2	30/01/2010	             REVISION	2 HR
USUARIO 3	30/01/2010	             CORTE	            3 MIN
USUARIO 1	30/01/2010	             CORTE	            3 MIN
USUARIO 2	10/02/2010	             ALTA	            2 MIN
USUARIO 3	10/02/2010	             ALTA	            2 MIN
USUARIO 1	09/02/2010	             ALTA	            2 MIN
USUARIO 2	09/02/2010	             BAJA	            2 MIN
USUARIO 3	09/02/2010	             BAJA	            2 MIN
USUARIO 4       09/02/2010                   ALTA               2 MIN
Vamos a suponer que requiero obtener el usuario, la fecha de acceso, la operacion y el tiempo de acceso
 
SELECT usuario, fechaacceso, operacion, tiempoacceso FROM usuarios
 
Si quisiera filtrar la informacion por varios campos, para que solo muestre la informacion del usuario1 o usuario 2, que hayan dado de alta o revision entre el 30 de enero de 2010 y 10 de febrero del 2010
 
SELECT usuario, fechaacceso, operacion, tiempoacceso FROM usuarios
WHERE usuario >= 'USUARIO 1' AND usuario <= 'USUARIO 2' AND (operacion = 'REVISION' OR operacion = 'ALTA') AND fechaacceso >= '20100101' AND fechaacceso <= '20100210'
 
 
lo que tengo del store procedure
ALTER PROCEDURE [dbo].[Usuariosxoperacionxfecha]
	--Las variable de entrada
    @UsuarioInicial nvarchar(13) = '',
    @UsuarioFinal nvarchar(13) = '',
    @OperacionInicial nvarchar(20) = '',
    @OperacionFinal nvarchar(20) = '',
    @dfechainicial datetime = '01-01-2000',
    @dfechaFinal datetime = '01-01-3000',
    @usuario nvarchar(13) = '' OUTPUT,       
    @operacion nvarchar(100) = '' OUTPUT, 
    @tiempoacceso nvarchar(8 = '' OUTPUT,  
    @fechaacceso datetime = '01-01-2000' OUTPUT,          
AS
 
BEGIN
 
    SELECT @usuario = usuario,@fechaacceso = fechaacceso, @operacion = operacion, @tiempoacceso = tiempoacceso FROM usuarios
WHERE usuario >= @UsuarioInicial AND usuario <= @UsuarioFinal AND (operacion = @OperacionInicial OR operacion = @OperacionFinal) AND fechaacceso >=    @dfechainicial AND fechaacceso <= @dfechaFinal
 
-- El resultado del Store Procedure
	SELECT @usuario,@fechaacceso, @operacion, @tiempoacceso 
END
 
Ojala alguien me pueda guiar, no souy muy experta en Store Procedures
 
Saludos... 
   
 




