entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Join con Table Scan - Sybase

Ayuda con join mi consulta es que tengo una tabla que contiene 1 millon de registros es la de cliente y otra q contiene 74000 que son los clientes que deseo la informacion al hacer el queryplan veo que hace un table scan sobre la de 74000 registros y va por el indice de 1 millon pero ese join se me demora 30 minuto si hago un select into o insert into que es el q me consume log de transaccion aqui mi pregunta como puedo hacer para q no me de table scan a la tabla de 74000 registros si no q se valla por el indice del codigo del cliente y asi no me recorra toda la tabla del millon

2 Respuestas

0voto

Jonathino25 Puntos1740

El problema era que la tabla de un millon contenia un indice nonclustered y la tabla pivote la pequeña no barria la tabla del millon completa sin ordenamiento lo que hice fue cambiar el indice a clustered y esta consulta reducio a 3 minutos

0voto

Peter comentado

Si esta es la respuesta correcta, por favor márcala como tal.

Saludos.

0voto

Leonardo-Tadei comentado

Me alegro que lo solucionaras!

Tal y como te decía, accediendo a los datos por un campo clave, la consulta es muchísimo más eficiente.

2votos

Leonardo-Tadei Puntos227020

Hola jonathino25,

deberíamos poder ver la estructura de ambas tablas y la query que estás ejecuntado para poder ayudarte.

A priori, si el acceso de la tabla grande es por un campo que es clave en la tabla chica, el planificador debería accederlo por la clave, que es más rápido, sin embargo, si es clave y no está pasando esto, debe ser que por la naturaleza de la query está haceindo falta hacer el scan... a veces pasa con subselect que pueden evitarse o por la falta de agrupamientos que pueden resolver esto.

Con las tablas y la query podremos ayudarte mejor.

Saludos!

0voto

Jonathino25 comentado

leonardo-tadei si accedia por el campo clave lo que pasaba es que el indice era nonclustered y esta desordenado y por eso demoraba en vez de estar ordenado

0voto

Leonardo-Tadei comentado

Claro, pero por campo clave nos referimos generalmente a un índice ordenado, y no a particularidades de un RDBMS como los non clustered.

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta