Consultas grandes

28/11/2006 - 12:53 por Kno | Informe spam
Hola, tengo la siguiente situación. Tengo una base de datos SQL Server 2000,
con tablas de 20 mill. de registros y otra de 16 mill y una tercera de 8 mill
de registros. Debo realizar una consulta con estas 3 tablas para recuperar
datos de un periodo especifico (12 meses por ej.) . Cada una tiene indices.
Mi consulta es la siguiente.

- ¿es recomendable hacer un join con las tres tablas directamente o utilizar
tablas virtuales donde extraiga el conjunto de datos que necesito y luego
hacer el join con estas tablas virtuales?

- ¿existe alguna diferencia en usuar inner join a usar un join "a la
antigua"? (p. ej: From t1, t2 where t1.id = t2.id )

- ¿esto influye en el rendimiento de la consulta?

- ¿basta con ordenar el la estructura del inner join para obtener un mejor
rendimiento?

de antemano gracias.

Preguntas similare

Leer las respuestas

#1 Maxi
28/11/2006 - 13:02 | Informe spam
Hola, mira yo en esos casos trato de hacer lo que llamas vos tablas
virtuales y el join contra ellas, pero esto no es una regla 100%, hay veces
que mejora el rendimiento y hay veces que no, lo mejor para poder comparar
todo esto que vos estas comentando es que analises los costos de cada plan
de ejecucion y ahi puedas decir cual es mejor query.
Con respecto al Inner o a la antigua, Microsoft recomienda el inner y de
hecho en 2005 algunas funciones de la antigua como *= no son soportadas


Salu2

Microsoft MVP SQL Server
Culminis Speaker
INETA Speaker

"Kno" escribió en el mensaje
news:
Hola, tengo la siguiente situación. Tengo una base de datos SQL Server
2000,
con tablas de 20 mill. de registros y otra de 16 mill y una tercera de 8
mill
de registros. Debo realizar una consulta con estas 3 tablas para recuperar
datos de un periodo especifico (12 meses por ej.) . Cada una tiene
indices.
Mi consulta es la siguiente.

- ¿es recomendable hacer un join con las tres tablas directamente o
utilizar
tablas virtuales donde extraiga el conjunto de datos que necesito y luego
hacer el join con estas tablas virtuales?

- ¿existe alguna diferencia en usuar inner join a usar un join "a la
antigua"? (p. ej: From t1, t2 where t1.id = t2.id )

- ¿esto influye en el rendimiento de la consulta?

- ¿basta con ordenar el la estructura del inner join para obtener un mejor
rendimiento?

de antemano gracias.
Respuesta Responder a este mensaje
#2 Javier Loria
28/11/2006 - 14:01 | Informe spam
Hola:
- ¿es recomendable hacer un join con las tres tablas directamente o
utilizar tablas virtuales donde extraiga el conjunto de datos que necesito
y luego hacer el join con estas tablas virtuales?
A que llamas tablas virtuales? Si es a las vistas excepto en algunas
exepciones. Si es a las subconsultas casi todas son iguales excepto las
correlacionadas que suelen ser mas lentas.
- ¿existe alguna diferencia en usuar inner join a usar un join "a la
antigua"? (p. ej: From t1, t2 where t1.id = t2.id )
- ¿esto influye en el rendimiento de la consulta?
Por desempeno son iguales, por que suelen ser mejores para dar
mantenimiento y porque es mas dificil cometer en ellos errores es mejor usar
el JOIN.
- ¿basta con ordenar el la estructura del inner join para obtener un mejor
rendimiento?
No.
Saludos,


Javier Loria
Costa Rica-MVP
Solid Quality Learning

"Kno" wrote in message
news:
Hola, tengo la siguiente situación. Tengo una base de datos SQL Server
2000,
con tablas de 20 mill. de registros y otra de 16 mill y una tercera de 8
mill
de registros. Debo realizar una consulta con estas 3 tablas para recuperar
datos de un periodo especifico (12 meses por ej.) . Cada una tiene
indices.
Mi consulta es la siguiente.

- ¿es recomendable hacer un join con las tres tablas directamente o
utilizar
tablas virtuales donde extraiga el conjunto de datos que necesito y luego
hacer el join con estas tablas virtuales?

- ¿existe alguna diferencia en usuar inner join a usar un join "a la
antigua"? (p. ej: From t1, t2 where t1.id = t2.id )

- ¿esto influye en el rendimiento de la consulta?

- ¿basta con ordenar el la estructura del inner join para obtener un mejor
rendimiento?

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