Optimizar Indices

06/10/2005 - 19:29 por Pao | Informe spam
Tengo una duda:
Como puedo saber cual de mis indices es el más usando, así tambien mis
indices estadisticos.
_WA

Sucede que tengo una aplicación que constantemente hace este tipo de query's:
use sms_cliente
select count(*) from sms_res_enviadas
where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P' and
re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
go
use sms_cliente
select count(*) from sms_res_enviadas
where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0


Adjunto planes de ejecución: se supone que usa los indices pero yo no tengo
definido ningun indice que empiece con re_hora_ing o es por el de
re_codigo???

Indices:
sp_helpindex sms_res_enviadas
re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
re_transmitir_idx nonclustered located on PRIMARY re_codigo, re_operadora,
re_hora_ing, re_estado
sms_resenviadas_key clustered, unique located on PRIMARY re_codigo

Indices estadisticos:
_WA_Sys_re_hora_ing_79A81403
_WA_Sys_re_operadora_79A81403
_WA_Sys_re_estado_79A81403
_WA_Sys_re_fecha_env_79A81403
_WA_Sys_re_telefono_79A81403
_WA_Sys_re_hora_env_79A81403
_WA_Sys_re_mensaje_79A81403

Row Tabla: 520.000

Favor su ayuda que no entiendo este comportamiento
StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
set showplan_all on 14 1 0 1 SETON 0

(1 row(s) affected)

StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
set showplan_text on 15 1 0 1 SETON 0

(1 row(s) affected)

StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
SET STATISTICS IO on 16 1 0 1 SETSTATON 0

(1 row(s) affected)

StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
SET STATISTICS TIME on 17 1 0 1 SETSTATON 0

(1 row(s) affected)

StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
use sms_cliente 18 1 0 1 DBOPEN 0

select count(*) from sms_res_enviadas
where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P' and
re_estado = 'PEN' and re_codigo - re_codigo/1*1 =
0 19 2 0 2 1.0 2.998153 SELECT 0
|--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3 2 Compute
Scalar Compute
Scalar DEFINE:([Expr1002]=Convert([Expr1005])) [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153 [Expr1002] PLAN_ROW 0 1.0
|--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3 Stream
Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11 2.998153 [Expr1005] PLAN_ROW 0 1.0
|--Index
Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
[sms_res_enviadas].[re_operadora]='P') AND
[sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index Scan Index
Scan OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
[sms_res_enviadas].[re_operadora]='P') AND
[sms_res_enviadas].[re_estado]='PEN') AND
[sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
[sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
[sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41 1.9164028 [sms_res_enviadas].[re_codigo],
[sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
[sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0

(5 row(s) affected)

StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList Warnings Type Parallel EstimateExecutions
use sms_cliente 20 1 0 1 DBOPEN 0

select count(*) from sms_res_enviadas
where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
re_estado = 'PEN' and re_codigo - re_codigo/1*1 =
0 21 2 0 2 1.0 2.998153 SELECT 0
|--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3 2 Compute
Scalar Compute
Scalar DEFINE:([Expr1002]=Convert([Expr1005])) [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153 [Expr1002] PLAN_ROW 0 1.0
|--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3 Stream
Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11 2.998153 [Expr1005] PLAN_ROW 0 1.0
|--Index
Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
[sms_res_enviadas].[re_operadora]='B') AND
[sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index Scan Index
Scan OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
[sms_res_enviadas].[re_operadora]='B') AND
[sms_res_enviadas].[re_estado]='PEN') AND
[sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
[sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
[sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41 1.9164028 [sms_res_enviadas].[re_codigo],
[sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
[sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0

(5 row(s) affected)

Preguntas similare

Leer las respuestas

#6 Maxi
07/10/2005 - 16:19 | Informe spam
jaja, tenes razon, me exprese mal yo ;-)


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
Maxi,

Hola, pero eso no es hacer un Seek a un indice ;-)



Yo solamente conteste tu pregunta.

>> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> se
>> hace?



SQL Server esta usando el indice, de que esta haciendo un "index scan" y
no
"index seek", eso es otra cosa.


AMB

"Maxi" wrote:

Hola, pero eso no es hacer un Seek a un indice ;-)


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
> Maxi,
>
>> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> se
>> hace?
>
> En la primera sentencia:
>
>> > |--Index
>> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>
> En la segunda:
>
>> > |--Index
>> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>
> SQL Server esta scaneando el indice
> [sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]
>
>
> AMB
>
> "Maxi" wrote:
>
>> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> se
>> hace?
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Pao" escribió en el mensaje
>> news:
>> > Tengo una duda:
>> > Como puedo saber cual de mis indices es el más usando, así tambien
>> > mis
>> > indices estadisticos.
>> > _WA
>> >
>> > Sucede que tengo una aplicación que constantemente hace este tipo de
>> > query's:
>> > use sms_cliente
>> > select count(*) from sms_res_enviadas
>> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> > and
>> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> > go
>> > use sms_cliente
>> > select count(*) from sms_res_enviadas
>> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
>> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> >
>> >
>> > Adjunto planes de ejecución: se supone que usa los indices pero yo
>> > no
>> > tengo
>> > definido ningun indice que empiece con re_hora_ing o es por el de
>> > re_codigo???
>> >
>> > Indices:
>> > sp_helpindex sms_res_enviadas
>> > re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
>> > re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
>> > re_transmitir_idx nonclustered located on PRIMARY re_codigo,
>> > re_operadora,
>> > re_hora_ing, re_estado
>> > sms_resenviadas_key clustered, unique located on PRIMARY re_codigo
>> >
>> > Indices estadisticos:
>> > _WA_Sys_re_hora_ing_79A81403
>> > _WA_Sys_re_operadora_79A81403
>> > _WA_Sys_re_estado_79A81403
>> > _WA_Sys_re_fecha_env_79A81403
>> > _WA_Sys_re_telefono_79A81403
>> > _WA_Sys_re_hora_env_79A81403
>> > _WA_Sys_re_mensaje_79A81403
>> >
>> > Row Tabla: 520.000
>> >
>> > Favor su ayuda que no entiendo este comportamiento:
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > set showplan_all on 14 1 0 1 SETON 0
>> >
>> > (1 row(s) affected)
>> >
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > set showplan_text on 15 1 0 1 SETON 0
>> >
>> > (1 row(s) affected)
>> >
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > SET STATISTICS IO on 16 1 0 1 SETSTATON 0
>> >
>> > (1 row(s) affected)
>> >
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > SET STATISTICS TIME on 17 1 0 1 SETSTATON 0
>> >
>> > (1 row(s) affected)
>> >
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > use sms_cliente 18 1 0 1 DBOPEN 0
>> >
>> > select count(*) from sms_res_enviadas
>> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> > and
>> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 >> >> > 0 19 2 0 2 1.0 2.998153 SELECT 0
>> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3 2
>> > Compute
>> > Scalar Compute
>> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> > [Expr1002]
>> > PLAN_ROW 0 1.0
>> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3
>> > Stream
>> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> > 2.998153
>> > [Expr1005] PLAN_ROW 0 1.0
>> > |--Index
>> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> > [sms_res_enviadas].[re_operadora]='P') AND
>> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index Scan
>> > Index
>> > Scan
>> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> > [sms_res_enviadas].[re_operadora]='P') AND
>> > [sms_res_enviadas].[re_estado]='PEN') AND
>> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> > 1.9164028
>> > [sms_res_enviadas].[re_codigo],
>> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >
>> > (5 row(s) affected)
>> >
>> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> > DefinedValues
>> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> > OutputList
>> > Warnings Type Parallel EstimateExecutions
>> > use sms_cliente 20 1 0 1 DBOPEN 0
>> >
>> > select count(*) from sms_res_enviadas
>> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
>> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 >> >> > 0 21 2 0 2 1.0 2.998153 SELECT 0
>> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3 2
>> > Compute
>> > Scalar Compute
>> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> > [Expr1002]
>> > PLAN_ROW 0 1.0
>> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3
>> > Stream
>> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> > 2.998153
>> > [Expr1005] PLAN_ROW 0 1.0
>> > |--Index
>> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> > [sms_res_enviadas].[re_operadora]='B') AND
>> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index Scan
>> > Index
>> > Scan
>> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> > [sms_res_enviadas].[re_operadora]='B') AND
>> > [sms_res_enviadas].[re_estado]='PEN') AND
>> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> > 1.9164028
>> > [sms_res_enviadas].[re_codigo],
>> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >
>> > (5 row(s) affected)
>> >
>> >
>>
>>
>>



Respuesta Responder a este mensaje
#7 Alejandro Mesa
07/10/2005 - 16:55 | Informe spam
Pao,

Igual no responden mi pregunta.



Tu pregunta fue:

> > > Como puedo saber cual de mis indices es el más usando, así tambien mis
> > > indices estadisticos.
> > > _WA



Esos indices, son creados por SQL Server para su uso interno. Yo no tengo la
menor idea de como se conforman y como son usados.

En cuanto a tu inquietud acerca de la diferencia entre los planes de
ejecucion y la eliminacion del cuello de botella al agregar el indice
"re_estado_idx" a la tabla "sms_res_enviadas", te dire que es muy dificil dar
una opinion cuando no se conoce la estructura de una tabla, incluyendo
restricciones e indices.

En tu primer posting, en el plan de ejecucion de la sentencia:

select count(*)
from sms_res_enviadas
where
re_hora_ing <= '10/06/2005 11:23:42'
and re_operadora = 'P'
and re_estado = 'PEN'
and re_codigo - re_codigo/1*1 = 0

podemos ver claramente que sql server escojio hacer un scan del indice:

|--Index
Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),

sin embargo, despues de agregar el indice:

create index re_estado_idx on sms_res_enviadas (re_estado)



sql server escoje hacer un "index seek" (operacion mas rapida) sobre este
indice.

Vamos a analyzar la sentencia y los indices con que cuentas. Esta
informacion no es suficiente, pues no tenemos las estadisticas de
distribucion de los valores de las claves que componen estos indices y las
cuales juegan un papel importante a la hora de que sql server escoja el plan
de ejecucion.

Primero veamos las columnas utilizadas en la clausula "where":

re_hora_ing <= '10/06/2005 11:23:42'
and re_operadora = 'P'
and re_estado = 'PEN'
and re_codigo - re_codigo/1*1 = 0

y ahora chequeamos los indices que tenias cuando hicistes el primer posting:

sp_helpindex sms_res_enviadas
re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
re_transmitir_idx nonclustered located on PRIMARY re_codigo, re_operadora,
re_hora_ing, re_estado
sms_resenviadas_key clustered, unique located on PRIMARY re_codigo

por lo que podemos ver que:

- no existe un indice por "re_hora_ing"
- no existe un indice por "re_operadora "
- no existe un indice por "re_estado"

Tienes un indice multi-columnas "re_transmitir_idx", donde las columnas que
participan en la clave son:

re_codigo, re_operadora, re_hora_ing, re_estado

Interesante, este indice contiene todas las columnas que participan en el
filtro de la clausula "where", al parecer podria catalogarse como un
"covering index", osea un indice que cubre todas las columnas referenciadas
en el query. Por que sql server escoje hacer un "scan" en este indice y no un
"seek"?.

Te comento que sql server solo guarda el histograma de la columna que esta
mas a la izquierda en un indice compuesto y por lo tanto esta columna debe
formar parte en los filtros donde se desee que sql server haga un uso
efectivo de este indice, por ejemplo:

...
where
re_codigo = 3
and re_hora_ing <= '10/06/2005 11:23:42'
and re_operadora = 'P'
and re_estado = 'PEN'

ó

...
where
re_codigo = 3
and re_operadora = 'P'
and re_estado = 'PEN'

lo que no puede hacerse es filtrar por las otras columnas que conforman este
indice y no incluir la primera, que en este caso es "re_codigo".

Ahora, me preguntaras que porque sql server no hace un uso efectivo de este
indice si en el filtro se esta usando esta columna:

and re_codigo - re_codigo/1*1 = 0

entonces te dire que sql server debe considerar la expresion usada como un
argumento de busqueda para que este haga un uso efectivo del indice o un
analizis mas profundo de si se puede o no hacer un "seek" en este indice
asociado a la expresion. Para que esto ocurra (que la expresion se reconozca
como argumento de busqueda), la expresion debe seguir el patron:

<nombre_columna> <operador> <constante>

osea, no debemos manipular la columna en la expresion, y si te fijas en la
expresion que usamos, te daras cuenta que la estamos manipulando al restarla
y dividirla por 1, etc. Que tratas de hacer en esta formula, puedes decirnos?

(re_codigo - re_codigo / 1 * 1) = 0


AMB

"Pao" wrote:

Igual no responden mi pregunta. Esos resultados del showplan son buenos,
sucede que tal y como está me genera cuellos de botella al procesador y esta
constantemente alto, al igual que el contador del system process queue lenght
del ya revisé y únicamente es este proceso.
Ahora se le adicionó un indice de este tipo:
use sms_cliente
go
/* Creacion de Indice re_estado_idx sobre la tabla sms_res_enviadas */
/* Campo: re_estado */
create index re_estado_idx on sms_res_enviadas (re_estado)
go
y todo mejoró notablemente ya no tengo cuellos de botella ni el contador
esta alto. este es el showplan:
Pero sigo sin entender como el optimizador del sqlserver trabaja porque con
este indice mejoró y superó el problema.

StmtText

use sms_cliente

select count(*) from sms_res_enviadas
where re_hora_ing <= '10/07/2005 07:24:06' and re_operadora = 'P' and
re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0

(2 row(s) affected)

StmtText
|--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005])))
|--Stream Aggregate(DEFINE:([Expr1005]=Count(*)))
|--Filter(WHERE:([sms_res_enviadas].[re_operadora]='P' AND
[sms_res_enviadas].[re_hora_ing]<='Oct 7 2005 7:24AM'))
|--Bookmark Lookup(BOOKMARK:([Bmk1000]),
OBJECT:([sms_cliente].[dbo].[sms_res_enviadas]))
|--Index
Seek(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_estado_idx]),
SEEK:([sms_res_enviadas].[re_estado]='PEN'),
WHERE:([sms_res_enviadas].[re_codigo]-[sms_res_enviadas].[re_codigo]/1*1=0)
ORDERED FORWARD)

(5 row(s) affected)




"Alejandro Mesa" wrote:

