¿Cómo se puede borrar todos los viejos planes de consulta desde Microsoft SQL Server?

dba.stackexchange https://dba.stackexchange.com/questions/530

  •  16-10-2019
  •  | 
  •  

Pregunta

Tenemos una aplicación de la plataforma que utiliza una base de datos Microsoft SQL. Dentro de esta aplicación escogemos varios criterios de selección para cada informe. Esta aplicación se ejecuta a continuación, estos informes.

Creo que tenemos un problema de plan de consulta. El primer informe se corre cada día, corre muy rápido 7 minutos. Cualquier informe se corre después del primer informe tarda más de una hora.

Cada noche que ejecutar una tarea programada que se detiene y se inicia el Agente SQL Server y SQL Server. Hay aproximadamente 25 otras bases de datos dentro de esta una instancia de SQL Server. No hay otras bases de datos tienen problemas de rendimiento, sólo el uno fuera de la plataforma de productos que he mencionado antes.

¿Hay una manera de limpiar todos los planes de consulta de SQL Server que tiene actualmente en la memoria?

¿Cómo puedo hacer esto sin afectar a 30 o para que los usuarios que dependen de otras bases de datos en el mismo servidor?

¿Fue útil?

Solución

Mis disculpas por mi respuesta anterior.

1) Añadir la opción CON RECOMPILE a la sentencia CREATE PROCEDURE si usted sabe que la consulta variará cada vez que se ejecuta desde el procedimiento almacenado. Los opción evita CON recompilar el plan de reutilización de ejecución del procedimiento almacenado, por lo que SQL Server no almacena en caché un plan para este procedimiento y el procedimiento se vuelve a compilar en tiempo de ejecución. Con la opción WITH RECOMPILE puede mejorar el rendimiento si su consulta variará cada vez que se ejecuta desde el procedimiento almacenado ya que en este caso no se utilizará el plan de ejecución incorrecto.

2) Tienes que crear una guía de plan que utiliza un USO pista plan de consulta para cada tipo de consulta (cada procedimiento almacenado tipo de solicitud) a plan de ejecución de la fuerza.

Aquí es href="http://www.simple-talk.com/sql/performance/execution-plan-basics/"> sobre el plan de ejecución que pueden ayudar.

Otros consejos

DBCC FREEPROCCACHE

Con este comando, puede borrar toda la caché de procedimientos abajo a un solo comando. Definitivamente leer la documentación antes de utilizar este comando. Lea las Notas de sección un par de veces.

Borrar la caché de procedimientos causará cachés de procedimientos almacenados para volver a compilar al siguiente uso. Esto podría afectar al rendimiento. Utilice con cuidado!

Matt

Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top