rendimientos vistas procedures

29/01/2004 - 16:33 por Racsus | Informe spam
Hola

tenemos una BD con varias tablas relacionadas: oficinas,
clientes y contratos.

En muchos de los mantenimientos se necesitan sacar listas
con datos de clientes, oficinas o contratos y para ello
hemos de recorrer varias de las tablas para sacar los
datos necesarios.

Para evitar el recorrer tantas tablas que es mejor:

1)Usar una tabla intermedia como Clientes-Contratos,
Clientes-Oficinas,... donde rellenamos solo los clientes
que tiene contrato, sólo los clientes que tienen
oficina,... de esta forma ya no tenemos que acudir a otras
tablas para ver los clientes que tienen o no tiene
contrato.

2) Crear una vista en Sql Server Clientes-Contratos,
Clientes-Oficinas... de esta manera no tendremos que estar
alimentando esta tabla desde código; pero y los
rendimientos? seran iguales que ejecutar el codigo sql
desde la aplicación? que ventajas tienen las vistas? las
vistas se autoalimentan sólas? cuando llamamos a la vista
tarda lo mismo que si llamaramos al código sql de la
consulta?

3) Me han dicho que utilize una store procedure, pero como?


Gracias
 

Leer las respuestas

#1 Jose Mariano Alvarez \(MUG\)
30/01/2004 - 09:07 | Informe spam
Si lo quieres resolver esto en SQL te sugiero que leas algo de los modelos
estrela o copo de nieve.
Para ese tipo de reportes, a mi criterio, son los modelos ideales (aun sin
usar Analisys Services).
Debes desnormalizar la base de datos en dimensiones y hechos.

Puedes ver lo que corresponde a diseño de estos modelos dimensionales. en
http://msdn.microsoft.com/library/d...w_39lz.asp
Esto corresponde al capitulo 22 (Cubes in the Real World) del Resource kit
del SQL server 2000


Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar




"Racsus" wrote in message
news:6a9001c3e67d$38d80ed0$
Hola

tenemos una BD con varias tablas relacionadas: oficinas,
clientes y contratos.

En muchos de los mantenimientos se necesitan sacar listas
con datos de clientes, oficinas o contratos y para ello
hemos de recorrer varias de las tablas para sacar los
datos necesarios.

Para evitar el recorrer tantas tablas que es mejor:

1)Usar una tabla intermedia como Clientes-Contratos,
Clientes-Oficinas,... donde rellenamos solo los clientes
que tiene contrato, sólo los clientes que tienen
oficina,... de esta forma ya no tenemos que acudir a otras
tablas para ver los clientes que tienen o no tiene
contrato.

2) Crear una vista en Sql Server Clientes-Contratos,
Clientes-Oficinas... de esta manera no tendremos que estar
alimentando esta tabla desde código; pero y los
rendimientos? seran iguales que ejecutar el codigo sql
desde la aplicación? que ventajas tienen las vistas? las
vistas se autoalimentan sólas? cuando llamamos a la vista
tarda lo mismo que si llamaramos al código sql de la
consulta?

3) Me han dicho que utilize una store procedure, pero como?


Gracias

Preguntas similares