estancamiento del servidor SQL

En la mañana para ver las cuentas del servidor SQL memoria del servidor durante más de 90%, y por lo tanto tiene que reiniciar manualmente los servicios de SQL, disminución de la memoria se tiene en cuenta, pero la pregunta es, esto es simplemente genial, la forma de resolver?

 

         En primer lugar se echó a matar, eliminar un nuevo proceso fuera del proceso allí?

         Hay varias soluciones en línea. un tratado por uno, me siento ningún efecto, pero afortunadamente, este estancamiento temporal no afecta al funcionamiento de otros servicios, pero la necesidad de encontrar una solución.

        En primer lugar es necesario entender cómo se genera el punto muerto?

        Recursos para competir en dos o más tareas, cada tarea si la tarea de tratar de bloqueo para bloquear los otros recursos en este momento va a producir una obstrucción permanente de estas tareas, por lo tanto un punto muerto. Analogía, hay dos cocineros en la cocina, entonces sólo un cuchillo de cocina, y una vez, un cocinero con un cuchillo de cocina, chef también con B, entonces B, etc. Un chef cocina sólo pueden agotarse, a continuación, utilizar el cuchillo.

        Interbloqueo está formado con un cuatro requisitos:

        Solicitar para mantener las condiciones: el acceso a los recursos de los procesos pueden solicitar un nuevo recurso al mismo tiempo;

        No la privación: se han asignado recursos no puede ser privado del proceso. (Un chef cortar verduras, entonces sería freír, plato fuera de huéspedes recordatorios, así que no la privación).

        Loop condición de espera: una pluralidad de procesos forman un bucle, y en el que cada vecino está esperando un proceso;

        condiciones mutuamente excluyentes: los recursos sólo pueden ser utilizados por un proceso.

En segundo lugar, la forma de resolver el problema de interbloqueo?

1, Claro estancamiento

2, el uso de la consulta sin bloqueo

Leer el siguiente libro, el libro lanzado un toque de la oración: por lo general retirado uno de los asuntos más importantes, para liberar recursos que posee, por lo que los asuntos importantes primera carrera, después del reprocesamiento la transacción. Por supuesto, con antelación para evitar produzca un punto muerto es la mejor manera de resolver el problema de interbloqueo. (No lo dijo mal, pero el funcionamiento en la práctica bastante pobre, sólo en teoría).

El que las etapas de procesamiento se resumen de la siguiente manera:

1, en primer lugar encontrar la información correspondiente de este callejón sin salida;

Aquí se puede ver el proceso de blkby que conducía a un callejón sin salida, y luego ordenar la operación en nombre de la causa estancamiento. Cómo ver que este proceso es en los estados de funcionamiento particulares que conducen a ella? inputbuffer uso dbcc (SPID) a la vista. Aquí es donde evnetinfo conducen a la paralización declaración de acción.

2, entonces usted necesita para determinar dónde está el programa que realizó estas declaraciones, a continuación, comprobar si existe sp_who2, causando un comando de bloqueo, por ejemplo, el comando es borrado, a continuación, busque las operaciones relacionadas en el programa. Si el caso no afecta a la empresa, puede eliminar esta parte de la operación, o ser reemplazado por otros medios? O cambiar la sincronización de tareas, la optimización de esta parte de la operación y vuelve a intentarlo.

Al igual que la figura, de acuerdo con consejos de información, encontrar la instrucción de eliminación correspondiente, a continuación, lea esta declaración no afecta a la actividad principal, se elimina simplemente, y resolvió.

 

Hay varias preguntas:

1, el programa se está ejecutando estancamiento es normal? Si una pequeña cantidad de punto muerto, durante un período de tiempo, si el estancamiento se dará a conocer de forma automática? (Gran Dios dice será lanzado de forma automática)

2, reinicie el servicio de SQL Server es aliviar el estancamiento? Reiniciar el servidor?

3, la forma de evitar estos problemas en el desarrollo del programa? Cómo diseñar instrucción SQL para evitar este problema?

4, este programa ha estado funcionando 2--3 años, nunca ha sido un punto muerto, ¿por qué van a aparecer después de que el servicio de servidor SQL reinicio, sino también una presencia persistente.

También utilizo el Analizador de SQL, se puede ver el análisis de correlación del punto muerto, pero la sensación no captó esta herramienta.

 

Escribir una caótica poco, terminando paso a paso. Si tiene problemas similares, que pueden comunicarse entre sí a continuación.

 

Los cuales se refieren al estudio de los siguientes enlaces: https://www.cnblogs.com/yanggb/p/10944350.html 

Publicados 125 artículos originales · ganado elogios 9 · Vistas a 30000 +

Supongo que te gusta

Origin blog.csdn.net/jiezhang656/article/details/103167394
Recomendado
Clasificación