Consulta index scan

Category: General 13 years ago
Estimados tengo dos tablas, en las mismas tendo creados indices

si hago una consulta de la tabla1 por el campo1 hace un index seek , esta ok

si hago otra consulta de la tabla2 por el campo1 hace un index seek, tabien esta ok

pero cuando hago :

SELECT t1.campo1
FROM base1..tabla1 t1
INNER JOIN base2..tabla2 t2 ON cast(t1.campo1 as int) = cast(t2.campo1 as int)

hace sobre las dos tablas index scan, alguien me puede ayudar

Gracias
Like it on Facebook, +1 on Google, Tweet it or share this topic on other bookmarking websites.
  • Re: Consulta index scan

    by » 13 years ago


    El problema se debe a que estas usando una función en tu clausula where, lo que provoca que el optimizador de SQL Server no pueda usar de manera eficiente los índices. En tus diseños de bases de datos recuerda que las columnas de tus tablas que van a ser llaves primarias usadas mediantes joins, definirlas como enteras. Ya que como caracteres no es muy óptimo y terminas conviertiendolas como es tu caso.

    Saludos

  • Re: Consulta index scan

    by » 13 years ago


    Las dos tablas tienen el campo tipo entero y yo puse el cast pero sin el cast hace lo mismo, pude ser tema del service Pack 4?

  • Re: Consulta index scan

    by » 13 years ago


    como tienes definidos los índices en esas tablas?

  • Re: Consulta index scan

    by » 13 years ago


    Oye pero no tienes una clausula where en tu query, Si no tienes cláusula where no es posible que hagas un index seek. Haces un index scan porque seguramente tienes un clustered en esa columna.<br><br>Post edited by: mherlindo, at: 2008/01/14 11:40

You do not have permissions to reply to this topic.
Powered by CjForum