06. Parametrización
Cuando una llamada a una base de datos es parametrizada, los valores son pasados como variables. Aunque podemos encontrar pro y contras con respecto a este tema, lo cierto es que las aplicaciones ganan en performance cuando realizada llamadas parametrizadas.
El cache de SQL Server guarda el plan de acceso para cada consulta que es ejecutada. Cuando una consulta es ejecutada, SQL Server analiza y compila la consulta. Esta es comparada con el query cache utilizando un algoritmo de comparación de string. Si se encuentra una coincidencia entonces se utiliza el plan cacheado.
Una consulta que es parametrizada es mucho más probable de encontrar una coincidencia de una que no esta parametrizada.
Un ejemplo bien "bestia" sería:
consulta sin parametrizar: "select * from myTabla where col1 = 1"
consulta parametrizada: "select * from myTabla where col1 = ?"
Debido a que no todas las aplicaciones parametrizan sus llamadas a la db, podemos forzar a SQL Server a parametrizar todas las consultas con la opción de base de datos "PARAMETERIZATION FORCED".
Por defecto esta opción esta desabilitada. Esto se debe a que no siempre es lo más óptimo y que solo obtendremos beneficios (visibles o tangibles) si las consultas a la db son de corta duración y repetitivas.

Comentarios recientes