none
Vista o Procedimiento Almacenado RRS feed

  • Pregunta

  • Hola lista,

    Trabajo con SQL Server 2000, y tengo una duda con respecto de que me sería mas eficiente, si es usar una vista donde tengo los datos que necesito o los consulto estos cada vez a traves de un procedimiento almacenado.

    La vista basicamente se base en 7 tablas y bueno el procedimiento de igual forma.

    Saludos

    Juan Carlos

    jueves, 19 de agosto de 2010 22:09

Respuestas

  • A efectos de eficiencia da igual. El optimizador de consultas debería generar el mismo plan de ejecución tanto si la consulta está dentro de una vista como si está en un procedimiento. En cualquier caso, siempre puedes comprobarlo pidiéndole que te presente el plan de ejecución desde el Enterprise Manager.

    La decisión acerca de usar una vista o un procedimiento dependerá sobre todo de la forma en la que realices la consulta desde tu software cliente, ya que no se hace igual con la vista que con el SP. La vista probablemente te dé más flexibilidad, ya que en el momento de llamarla puedes hacer un select... from laVista y añadir un Where con condiciones adicionales, o un Join con otras tablas o vistas, cosa que no puedes hacer si tienes un SP con la Select dentro. Por otra parte, el SP te permite hacer cosas que no puedes hacer con la vista, tales como añadir dentro sentencias adicionales que no sean una Select. Pero si no es éste tu caso, probablemente te convenga más la vista.

    viernes, 20 de agosto de 2010 7:10

Todas las respuestas

  • A efectos de eficiencia da igual. El optimizador de consultas debería generar el mismo plan de ejecución tanto si la consulta está dentro de una vista como si está en un procedimiento. En cualquier caso, siempre puedes comprobarlo pidiéndole que te presente el plan de ejecución desde el Enterprise Manager.

    La decisión acerca de usar una vista o un procedimiento dependerá sobre todo de la forma en la que realices la consulta desde tu software cliente, ya que no se hace igual con la vista que con el SP. La vista probablemente te dé más flexibilidad, ya que en el momento de llamarla puedes hacer un select... from laVista y añadir un Where con condiciones adicionales, o un Join con otras tablas o vistas, cosa que no puedes hacer si tienes un SP con la Select dentro. Por otra parte, el SP te permite hacer cosas que no puedes hacer con la vista, tales como añadir dentro sentencias adicionales que no sean una Select. Pero si no es éste tu caso, probablemente te convenga más la vista.

    viernes, 20 de agosto de 2010 7:10
  • Muchas gracias.
    viernes, 20 de agosto de 2010 14:24