> Maxi,
>
> > Hola Pao, no se esta usando ningun indice aca, porque afirmas que si se
> > hace?
>
> En la primera sentencia:
>
> > > |--Index
> > > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>
> En la segunda:
>
> > > |--Index
> > > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>
> SQL Server esta scaneando el indice
> [sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]
>
>
> AMB
>
> "Maxi" wrote:
>
> > Hola Pao, no se esta usando ningun indice aca, porque afirmas que si se
> > hace?
> >
> >
> > Salu2
> > Maxi
> >
> >
> > "Pao" escribió en el mensaje
> > news:
> > > Tengo una duda:
> > > Como puedo saber cual de mis indices es el más usando, así tambien mis
> > > indices estadisticos.
> > > _WA
> > >
> > > Sucede que tengo una aplicación que constantemente hace este tipo de
> > > query's:
> > > use sms_cliente
> > > select count(*) from sms_res_enviadas
> > > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P' and
> > > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
> > > go
> > > use sms_cliente
> > > select count(*) from sms_res_enviadas
> > > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
> > > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
> > >
> > >
> > > Adjunto planes de ejecución: se supone que usa los indices pero yo no
> > > tengo
> > > definido ningun indice que empiece con re_hora_ing o es por el de
> > > re_codigo???
> > >
> > > Indices:
> > > sp_helpindex sms_res_enviadas
> > > re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
> > > re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
> > > re_transmitir_idx nonclustered located on PRIMARY re_codigo, re_operadora,
> > > re_hora_ing, re_estado
> > > sms_resenviadas_key clustered, unique located on PRIMARY re_codigo
> > >
> > > Indices estadisticos:
> > > _WA_Sys_re_hora_ing_79A81403
> > > _WA_Sys_re_operadora_79A81403
> > > _WA_Sys_re_estado_79A81403
> > > _WA_Sys_re_fecha_env_79A81403
> > > _WA_Sys_re_telefono_79A81403
> > > _WA_Sys_re_hora_env_79A81403
> > > _WA_Sys_re_mensaje_79A81403
> > >
> > > Row Tabla: 520.000
> > >
> > > Favor su ayuda que no entiendo este comportamiento:
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > set showplan_all on 14 1 0 1 SETON 0
> > >
> > > (1 row(s) affected)
> > >
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > set showplan_text on 15 1 0 1 SETON 0
> > >
> > > (1 row(s) affected)
> > >
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > SET STATISTICS IO on 16 1 0 1 SETSTATON 0
> > >
> > > (1 row(s) affected)
> > >
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > SET STATISTICS TIME on 17 1 0 1 SETSTATON 0
> > >
> > > (1 row(s) affected)
> > >
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > use sms_cliente 18 1 0 1 DBOPEN 0
> > >
> > > select count(*) from sms_res_enviadas
> > > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P' and
> > > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > > > > 0 19 2 0 2 1.0 2.998153 SELECT 0
> > > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3 2 Compute
> > > Scalar Compute
> > > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
> > > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153 [Expr1002]
> > > PLAN_ROW 0 1.0
> > > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3 Stream
> > > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11 2.998153
> > > [Expr1005] PLAN_ROW 0 1.0
> > > |--Index
> > > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> > > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> > > [sms_res_enviadas].[re_operadora]='P') AND
> > > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index Scan Index
> > > Scan OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> > > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> > > [sms_res_enviadas].[re_operadora]='P') AND
> > > [sms_res_enviadas].[re_estado]='PEN') AND
> > > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
> > > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> > > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41 1.9164028
> > > [sms_res_enviadas].[re_codigo],
> > > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> > > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
> > >
> > > (5 row(s) affected)
> > >
> > > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument DefinedValues
> > > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost OutputList
> > > Warnings Type Parallel EstimateExecutions
> > > use sms_cliente 20 1 0 1 DBOPEN 0
> > >
> > > select count(*) from sms_res_enviadas
> > > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
> > > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > > > > 0 21 2 0 2 1.0 2.998153 SELECT 0
> > > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3 2 Compute
> > > Scalar Compute
> > > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
> > > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153 [Expr1002]
> > > PLAN_ROW 0 1.0
> > > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3 Stream
> > > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11 2.998153
> > > [Expr1005] PLAN_ROW 0 1.0
> > > |--Index
> > > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> > > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> > > [sms_res_enviadas].[re_operadora]='B') AND
> > > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index Scan Index
> > > Scan OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> > > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> > > [sms_res_enviadas].[re_operadora]='B') AND
> > > [sms_res_enviadas].[re_estado]='PEN') AND
> > > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
> > > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> > > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41 1.9164028
> > > [sms_res_enviadas].[re_codigo],
> > > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> > > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
> > >
> > > (5 row(s) affected)
> > >
> > >
> >
> >
> >
Respuesta Responder a este mensaje
#8 Alejandro Mesa
07/10/2005 - 17:00 | Informe spam
Maxi,

Se que quicistes decir "index seek" en vez de "no utiliza". Yo solo lo
aclare para que Pao no se confunda. A mi tambien me pasa lo mismo.

Puedes hacerme el favor de chequear mi ultima respuesta a Pao?, quisiera
saber si vez alguna otra razon obvia por la cual sql server haya decidido no
hacer un "index seek" en este indice y el cual considero como "covering
index" para esta sentencia.


AMB

"Maxi" wrote:

jaja, tenes razon, me exprese mal yo ;-)


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
> Maxi,
>
>> Hola, pero eso no es hacer un Seek a un indice ;-)
>
> Yo solamente conteste tu pregunta.
>
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> >> se
>> >> hace?
>
> SQL Server esta usando el indice, de que esta haciendo un "index scan" y
> no
> "index seek", eso es otra cosa.
>
>
> AMB
>
> "Maxi" wrote:
>
>> Hola, pero eso no es hacer un Seek a un indice ;-)
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Alejandro Mesa" escribió en el
>> mensaje news:
>> > Maxi,
>> >
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> >> se
>> >> hace?
>> >
>> > En la primera sentencia:
>> >
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >
>> > En la segunda:
>> >
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >
>> > SQL Server esta scaneando el indice
>> > [sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]
>> >
>> >
>> > AMB
>> >
>> > "Maxi" wrote:
>> >
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
>> >> se
>> >> hace?
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "Pao" escribió en el mensaje
>> >> news:
>> >> > Tengo una duda:
>> >> > Como puedo saber cual de mis indices es el más usando, así tambien
>> >> > mis
>> >> > indices estadisticos.
>> >> > _WA
>> >> >
>> >> > Sucede que tengo una aplicación que constantemente hace este tipo de
>> >> > query's:
>> >> > use sms_cliente
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> >> > go
>> >> > use sms_cliente
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> >> >
>> >> >
>> >> > Adjunto planes de ejecución: se supone que usa los indices pero yo
>> >> > no
>> >> > tengo
>> >> > definido ningun indice que empiece con re_hora_ing o es por el de
>> >> > re_codigo???
>> >> >
>> >> > Indices:
>> >> > sp_helpindex sms_res_enviadas
>> >> > re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
>> >> > re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
>> >> > re_transmitir_idx nonclustered located on PRIMARY re_codigo,
>> >> > re_operadora,
>> >> > re_hora_ing, re_estado
>> >> > sms_resenviadas_key clustered, unique located on PRIMARY re_codigo
>> >> >
>> >> > Indices estadisticos:
>> >> > _WA_Sys_re_hora_ing_79A81403
>> >> > _WA_Sys_re_operadora_79A81403
>> >> > _WA_Sys_re_estado_79A81403
>> >> > _WA_Sys_re_fecha_env_79A81403
>> >> > _WA_Sys_re_telefono_79A81403
>> >> > _WA_Sys_re_hora_env_79A81403
>> >> > _WA_Sys_re_mensaje_79A81403
>> >> >
>> >> > Row Tabla: 520.000
>> >> >
>> >> > Favor su ayuda que no entiendo este comportamiento:
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > set showplan_all on 14 1 0 1 SETON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > set showplan_text on 15 1 0 1 SETON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > SET STATISTICS IO on 16 1 0 1 SETSTATON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > SET STATISTICS TIME on 17 1 0 1 SETSTATON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > use sms_cliente 18 1 0 1 DBOPEN 0
>> >> >
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > >> >> > 0 19 2 0 2 1.0 2.998153 SELECT 0
>> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3 2
>> >> > Compute
>> >> > Scalar Compute
>> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> >> > [Expr1002]
>> >> > PLAN_ROW 0 1.0
>> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3
>> >> > Stream
>> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> >> > 2.998153
>> >> > [Expr1005] PLAN_ROW 0 1.0
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> >> > [sms_res_enviadas].[re_operadora]='P') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index Scan
>> >> > Index
>> >> > Scan
>> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> >> > [sms_res_enviadas].[re_operadora]='P') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND
>> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> >> > 1.9164028
>> >> > [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >> >
>> >> > (5 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > use sms_cliente 20 1 0 1 DBOPEN 0
>> >> >
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > >> >> > 0 21 2 0 2 1.0 2.998153 SELECT 0
>> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3 2
>> >> > Compute
>> >> > Scalar Compute
>> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> >> > [Expr1002]
>> >> > PLAN_ROW 0 1.0
>> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3
>> >> > Stream
>> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> >> > 2.998153
>> >> > [Expr1005] PLAN_ROW 0 1.0
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> >> > [sms_res_enviadas].[re_operadora]='B') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index Scan
>> >> > Index
>> >> > Scan
>> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
>> >> > [sms_res_enviadas].[re_operadora]='B') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND
>> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> >> > 1.9164028
>> >> > [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >> >
>> >> > (5 row(s) affected)
>> >> >
>> >> >
>> >>
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
#9 Maxi
07/10/2005 - 17:14 | Informe spam
:-), coincido con tu respuesta, si se quiere aplicar una formula puede estar
ahi el problema. Otra cosa seria el tema de la fecha con la hora, hay veces
(no se porque) que cuando lo pones asi no usa algunos indices :(

Tambien seria bueno que nos comente Pao que Service pack tiene


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
Maxi,

Se que quicistes decir "index seek" en vez de "no utiliza". Yo solo lo
aclare para que Pao no se confunda. A mi tambien me pasa lo mismo.

Puedes hacerme el favor de chequear mi ultima respuesta a Pao?, quisiera
saber si vez alguna otra razon obvia por la cual sql server haya decidido
no
hacer un "index seek" en este indice y el cual considero como "covering
index" para esta sentencia.


AMB

"Maxi" wrote:

jaja, tenes razon, me exprese mal yo ;-)


Salu2
Maxi


"Alejandro Mesa" escribió en el
mensaje news:
> Maxi,
>
>> Hola, pero eso no es hacer un Seek a un indice ;-)
>
> Yo solamente conteste tu pregunta.
>
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que
>> >> si
>> >> se
>> >> hace?
>
> SQL Server esta usando el indice, de que esta haciendo un "index scan"
> y
> no
> "index seek", eso es otra cosa.
>
>
> AMB
>
> "Maxi" wrote:
>
>> Hola, pero eso no es hacer un Seek a un indice ;-)
>>
>>
>> Salu2
>> Maxi
>>
>>
>> "Alejandro Mesa" escribió en
>> el
>> mensaje news:
>> > Maxi,
>> >
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que
>> >> si
>> >> se
>> >> hace?
>> >
>> > En la primera sentencia:
>> >
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >
>> > En la segunda:
>> >
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >
>> > SQL Server esta scaneando el indice
>> > [sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]
>> >
>> >
>> > AMB
>> >
>> > "Maxi" wrote:
>> >
>> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que
>> >> si
>> >> se
>> >> hace?
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >>
>> >>
>> >> "Pao" escribió en el mensaje
>> >> news:
>> >> > Tengo una duda:
>> >> > Como puedo saber cual de mis indices es el más usando, así
>> >> > tambien
>> >> > mis
>> >> > indices estadisticos.
>> >> > _WA
>> >> >
>> >> > Sucede que tengo una aplicación que constantemente hace este tipo
>> >> > de
>> >> > query's:
>> >> > use sms_cliente
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> >> > go
>> >> > use sms_cliente
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
>> >> >
>> >> >
>> >> > Adjunto planes de ejecución: se supone que usa los indices pero
>> >> > yo
>> >> > no
>> >> > tengo
>> >> > definido ningun indice que empiece con re_hora_ing o es por el de
>> >> > re_codigo???
>> >> >
>> >> > Indices:
>> >> > sp_helpindex sms_res_enviadas
>> >> > re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
>> >> > re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
>> >> > re_transmitir_idx nonclustered located on PRIMARY re_codigo,
>> >> > re_operadora,
>> >> > re_hora_ing, re_estado
>> >> > sms_resenviadas_key clustered, unique located on PRIMARY
>> >> > re_codigo
>> >> >
>> >> > Indices estadisticos:
>> >> > _WA_Sys_re_hora_ing_79A81403
>> >> > _WA_Sys_re_operadora_79A81403
>> >> > _WA_Sys_re_estado_79A81403
>> >> > _WA_Sys_re_fecha_env_79A81403
>> >> > _WA_Sys_re_telefono_79A81403
>> >> > _WA_Sys_re_hora_env_79A81403
>> >> > _WA_Sys_re_mensaje_79A81403
>> >> >
>> >> > Row Tabla: 520.000
>> >> >
>> >> > Favor su ayuda que no entiendo este comportamiento:
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > set showplan_all on 14 1 0 1 SETON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > set showplan_text on 15 1 0 1 SETON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > SET STATISTICS IO on 16 1 0 1 SETSTATON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > SET STATISTICS TIME on 17 1 0 1 SETSTATON 0
>> >> >
>> >> > (1 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > use sms_cliente 18 1 0 1 DBOPEN 0
>> >> >
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 >> >> >> > 0 19 2 0 2 1.0 2.998153 SELECT 0
>> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3
>> >> > 2
>> >> > Compute
>> >> > Scalar Compute
>> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> >> > [Expr1002]
>> >> > PLAN_ROW 0 1.0
>> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3
>> >> > Stream
>> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> >> > 2.998153
>> >> > [Expr1005] PLAN_ROW 0 1.0
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM'
>> >> > AND
>> >> > [sms_res_enviadas].[re_operadora]='P') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index
>> >> > Scan
>> >> > Index
>> >> > Scan
>> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM'
>> >> > AND
>> >> > [sms_res_enviadas].[re_operadora]='P') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND
>> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado],
>> >> > [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> >> > 1.9164028
>> >> > [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado],
>> >> > [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >> >
>> >> > (5 row(s) affected)
>> >> >
>> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
>> >> > DefinedValues
>> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
>> >> > OutputList
>> >> > Warnings Type Parallel EstimateExecutions
>> >> > use sms_cliente 20 1 0 1 DBOPEN 0
>> >> >
>> >> > select count(*) from sms_res_enviadas
>> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B'
>> >> > and
>> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 >> >> >> > 0 21 2 0 2 1.0 2.998153 SELECT 0
>> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3
>> >> > 2
>> >> > Compute
>> >> > Scalar Compute
>> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
>> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
>> >> > [Expr1002]
>> >> > PLAN_ROW 0 1.0
>> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3
>> >> > Stream
>> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
>> >> > 2.998153
>> >> > [Expr1005] PLAN_ROW 0 1.0
>> >> > |--Index
>> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM'
>> >> > AND
>> >> > [sms_res_enviadas].[re_operadora]='B') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index
>> >> > Scan
>> >> > Index
>> >> > Scan
>> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
>> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM'
>> >> > AND
>> >> > [sms_res_enviadas].[re_operadora]='B') AND
>> >> > [sms_res_enviadas].[re_estado]='PEN') AND
>> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado],
>> >> > [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
>> >> > 1.9164028
>> >> > [sms_res_enviadas].[re_codigo],
>> >> > [sms_res_enviadas].[re_estado],
>> >> > [sms_res_enviadas].[re_operadora],
>> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
>> >> >
>> >> > (5 row(s) affected)
>> >> >
>> >> >
>> >>
>> >>
>> >>
>>
>>
>>



Respuesta Responder a este mensaje
#10 Pao
07/10/2005 - 21:16 | Informe spam
Alejandro, tu respuesta es clara pero ayudame con esto : como obtener las
estadisticas de la distribución de valores:
"Vamos a analyzar la sentencia y los indices con que cuentas. Esta
informacion no es suficiente, pues no tenemos las estadisticas de
distribucion de los valores de las claves que componen estos indices y las
cuales juegan un papel importante a la hora de que sql server escoja el plan
de ejecucion."
Como te comente es o no se si lo dije pero es una aplicación de terceros, de
igual forma les voy a preguntar porque hacen esto de acá.
'and re_codigo - re_codigo/1*1 = 0'

Respecto a los parches adjunto:
Microsoft SQL Server 2000 - 8.00.818 (Intel X86)
May 31 2003 16:08:15
Copyright (c) 1988-2003 Microsoft Corporation
Standard Edition on Windows NT 5.0 (Build 2195: Service Pack 4)

Por otro lado debo entonces entender que por más que me diga que usa el
indice y si la busqueda es scan más no seek es como si estuviese haciendo un
table scan, verdad!!!!Asumo que es peor un table scan o un scan index??? para
los indexes cluster existe scan index y seek index?



"Alejandro Mesa" wrote:

Maxi,

Se que quicistes decir "index seek" en vez de "no utiliza". Yo solo lo
aclare para que Pao no se confunda. A mi tambien me pasa lo mismo.

Puedes hacerme el favor de chequear mi ultima respuesta a Pao?, quisiera
saber si vez alguna otra razon obvia por la cual sql server haya decidido no
hacer un "index seek" en este indice y el cual considero como "covering
index" para esta sentencia.


AMB

"Maxi" wrote:

> jaja, tenes razon, me exprese mal yo ;-)
>
>
> Salu2
> Maxi
>
>
> "Alejandro Mesa" escribió en el
> mensaje news:
> > Maxi,
> >
> >> Hola, pero eso no es hacer un Seek a un indice ;-)
> >
> > Yo solamente conteste tu pregunta.
> >
> >> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
> >> >> se
> >> >> hace?
> >
> > SQL Server esta usando el indice, de que esta haciendo un "index scan" y
> > no
> > "index seek", eso es otra cosa.
> >
> >
> > AMB
> >
> > "Maxi" wrote:
> >
> >> Hola, pero eso no es hacer un Seek a un indice ;-)
> >>
> >>
> >> Salu2
> >> Maxi
> >>
> >>
> >> "Alejandro Mesa" escribió en el
> >> mensaje news:
> >> > Maxi,
> >> >
> >> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
> >> >> se
> >> >> hace?
> >> >
> >> > En la primera sentencia:
> >> >
> >> >> > |--Index
> >> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >
> >> > En la segunda:
> >> >
> >> >> > |--Index
> >> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >
> >> > SQL Server esta scaneando el indice
> >> > [sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]
> >> >
> >> >
> >> > AMB
> >> >
> >> > "Maxi" wrote:
> >> >
> >> >> Hola Pao, no se esta usando ningun indice aca, porque afirmas que si
> >> >> se
> >> >> hace?
> >> >>
> >> >>
> >> >> Salu2
> >> >> Maxi
> >> >>
> >> >>
> >> >> "Pao" escribió en el mensaje
> >> >> news:
> >> >> > Tengo una duda:
> >> >> > Como puedo saber cual de mis indices es el más usando, así tambien
> >> >> > mis
> >> >> > indices estadisticos.
> >> >> > _WA
> >> >> >
> >> >> > Sucede que tengo una aplicación que constantemente hace este tipo de
> >> >> > query's:
> >> >> > use sms_cliente
> >> >> > select count(*) from sms_res_enviadas
> >> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
> >> >> > and
> >> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
> >> >> > go
> >> >> > use sms_cliente
> >> >> > select count(*) from sms_res_enviadas
> >> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
> >> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 = 0
> >> >> >
> >> >> >
> >> >> > Adjunto planes de ejecución: se supone que usa los indices pero yo
> >> >> > no
> >> >> > tengo
> >> >> > definido ningun indice que empiece con re_hora_ing o es por el de
> >> >> > re_codigo???
> >> >> >
> >> >> > Indices:
> >> >> > sp_helpindex sms_res_enviadas
> >> >> > re_fechaing_idx nonclustered located on PRIMARY re_fecha_ing
> >> >> > re_recibido_idx nonclustered located on PRIMARY re_cod_recibido
> >> >> > re_transmitir_idx nonclustered located on PRIMARY re_codigo,
> >> >> > re_operadora,
> >> >> > re_hora_ing, re_estado
> >> >> > sms_resenviadas_key clustered, unique located on PRIMARY re_codigo
> >> >> >
> >> >> > Indices estadisticos:
> >> >> > _WA_Sys_re_hora_ing_79A81403
> >> >> > _WA_Sys_re_operadora_79A81403
> >> >> > _WA_Sys_re_estado_79A81403
> >> >> > _WA_Sys_re_fecha_env_79A81403
> >> >> > _WA_Sys_re_telefono_79A81403
> >> >> > _WA_Sys_re_hora_env_79A81403
> >> >> > _WA_Sys_re_mensaje_79A81403
> >> >> >
> >> >> > Row Tabla: 520.000
> >> >> >
> >> >> > Favor su ayuda que no entiendo este comportamiento:
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > set showplan_all on 14 1 0 1 SETON 0
> >> >> >
> >> >> > (1 row(s) affected)
> >> >> >
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > set showplan_text on 15 1 0 1 SETON 0
> >> >> >
> >> >> > (1 row(s) affected)
> >> >> >
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > SET STATISTICS IO on 16 1 0 1 SETSTATON 0
> >> >> >
> >> >> > (1 row(s) affected)
> >> >> >
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > SET STATISTICS TIME on 17 1 0 1 SETSTATON 0
> >> >> >
> >> >> > (1 row(s) affected)
> >> >> >
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > use sms_cliente 18 1 0 1 DBOPEN 0
> >> >> >
> >> >> > select count(*) from sms_res_enviadas
> >> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora = 'P'
> >> >> > and
> >> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > > >> >> > 0 19 2 0 2 1.0 2.998153 SELECT 0
> >> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 19 3 2
> >> >> > Compute
> >> >> > Scalar Compute
> >> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
> >> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
> >> >> > [Expr1002]
> >> >> > PLAN_ROW 0 1.0
> >> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 19 4 3
> >> >> > Stream
> >> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
> >> >> > 2.998153
> >> >> > [Expr1005] PLAN_ROW 0 1.0
> >> >> > |--Index
> >> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> >> >> > [sms_res_enviadas].[re_operadora]='P') AND
> >> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 19 5 4 Index Scan
> >> >> > Index
> >> >> > Scan
> >> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> >> >> > [sms_res_enviadas].[re_operadora]='P') AND
> >> >> > [sms_res_enviadas].[re_estado]='PEN') AND
> >> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
> >> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> >> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
> >> >> > 1.9164028
> >> >> > [sms_res_enviadas].[re_codigo],
> >> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> >> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
> >> >> >
> >> >> > (5 row(s) affected)
> >> >> >
> >> >> > StmtText StmtId NodeId Parent PhysicalOp LogicalOp Argument
> >> >> > DefinedValues
> >> >> > EstimateRows EstimateIO EstimateCPU AvgRowSize TotalSubtreeCost
> >> >> > OutputList
> >> >> > Warnings Type Parallel EstimateExecutions
> >> >> > use sms_cliente 20 1 0 1 DBOPEN 0
> >> >> >
> >> >> > select count(*) from sms_res_enviadas
> >> >> > where re_hora_ing <= '10/06/2005 11:23:42' and re_operadora ='B' and
> >> >> > re_estado = 'PEN' and re_codigo - re_codigo/1*1 > > >> >> > 0 21 2 0 2 1.0 2.998153 SELECT 0
> >> >> > |--Compute Scalar(DEFINE:([Expr1002]=Convert([Expr1005]))) 21 3 2
> >> >> > Compute
> >> >> > Scalar Compute
> >> >> > Scalar DEFINE:([Expr1002]=Convert([Expr1005]))
> >> >> > [Expr1002]=Convert([Expr1005]) 1.0 0.0 0.00000025 11 2.998153
> >> >> > [Expr1002]
> >> >> > PLAN_ROW 0 1.0
> >> >> > |--Stream Aggregate(DEFINE:([Expr1005]=Count(*))) 21 4 3
> >> >> > Stream
> >> >> > Aggregate Aggregate [Expr1005]=Count(*) 1.0 0.0 0.00000025 11
> >> >> > 2.998153
> >> >> > [Expr1005] PLAN_ROW 0 1.0
> >> >> > |--Index
> >> >> > Scan(OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> >> >> > [sms_res_enviadas].[re_operadora]='B') AND
> >> >> > [sms_res_enviadas].[re_estado]='PEN') AND [sms_r 21 5 4 Index Scan
> >> >> > Index
> >> >> > Scan
> >> >> > OBJECT:([sms_cliente].[dbo].[sms_res_enviadas].[re_transmitir_idx]),
> >> >> > WHERE:((([sms_res_enviadas].[re_hora_ing]<='Oct 6 2005 11:23AM' AND
> >> >> > [sms_res_enviadas].[re_operadora]='B') AND
> >> >> > [sms_res_enviadas].[re_estado]='PEN') AND
> >> >> > [sms_res_enviadas].[re_codigo]-[ [sms_res_enviadas].[re_codigo],
> >> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> >> >> > [sms_res_enviadas].[re_hora_ing] 1.0 0.6721226 0.28607884 41
> >> >> > 1.9164028
> >> >> > [sms_res_enviadas].[re_codigo],
> >> >> > [sms_res_enviadas].[re_estado], [sms_res_enviadas].[re_operadora],
> >> >> > [sms_res_enviadas].[re_hora_ing] PLAN_ROW 0 1.0
> >> >> >
> >> >> > (5 row(s) affected)
> >> >> >
> >> >> >
> >> >>
> >> >>
> >> >>
> >>
> >>
> >>
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida