SQL - Vistas

 
Vista:

Vistas

Publicado por Omar (10 intervenciones) el 06/11/2008 21:23:07
Quería preguntarles ,tengo una query con muchos inners y es algo lenta, y cree una View con este query y pues queria saber si con la View mi consulta se hara mas leta, o es igual, si usar Views tiene algua desventajas. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Vistas

Publicado por m (16 intervenciones) el 06/11/2008 22:06:52
Pues mira una vista la creas con una consulta asi que que
si crees haciendo una vista de la misma consulta sera mas rapido
pues no. Lo que puedes hacer es particionar tu consulta y definir
si los datos que menos cambian los agregas en una vista, es lo
aconsejable.

Ahora lo primero seria analizar el query de la consulta tal vez
sea necesario agregar indices o mejorar la consulta. Espero
que Pacopaz pase por aca y te platique mas sobre el tema,
y agregue mas ideas al respecto.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Vistas

Publicado por Omar (10 intervenciones) el 06/11/2008 22:22:16
Buen día m, el query que uso es correcto, solamente que es algo largo y necesito manejarlo para mi aplicación, entonces es mas facil hacer una vista con el, lo que me gustaría saber es si al hacer la vista se hace mas lento my consulta, de ser así usare el query sin vista, en si mi duda es esta,¿Mi query se hace mas lento con una vista?
Gracias por reponder
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Vistas

Publicado por pacopaz (143 intervenciones) el 07/11/2008 00:45:27
Antes que otra cosa, agradezco la confianza de M en mis comentarios.
Con respecto a las vistas. Poco las utilizo y esto es, en gran medida, por que las consultas normalmente no son muy complejas y las que lo son prefiero hacerlas en sp que generar una vista.
Las ventajas de las vistas son muchas, en relación a seguridad y filtrado de información visible, sin embargo, no ofrecen mayor desempeño a las consultas. No, por lo menos, en relación a una buena estrategia de índices en las tablas.
Supongo que tienes indexados los campos que utilizas en los joins para tu consulta y aunque no la conozco, lo que puede estar sucediendo con ella son muchas cosas, que van desde hacer consultas sobre subconsultas, tener algunos filtros "where campo in (select)" o estar haciendo búsquedas a substrings o productos de funciones (datepart o isnull, por ejemplo).
Todas estas cosas hacen que el desempeño sea menor. Desafortunadamente no cuento con tu consulta y no sé como podría optimizarse. Lo que puedes hacer es buscar todos estos detallitos y tratar de darles solución de otra forma. En el caso particular de las funciones o substrings y cosas parecidas, conviene, ahí si, poner estos en vistas y luego hacer las consultas sobre ellas, toda vez que no estarán indexados en ningún momento. De otra forma, pareciera trabajo extra hacer vistas, ya que aunque 'heredan' los índices desde las tablas, su uso es menos óptimo. En este caso, es preferible indexar los campos más relevantes del query.

Espero que te sirva.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar