Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2009
Cheerpipe Cheerpipe is offline
Miembro
 
Registrado: oct 2006
Posts: 46
Poder: 0
Cheerpipe Va por buen camino
Vistas - Pueden afectar el rendimiento???

Hola.

Tengo la siguiente duda, supongo que la respuesta variara segun el motor de base de datos a utilizar, por lo que no especificare alguno para que cualquiera pueda contestar libremente.

Como saben, las Vistas en una db no es mas que una plantilla de una consulta SELECT usada basicamente para comodidad o bien para restringir la visibilidad de los datos. Mi inquierud apunta directamente al rendimiento de una vista, especificamente vistas grandes.

Imaginen el siguiente caso. Existe una consulta SQL con varias condiciones de busqueda (WHERE) que permite la obtencion de registros en una tabla con miles y miles y miles de registros. En el caso del select, la consulta rescatara directamente los registros que cumplan la condicion. ¿Pero que pasa si encapsulo la consulta SELECT en una vista? Obviamente al hacer esto, tendria que eliminar el WHERE de la vista, ya que las condiciones de busqueda tendria que aplicarlas a la ejecucion de la vista, en este caso al ejecutar una consulta a la vista. ¿La vista leeria todos los miles y miles de registros de la tabla sobre la cual se ejecuta la vista, y luego se aplicarian las condiciones de busqueda?, de ser asi ¿Eso no supondria que el uso de vistas significaria en mayor trabajo para el servidor?.

Espero haber podido explicarme bien, normalmente no soy bueno dandome a entender .

Saludos y gracias de antemano.
Responder Con Cita
  #2  
Antiguo 30-03-2009
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
He trabajado con vistas en SQL Server 2000 y eran terriblemente lentas, aunque con SQL 2005 ha mejorado un poco la cosa.
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 01-04-2009
Avatar de nuk3zito
nuk3zito nuk3zito is offline
Miembro
 
Registrado: ago 2003
Ubicación: "Z" Land
Posts: 244
Poder: 21
nuk3zito Va por buen camino
Cita:
Empezado por droguerman Ver Mensaje
He trabajado con vistas en SQL Server 2000 y eran terriblemente lentas, aunque con SQL 2005 ha mejorado un poco la cosa.
Es raro que te parecieran lentas... seguramente si usabas joins no tenías bien definidos tus índices. En lo particular no he tenido problemas de lentitud con vistas que usan joins complejos.
__________________
Tiempo y ocasión acontecen a todos!
Responder Con Cita
  #4  
Antiguo 01-04-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.285
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Cheerpipe Ver Mensaje
Existe una consulta SQL con varias condiciones de busqueda (WHERE) que permite la obtencion de registros en una tabla con miles y miles y miles de registros. En el caso del select, la consulta rescatara directamente los registros que cumplan la condicion. ¿Pero que pasa si encapsulo la consulta SELECT en una vista? Obviamente al hacer esto, tendria que eliminar el WHERE de la vista, ya que las condiciones de busqueda tendria que aplicarlas a la ejecucion de la vista, en este caso al ejecutar una consulta a la vista. ¿La vista leeria todos los miles y miles de registros de la tabla sobre la cual se ejecuta la vista, y luego se aplicarian las condiciones de busqueda?, de ser asi ¿Eso no supondria que el uso de vistas significaria en mayor trabajo para el servidor?
Para casos como estos talvez deberías "tirar" hacia StoresProcs o Funciones.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
rendimiento de PHP Ñuño Martínez PHP 1 20-09-2006 06:29:55
Afectar las existencias de un pedido antes d- se confirme. Arturo MySQL 1 12-09-2006 22:12:34
¿Pueden tener disparadores (triggers) las vistas “Union”? Al González Firebird e Interbase 1 19-05-2006 22:29:26
If condicional al afectar existencias con store procedure... uper Firebird e Interbase 2 16-09-2005 17:42:06
rendimiento carlomagno Firebird e Interbase 14 06-07-2004 17:05:13


La franja horaria es GMT +2. Ahora son las 22:49:36.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi