Problema Sp

14/06/2005 - 23:28 por Pao | Informe spam
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

Preguntas similare

Leer las respuestas

#1 Maxi
15/06/2005 - 01:49 | Informe spam
Hola, vamos por partes dijo Jack ;-)

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.



Correcto

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.



Lo estas pasando en formato fecha o en varchar? si lo pasas en fecha no
deberias tener problemas, pero si lo pasas como varchar puede estar haciendo
algun convert :(
Ademas, tienes indices adecuados?

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.




Es una caracteristica normal de los Sp's luego de quedar en cache vuelan :-)

pd: Porque no nos pasas el plan de ejeucion de esa cosnulta, asi podemos ver
que esta sucediendo ;)




Email: Maxi.da(arroba)gmail.com
Buenos Aires - Argentina

"Pao" escribió en el mensaje
news:
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

Respuesta Responder a este mensaje
#2 Pao
15/06/2005 - 18:29 | Informe spam
Ok, genero y envio los planes de ejecución pero antes que nada.
El ambiente es windows 2000 server con sp4, sqlserver 2000 con sp3, admeás
exista una replicación transaccional de 44 articulos en una sola publicación.

Por otro lado entiendo que al manejar la cache de procedimientos el sp en
las siguientes ocasiones vaya más rápido, pero porque la primera vez se va
por timeout?? asumo que debe demorarse pero no tanto, no lo veo normal...En
todo caso con los planes podemos ver algo,,ya se los cargo

"Maxi" wrote:

Hola, vamos por partes dijo Jack ;-)

> 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.
>
Correcto

> 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.

Lo estas pasando en formato fecha o en varchar? si lo pasas en fecha no
deberias tener problemas, pero si lo pasas como varchar puede estar haciendo
algun convert :(
Ademas, tienes indices adecuados?

> 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.
>

Es una caracteristica normal de los Sp's luego de quedar en cache vuelan :-)

pd: Porque no nos pasas el plan de ejeucion de esa cosnulta, asi podemos ver
que esta sucediendo ;)




Email: Maxi.da(arroba)gmail.com
Buenos Aires - Argentina

"Pao" escribió en el mensaje
news:
> 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
>



Respuesta Responder a este mensaje
#3 Pao
16/06/2005 - 00:02 | Informe spam
Inicialmente utilicé el parámetro de input @i_fecha en formato datetime y lo
asignada al select al campo FECHA_HORA_DE_TRANSACCION también en formato
datetime y de todas manera no consideraba el índice i_at_fecha que contiene
como primer campo FECHA_HORA_DE_TRANSACCION.

Adjunto lo indicado: (Query Plan)
StmtText
exec sp_consulta_trx_fallidas '02/10/2005', '00001', 'S'

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'

select @error_var = @@error, @rowcount_var1 = @@rowcount

if @error_var <> 0
begin
return 1
end

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.TIP
(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

(3 row(s) affected)

StmtText





|--Sort(DISTINCT ORDER BY:([Union1010] ASC, [Union1006] ASC,
[Union1007] ASC, [Union1008] ASC, [Union1009] ASC, [Union1011] ASC,
[Union1012] ASC, [Union1013] ASC, [Union1014] ASC))
|--Concatenation
|--Nested Loops(Inner Join, OUTER
REFERENCES:([A].[TIPO_DE_SERVICIO], [A].[CODIGO_DE_TRANSACCION]))
| |--Nested Loops(Inner Join)
| | |--Clustered Index
Seek(OBJECT:([ATM_BOLIVARIANO].[dbo].[TERMINALES].[PK_TERMINALES] AS [b]),
SEEK:([b].[TIPO_DE_TERMINAL]='NC' AND [b].[NUMERO_DE_TERMINAL]=[@terminal])
ORDERED FORWARD)
| |
|--Filter(WHERE:([A].[STATUS_PROCESAMIENTO]=[@estado]))
| | |--Bookmark Lookup(BOOKMARK:([Bmk1000]),
OBJECT:([ATMHIS_BOLIVARIANO].[dbo].[Movimientos_His] AS [A]))
| | |--Index
Seek(OBJECT:([ATMHIS_BOLIVARIANO].[dbo].[Movimientos_His].[i_at_fecha] AS
[A]), SEEK:(([A].[FECHA_HORA_DE_TRANSACCION], [A].[NUMERO_DE_TERMINAL]) >=
([@fecha], [@terminal])), WHERE:([A].[NUMERO_DE_TERMINAL]=[@terminal] AND
[A].[FI_ADQUIRENTE]='1007') ORDERED FORWARD)
| |--Clustered Index
Seek(OBJECT:([ATM_BOLIVARIANO].[dbo].[CATALOGO_CODIGOS_DE_TRANSACCION].[pk_CATALOGO_CODIGOS_DE_TRANSACCION]
AS [c]), SEEK:([c].[CODIGO_INTERNO_TRANSACCION]=[A].[CODIGO_DE_TRANSACCION]
AND [c].[CODIGO_SERVICIO]=[A].[TIPO_DE_SERVICIO]) ORDERED FORWARD)
|--Nested Loops(Inner Join)
|--Clustered Index
Seek(OBJECT:([ATM_BOLIVARIANO].[dbo].[TERMINALES].[PK_TERMINALES] AS [b]),
SEEK:([b].[TIPO_DE_TERMINAL]='NC' AND [b].[NUMERO_DE_TERMINAL]=[@terminal])
ORDERED FORWARD)
|--Nested Loops(Inner Join, OUTER
REFERENCES:([A].[TIPO_DE_SERVICIO], [A].[CODIGO_DE_TRANSACCION]))
|--Table
Scan(OBJECT:([ATM_BOLIVARIANO].[dbo].[MOVIMIENTOS] AS [A]),
WHERE:((([A].[FECHA_HORA_DE_TRANSACCION]>=[@fecha] AND
[A].[FI_ADQUIRENTE]='1007') AND [A].[NUMERO_DE_TERMINAL]=[@terminal]) AND
[A].[STATUS_PROCESAMIENTO]=[@estado]))
|--Clustered Index
Seek(OBJECT:([ATM_BOLIVARIANO].[dbo].[CATALOGO_CODIGOS_DE_TRANSACCION].[pk_CATALOGO_CODIGOS_DE_TRANSACCION]
AS [c]), SEEK:([c].[CODIGO_INTERNO_TRANSACCION]=[A].[CODIGO_DE_TRANSACCION]
AND [c].[CODIGO_SERVICIO]=[A].[TIPO_DE_SERVICIO]) ORDERED FORWARD)

(14 row(s) affected)

StmtText

return 0

(1 row(s) affected)



"Maxi" wrote:

Hola, vamos por partes dijo Jack ;-)

> 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.
>
Correcto

> 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.

Lo estas pasando en formato fecha o en varchar? si lo pasas en fecha no
deberias tener problemas, pero si lo pasas como varchar puede estar haciendo
algun convert :(
Ademas, tienes indices adecuados?

> 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.
>

Es una caracteristica normal de los Sp's luego de quedar en cache vuelan :-)

pd: Porque no nos pasas el plan de ejeucion de esa cosnulta, asi podemos ver
que esta sucediendo ;)




Email: Maxi.da(arroba)gmail.com
Buenos Aires - Argentina

"Pao" escribió en el mensaje
news:
> 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
>



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida