rendimientos vistas

29/01/2004 - 10:47 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?

Gracias
 

Leer las respuestas

#1 ulises
29/01/2004 - 15:49 | Informe spam
Si puedes obtener los datos desde una tabla o de una
vista, siempre es más rápido obtenerla de la tabla misma,
pero ten en consideración que bajo tu esquema estarías
afectando la performance de tu ingreso ya que por cada una
de ellas tendrías que actualizar la tablas de clientes-
contratos y clientes-oficinas, habría que probar que es lo
más eficiente. Asimismo también podrías considerar
utilizar un stored procedure en lugar de vistas ya que
podrías parametrizarlas de acuerdo a lo que deseas obtener.

Saludos,
Ulises

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?

Gracias
.

Preguntas similares