Por favor su ayuda con esto:
1.Tengo entendido que el optimizador decide si usa o no los indices que
posee una tabla en base a las estadisticas de los mismos.
2. Si yo en mi sp estoy pasando un parametro de input de fecha que luego lo
utilizo para realizar el select, porque el optimizador no considera el indice
i_at_fecha como una opción, pero si lo considera como opción con el artificio
que marco con azul.
3. porque la primera vez que se ejecuta se demora y se va time-out y las
siguientes veces sea con los mismos parametros u otros se demora
aproximadamente 7 segundos.
La tabla movimientos_his tiene varios indices noclustered entre ellos el
indice i_at_fecha
i_at_fecha nonclustered located on PRIMARY FECHA_HORA_DE_TRANSACCION,
NUMERO_DE_TERMINAL, NUMERO_DE_RECIBO, SECUENCIA_DE_TRANSACCION,
CODIGO_DE_TRANSACCION, TIPO_DE_MENSAJE, FI_ADQUIRENTE, TIPO_DE_MOVIMIENTO
create proc sp_consulta_trx_fallidas
(
@i_fecha varchar(10) = '01/01/2999',
@i_terminal varchar(6) = '00000',
@i_estado_procesamiento char(1) = 'S'
)
as
declare @error_var int,
@rowcount_var1 int,
@rowcount_var2 int,
@fecha datetime,
@terminal varchar(6),
@estado char(1)
select @fecha = @i_fecha, @terminal = @i_terminal, @estado =
@i_estado_procesamiento
(select a.numero_de_terminal,
b.nombre_de_monitoreo,
a.numero_de_recibo,
a.codigo_de_transaccion,
a.fecha_hora_de_transaccion,
a.numero_de_tarjeta,
a.cuenta_debito,
a.monto_1,
c.descripcion_transaccion
from ATMHIS_BOLIVARIANO..MOVIMIENTOS_HIS A,
atm_bolivariano..terminales b,
atm_bolivariano..catalogo_codigos_de_transaccion c
where A.FECHA_HORA_DE_TRANSACCION >= @fecha
and A.NUMERO_DE_TERMINAL = @terminal
and A.FI_ADQUIRENTE = '1007'
and A.STATUS_PROCESAMIENTO = @estado
and A.NUMERO_DE_TERMINAL = B.NUMERO_DE_TERMINAL
and C.CODIGO_INTERNO_TRANSACCION = A.CODIGO_DE_TRANSACCION
and C.CODIGO_SERVICIO = A.TIPO_DE_SERVICIO
and B.TIPO_DE_TERMINAL = 'NC')
UNION
(select a.numero_de_terminal,
b.nombre_de_monitoreo,
a.numero_de_recibo,
a.codigo_de_transaccion,
a.fecha_hora_de_transaccion,
a.numero_de_tarjeta,
a.cuenta_debito,
a.monto_1,
c.descripcion_transaccion
from ATM_BOLIVARIANO..MOVIMIENTOS A,
atm_bolivariano..terminales b,
atm_bolivariano..catalogo_codigos_de_transaccion c
where A.FECHA_HORA_DE_TRANSACCION >= @fecha
and A.NUMERO_DE_TERMINAL = @terminal
and A.FI_ADQUIRENTE = '1007'
and A.STATUS_PROCESAMIENTO = @estado
and A.NUMERO_DE_TERMINAL = B.NUMERO_DE_TERMINAL
and C.CODIGO_INTERNO_TRANSACCION = A.CODIGO_DE_TRANSACCION
and C.CODIGO_SERVICIO = A.TIPO_DE_SERVICIO
and B.TIPO_DE_TERMINAL = 'NC')
ORDER BY a.fecha_hora_de_transaccion
return 0
Leer las respuestas