none
Consulta Dinámicas en un SP RRS feed

  • Pregunta

  • Quisiera algún consejo respecto a consultas dinámicas, actualmente tengo un formulario de consultas de un cliente, asi mismo tengo un Procedimiento almacenado que se maneja de manera dinámica usando el (EXECUTE sp_executesql), el Procedimiento almacenado lo utilizo para a hacer búsquedas mixtas por Ejemplo: Buscar por Tipo de documento, Nro de documento, Pais, Cliente, Producto, Código de producto.

    Quisiera saber si es Optimo usar las consultas dinámicas, y si no fuera optimo. Podrían indicarme alguna forma de realizar la búsquedas mixtas. 

    Gracias.

    miércoles, 14 de diciembre de 2016 21:02

Respuestas

Todas las respuestas

  • Aca un articulo bien detallado de los distintos metodos y su comparacion en cuanto a rendimiento, seguridad, etc.

    http://www.sommarskog.se/dyn-search.html

    Si implementas la busqueda de forma parametrizada pues no habria que preocuparse sobre seguridad. Si en cambio concatenas los valores para formar la sentencia entonces te diria que es mala idea.

    En cuanto a desempenio, puedes usar la opcion OPTION (RECOMPILE) para evitar el efecto conocido como olfateo de parametros, lo cual no es optimo cuando se tiene una distribucion anormal de la data que se busca.


    AMB

    Some guidelines for posting questions...

    AYÚDANOS A AYUDARTE, guía básica de consejos para formular preguntas

    miércoles, 14 de diciembre de 2016 21:10
  • Te aconsejaría comenzar por tomarte un tiempo y leer para mi el mejor articulo relacionado a este tema, es denso pero con una riqueza excepcional:

    http://www.sommarskog.se/dynamic_sql.html

    Otro aspecto a tomar en cuenta es que debes pensar que aquellos criterios (columnas incluidas en el Where) deben estar correctamente indexados, siendo esto un tema vital para el performance y salud de tu servidor de BBDD, por experiencia y no solo con MS SQL Server, sino con herramientas como Entity Framework y ODATA te puedo decir que dejar "abierto" al usuario no es siempre una idea aconsejable y en muchos casos resulta una mejor opcion el desarrollar soluciones a nivel de Business Intelligence.

    Aquí un articulo un poco antiguo en donde exponía este tema:

    http://geeks.ms/blogs/ghernandez/archive/2009/01/18/filtros-din-225-micos-en-sql-server.aspx


    "Oh, the wind, the wind is blowing,through the graves the wind is blowing,Freedom soon will come; then well come from the shadows".The Partisan(Leonard Cohen) Email: me[at]geohernandez.net Blog:www.geohernandez.net

    • Marcado como respuesta Randy Mc26 miércoles, 14 de diciembre de 2016 21:41
    • Desmarcado como respuesta Randy Mc26 miércoles, 14 de diciembre de 2016 22:29
    miércoles, 14 de diciembre de 2016 21:14
  • Gracias Hunchback, de hecho me queda claro con respecto al uso que debo darle, y referente al tema de búsquedas mixtas considero que si es optimo. 

    Muchas Gracias.!

    miércoles, 14 de diciembre de 2016 21:33
  • Geovanny, Muchas gracias. De hecho me parece muy interesante el articulo y como mencionas le daré un tiempo para poder leerlo y analizarlo. Así mismo me parece muy interesante el articulo que desarrollaste, de hecho tengo el Procedimiento Almacenado como mencionas en tu articulo. Así mismo me quedo más tranquilo y con la idea que para las búsquedas mixtas es  optimo desarrollarlas bajo este modelo, considerando los puntos que se mencionan en el primer articulo.

    Si tuvieras otros artículos o post referente a optimización de procedimientos almacenados, me gustaría que pudieras compartirlo.

    Muchas gracias.!

    miércoles, 14 de diciembre de 2016 21:40