Buen día comunidad tengo las siguientes inquietudes:
recientemente estuve investigando como se usaba la cache de una db en producción con la siguiente sentencia saco todos los queries adhoc y me di cuenta que son
la mayoría en comparación con los tipos procedures
select * from sys.syscacheobjects where objtype = 'Adhoc' me retorna un poco mas de 38000 registros
select * from sys.syscacheobjects where objtype = 'Proc' me retora un poco mas de 1000 registros
en las consultas adhoc hay varios que se repiten muchas veces es aqui donde se me ocurrio lo de PARAMETERIZATION FORCED para forzar que las consultas no se compilen en cada ejecución y usen un plan de ejecución
la otra duda que tengo es que el procedure cache hit ratio no lo tengo al 100% constantemente el promedio se mantiene en 85% activar PARAMETERIZATION FORCED ayudara con esto o algo tiene que ver?
con ese cambio se mejorara considerablemente el performance de la DB? la db en ocasiones llega a tener 25 usuarios concurrentes trabajando de un total de 65 que usan, si entran los 25 usuarios o N usuarios trabajando concurrentemente esas consultas ya no tendrían que consumir recursos en su compilación y usarían los planes creados por la PARAMETERIZATION FORCED correcto?
ademas que cuando hay mas concurrencia suele producirse bloqueos quizás sean las compilaciones de los queries en masa?
activando PARAMETERIZATION FORCED pueda que las consultas devuelvan información incorrecta?
tengo entendido que al activar PARAMETERIZATION FORCED este genera bloqueos mientra se va activando realizar esos cambios en producción mientras se trabaja no seria recomendable? o podría realizar el cambio con la db en uso ?
Saludos