viernes, 26 de febrero de 2016

En Conclucion


CONCLUSIONES




Queremos resaltar el valor agregado que tiene el previo análisis o las pruebas de carga en un SMBD, ya que se demostro a través de esta prueba las diferentes variables que se deben tener en cuenta a la hora de colocar en marcha un sistema de almacenamiento o de transporte de información. Es por eso que un BDA o administrador tiene en si toda la responsabilidad de tomar las decisiones acertadas en llevar un control absoluto con respecto al rendimiento de todos y cada uno de los componentes que conforman el sistema. Hacemos una comparación de un sistema, como el funcionamiento de una filarmonica es decir los instrumentos deben estar totalmente afinados, y que tengan una buen batutero o director, en este caso el BDA. Para que al final las personas salgan alegres al escuchar un buena sinfonia y lleven este sentimiento en sus memorias, esto sucede en el ambito de una buena administración de un sistema de bases de datos, al darle la suficiente confianza a nuestros clientes de que su negocio está en buenas manos.

Herramientas para supervisar SQL Server


Herramientas para supervisar SQL Server


SQL Server y Windows incluyen varias herramientas para supervisar el rendimiento de un servidor. Entre estos elementos se encuentran los siguientes: el Visor de sucesos de Windows, el Monitor de sistema de Windows, la ventana Actividad actual del Administrador corporativo de SQL Server, las herramientas de Transact-SQL, el Analizador de SQL,Analizador de consultas de SQL Server y JMeter.
Todas las herramientas de supervisión del rendimiento utilizan recursos del sistema, por lo que es previsible que se produzca una sobrecarga en el rendimiento al utilizarlas.
Administrador de Tareas de Windows
En nuestro caso estamos utilizando la version Windows server 2008 R2 este seria el administrador de Tareas como vemos en la siguiente grafica:


Aplicación de Windows, que permite entregar en forma gráfica, el rendimiento de diferentes dispositivos del computador, tales como: CPU, Memoria, Disco y Red.

Monitor de Recursos de Windows
  • Pestaña CPU

En la pestaña CPU podemos analizar y detener los procesos y servicios actualmente en ejecución. Además se visualizan los procesos que utilizan más CPU, que es una de las posibles causas que explicarían una excesiva lentitud de nuestra máquina.

  • Pestaña Memoria
Se visualizan los procesos que actualmente están cargados en la RAM del sistema y el uso que se hace de la misma, Se puede determinar si hay algún proceso que este consumiendo excesiva memoria.





  • Pestaña de Disco
Se muestran los procesos que están realizando operaciones de lectura / escritura en el o los discos duros del computador. También se visualizan las unidades de almacenamiento instaladas en nuestro equipo. Con esta pestaña podemos observar bastantes variables, entre otras, el tiempo de respuesta del disco por cada proceso, también el total de bytes /seg leídos y escritos por cada aplicación entre otras muchas cosas.




  • Pestaña de Red
Se muestra en forma detallada información de los procesos que están ejecutando operaciones de red, los puertos que están abiertos y las direcciones IP a la que están conectados.





Visor de Sucesos de Windows


Utilice el Visor de sucesos de Windows para identificar sucesos que puedan estar causando cuellos de botella en el rendimiento. Con esta información podrá determinar qué sucesos o áreas del rendimiento conviene examinar con más detalle.

El Visor de sucesos de Windows 2008 R2 permite ver los registros de sucesos descritos en la tabla siguiente.

Tipo

Descripción

Registro de aplicación de Windows
Contiene los sucesos que registran las aplicaciones, como SQL Server. Por ejemplo, una aplicación de base de datos podría anotar un error de archivo en el registro de aplicación.
Registro de sistema de Windows
Contiene sucesos que registran los componentes de sistema de Windows. Por ejemplo, un error al cargar un controlador u otro componente del sistema durante el inicio del equipo se anotará en el registro de sistema.
Registro de seguridad de Windows
Registra los sucesos de seguridad de Windows 2000, como los intentos de iniciar una sesión en el sistema.



Monitor de Sistema de Windows con SQL Server

Cuando desee hacer un seguimiento de la actividad del servidor y obtener estadísticas de su rendimiento, utilice el Monitor de sistema de Windows. Puede usar esta herramienta para registrar el rendimiento de objetos como los procesadores, la memoria, la memoria caché, los subprocesos y los procesos a lo largo de un período o para observar la actividad del servidor en tiempo real. Esta herramienta gráfica proporciona funciones de gráficos, alertas e informes. El Monitor de sistema de Windows incluye muchos contadores, cada uno de los cuales mide algún recurso del equipo. Es posible ampliarlo de modo que las aplicaciones de servidor puedan agregar sus propios contadores de rendimiento. Durante la instalación, SQL Server agrega al Monitor de sistema de Windows contadores que permiten hacer un seguimiento de los siguientes elementos:
  • E/S de SQL Server.
  • Uso de la memoria por parte de SQL Server.
  • Conexiones de usuario de SQL Server.
  • Bloqueos en SQL Server.
  • Actividad de replicación.
También puede crear un máximo de diez contadores personalizados y asignarles valores. Cada contador puede supervisar cualquier información que devuelva una instrucción SQL o cualquier operación que se realice desde SQL Server, como la ejecución de un procedimiento almacenado de sistema.
SQL Server Management Studio  
Cliente que proporciona una interfaz gráfica para la instancia de SQLServer. Este software es gratuito. En los equipos está instalada la versión SQL Server Management Studio 2008 o tambien la version SQL Server 2014 con su respectiva version de Management Studio.

Ventana Actividad actual del Administrador corporativo de SQL Server.

Puede utilizar la ventana Actividad actual en el Administrador corporativo de SQL Server para ver información gráfica de cualquier instancia de SQL Server relativa a las conexiones y bloqueos de usuario, el número de procesos, el estado, los bloqueos y las instrucciones actuales que ejecutan los usuarios activos, así como para determinar qué objetos están bloqueados y los tipos de bloqueos presentes.
Informacion de Procesos de SQL Server

La ventana Actividad actual muestra información acerca de las conexiones abiertas. Permite ver quién se encuentra conectado actualmente y muestra la última instrucción ejecutada por el usuario. La ventana Actividad actual muestra información acerca de los bloqueos ordenada por identificador de proceso o por objeto.

Bloqueo e interbloqueos

SQL Server coloca bloqueos en las tablas o páginas de datos relevantes, lo que permite bloquear dichos recursos. La ventana Actividad actual muestra todos los recursos que bloquean otros procesos, así como cualquier interbloqueo que se haya producido.

Administración de procesos y bloqueos

Los administradores del sistema pueden ver información adicional acerca de un proceso seleccionado, enviar un mensaje a un usuario seleccionado o terminar un proceso seleccionado.
JMETER

Es una herramienta de carga para llevar acabo simulaciones sobre cualquier recurso de Software.
Inicialmente diseñada para pruebas de estrés en aplicaciones web, hoy en día, su arquitectura ha evolucionado no sólo para llevar acabo pruebas en componentes habilitados en Internet (HTTP), sino además en Bases de datos, programas en Perl, requisiciones FTP y prácticamente cualquier otro medio.
Además, posee la capacidad de realizar desde una solicitud sencilla hasta secuencias de requisiciones que permiten diagnosticar el comportamiento de una aplicación en condiciones de producción.
En este sentido, simula todas las funcionalidades de un Navegador ("Browser"), o de cualquier otro cliente, siendo capaz de manipular resultados en determinada requisición y reutilizarlos para ser empleados en una nueva secuencia.

Tareas de Supervisión habituales.

SQL Server proporciona herramientas que puede utilizar para examinar diversos aspectos de su rendimiento. Estas herramientas ofrecen distintos grados de detalle para ayudarle a aislar las áreas con problemas. Su objetivo debe ser determinar el factor que tiene un mayor efecto en el rendimiento. A menudo, para aislar el cuello de botella es necesario repetir varias veces este proceso de supervisión.
 Supervision del Sistema.
Al evaluar el sistema, obsérvelo primero desde una perspectiva más general, para asegurarse de que dispone de hardware suficiente para satisfacer los requisitos de las tareas que debe realizar. A continuación, valore los efectos de la configuración del sistema operativo y el diseño de la aplicación. Para este tipo de supervisión, puede utilizar:
  • Visor de sucesos de Windows.
  • Monitor de sistema de Windows.
Supervisión especifica de SQL Server
A continuación, supervise áreas específicas de SQL Server. Observe la actividad de SQL Server y la coherencia de los datos. Supervise la cantidad de bloqueos y conflictos por los recursos, y el uso de conexiones de usuarios. Para este tipo de supervisión, puede utilizar:
  • La ventana Actividad actual del Administrador corporativo de SQL Server.
  • Procedimientos almacenados del sistema e instrucciones de Transact-SQL.
  • Analizador de SQL.
Utilice instrucciones del comprobador de coherencia de la base de datos (DBCC, Database Consistency Checker) para asegurar que las estructuras internas de datos son correctas.
Rendimiento de consultas específicas
Por último, examine consultas específicas para evaluar su rendimiento. Entre los elementos que puede revisar se encuentran el uso de índices, el tiempo de CPU de una consulta y la E/S efectiva. Para este grado detallado de supervisión puede usar el Analizador de SQL, el Analizador de consultas SQL y el Asistente para optimización de índices.

Pruebas de rendimiento.

Una prueba de carga se realiza generalmente para observar el comportamiento de una aplicación bajo una cantidad de peticiones esperada. Esta carga puede ser el número esperado de usuarios concurrentes utilizando la aplicación y que realizan un número específico de transacciones durante el tiempo que dura la carga. Esta prueba puede mostrar los tiempos de respuesta de todas las transacciones importantes de la aplicación. Si la base de datos, el servidor de aplicaciones, etc. también se monitorizan, entonces esta prueba puede mostrar el cuello de botella en la aplicación. Otros componentes pueden evitar que la carga alcance este componente, lo que aumenta el tiempo que se tarda en completar la carga.
¿Por qué hacer pruebas para encontrar cuellos de botella?
Para que las pruebas de carga sean significativas, sería suficiente si simplemente quisiésemos poner fuerza bruta en la aplicación bajo testeo hasta que esta 'fallara' por algún lado. Pero ese es un objetivo poco ambicioso que a duras penas justifica el esfuerzo de montar un entorno de pruebas, crear pruebas y contar con un equipo de Testing. Si hacemos pruebas de carga las tenemos que hacer con un propósito claro: mejorar el rendimiento de la aplicación y en consecuencia, su escalabilidad, no simplemente nos debe valer el saber los límites de nuestra aplicación. Y para esto debemos ser capaces de detectar cuellos de botella. Esto es lo realmente importante de las pruebas de carga: detectar cuellos de botella. Saber que recursos hacen que nuestra aplicación no se ejecute más rápido y sobre todo, saber donde debemos centrar nuestro esfuerzo económico, bien en forma de más hardware o bien en forma de esfuerzos de optimización.
Decida que examinar.
Debe supervisar el uso de la memoria, el uso de la CPU, el rendimiento de la entrada y salida de disco, las conexiones de usuario y los bloqueos. Para determinar el origen de un cuello de botella, observe las cuestiones relativas al sistema antes de examinar las cuestiones referentes al cliente y a las consultas. Por ejemplo, los cuellos de botella relacionados con el sistema y ocasionados por el uso de los discos y la memoria pueden afectar al rendimiento general de toda la aplicación, incluidas las consultas individuales. La resolución de cuestiones como la hiperpaginación en disco, antes de examinar el rendimiento de una consulta en particular, resulta muy útil.
Conozca el intervalo de rendimiento aceptable.
Como ocurre con cualquier técnica para solucionar problemas, el conocimiento del grado de rendimiento aceptable ayuda a identificar las áreas problemáticas. Las cifras pequeñas pueden ser tan significativas como las grandes. Una cifra menor o mayor de lo esperado puede indicar un posible problema. En ocasiones, un problema en un área afecta desfavorablemente o disimula problemas en otra. Por ejemplo: Un componente puede evitar que la carga alcance a otro componente. La congestión de la red puede impedir que las solicitudes de los clientes lleguen al servidor. Los clientes pueden tener cuellos de botella que les impidan el acceso al servidor. Para descubrir los límites reales, puede simular una carga de trabajo en la BD, mientras supervisa el sistema con las diferentes herramientas que existen hoy en día.
Un cuello de botella es cualquier componente o actividad que limita el rendimiento. Todos los sistemas tienen cuellos de botella, pero uno de los objetivos de la supervisión de un servidor es localizar aquéllos que reducen el rendimiento por debajo de sus expectativas. Para ello, debe comprender la naturaleza y el funcionamiento interno de las operaciones.

POSIBLE ÁREA DEL CUELLO DE BOTELLA

EFECTOS EN EL SERVIDOR

USO DE LA MEMORIA

Si no se asignó o no hay disponible suficiente memoria para la BD, el rendimiento disminuirá. Los datos se deben leer en el disco, y no directamente en la caché de datos. Los sistemas operativos realizan una paginación excesiva intercambiando datos con el disco cuando son necesarias las páginas.

USO DE LA CPU

Un uso excesivo continuo de la CPU puede indicar que las consultas de diferentes transacciones SQL deben optimizarse o que es necesaria una actualización de la CPU.
La CPU controla los recursos del sistema y ejecuta los procesos de usuario. El principal objetivo con este dispositivo es lograr que no haya bloqueos de procesos para conseguirla. Si el sistema operativo, o los procesos de los usuarios, hacen muchas demandas de CPU, ésta se convierte en un cuello de botella. Esto suele ocurrir cuando hay muchas faltas de página o se realiza mucho swapping.


ENTRADA/SALIDA (E/S) DE DISCO

Las consultas de transacciones SQL se pueden optimizar para reducir la E/S innecesaria; por ejemplo, mediante el uso de índices.
Los discos tienen una velocidad de entrada/salida. Cuando se requieren datos a una velocidad mayor que ésta, el disco se convierte en un cuello de botella. Dependiendo de cómo se organicen los datos en el disco, se conseguirá reducir la probabilidad de empeorar las prestaciones. Los principios básicos que se deberían seguir para repartir los datos en los discos son los siguientes: Los ficheros del sistema operativo deben estar separados de los ficheros de la base de datos. Los ficheros de datos deben estar separados de los ficheros de índices Los ficheros con los diarios de operaciones deben estar separados del resto de los ficheros de la base de datos.

CONEXIONES DE USUARIO

Puede haber demasiados usuarios obteniendo acceso al servidor de forma simultánea, lo que disminuye el rendimiento.

BLOQUEOS DE CIERRE

Las aplicaciones diseñadas incorrectamente pueden causar simultaneidad de obstáculos y bloqueos, lo que genera tiempos de respuesta más largos y un menor rendimiento de las transacciones.

LA RED

Se convierte en un cuello de botella cuando tiene mucho tráfico y cuando hay muchas colisiones.
Las solicitudes de cliente pueden tardar más tiempo debido a una congestión de la red.


Deteccion de cuellos de botella en el rendimiento

El acceso en forma paralela o bien al mismo tiempo a los recursos del sistema, pueden provocar los cuellos de botella. Estos que son inevitables, existen en todos los software. Pero en esta ocasión, se hablará de los cuellos de botella que se producen en las Bases de datos. Éstos se pueden identificar en forma inmediata, cuando se produce una mayor demanda del recurso y este responde de manera ineficiente, entregando como respuesta un tiempo muy largo de ejecución. Los cuellos de botella, pueden corregirse.
CAUSAS DE LOS CUELLOS DE BOTELLA:
Estas son las causas de cuellos de botella que surgen durante la ejecución del sistema manejador de bases de Datos entre las que destacamos a continuación:
  • Recursos insuficientes que requieren componentes adicionales o actualizados.
  • Recursos del mismo tipo que no distribuyen de forma equilibrada las cargas de trabajo; por ejemplo, cuando un recurso monopoliza un disco.
  • Recursos que funcionan incorrectamente.
  • Recursos mal configurados.

OPTIMIZACION: ANALIZAR EL QUERY Y SU PLAN DE CONSULTA.
  • Optimizar el query
  • Crear un índice
  • Cargar parcialmente la tabla o tablas a memoria
  • Cargar el índice a memoria
  • Cambiar el esquema de bloqueos
  • Particionar la tabla
  • Considerar un rediseño de la base de datos.

Establecimiento de una referencia de rendimiento.

Cinco factores clave influyen en el rendimiento de una base de datos:
  • Carga de trabajo. El volumen de actividad del servidor.
  • Rendimiento. Número total de consultas en un intervalo de tiempo dado.
  • Recursos de sistema. Capacidad física del hardware del equipo.
  • Optimización. Diseño de la aplicación y la base de datos.
  • Conflictos. La competencia por los registros de datos.
El plan de rendimiento y las medidas de referencia deben considerar estas áreas. Cuando haya definido los parámetros de funcionamiento, así como los recursos, las cargas y los objetivos necesarios para el plan de rendimiento, deberá supervisar el sistema. Identifique y establezca la referencia de rendimiento a lo largo de un período. Realice mediciones para determinar:
  • Las horas de actividad máxima y mínima de la base de datos.
  • Los tiempos de respuesta de los comandos de proceso por lotes y consulta de producción.
  •  Los tiempos de ejecución de los procesos de restauración y copia de seguridad de la base de datos.
Una vez establecida la referencia, podrá comparar con ella el rendimiento real del servidor en cada momento y así determinar las áreas que requieren investigación. Las cifras que estén por encima o por debajo de la referencia indican las áreas en las que podría realizarse una investigación más detallada.

AREAS HABITUALES DE SUPERVISIÓN Y OPTIMIZACIÓN



AREAS HABITUALES DE SUPERVISIÓN Y OPTIMIZACIÓN

Pautas



Proceso: Conjunto de trabajo/Instancia de SQL Server
Supervisa la cantidad de memoria que el proceso de SQL Server emplea en una instancia de SQL Server.
Este contador debe ser mayor de 5.000 KB. En caso contrario, no habrá disponible memoria adicional para SQL Server.
SQL Server: Administrador de búfer: Proporción de aciertos de caché del búfer
Supervisa el porcentaje de páginas de la caché del búfer sin leer en el disco duro. No establece diferencias entre la memoria física y la memoria de archivos de paginación utilizadas para la caché del búfer.
Este contador debe ser mayor del 90 por ciento, ya que indica el número de páginas almacenadas en la caché.
SQL Server: Administrador de búfer: Páginas totales
Supervisa el número total de páginas de la caché del búfer incluidas las páginas de base de datos, libres y descartadas de otros procesos.
Un número bajo podría indicar una frecuencia elevada de E/S o hiperpaginación en disco. Considere la posibilidad de agregar más memoria.
SQL Server: Administrador de memoria: Memoria total del servidor
Supervisa la cantidad total de memoria dinámica que utiliza el servidor.
Si este contador indica, de forma regular, una cantidad alta en comparación con la cantidad de memoria física disponible, puede que se necesite más memoria.

Supervisión del uso de procesador y subprocesos
Para obtener un rendimiento óptimo del procesador debe haber un equilibrio entre el rendimiento y los tiempos de respuesta.

Rendimiento del Procesador
Al examinar el uso del procesador, debemos tener cuenta el tipo de trabajo que realizará la instancia de SQL Server. Si SQL Server debe realizar un gran número de cálculos, como consultas que requieran agregados o consultas limitadas a la memoria que no requieran E/S de disco, puede utilizarse todo el tiempo del procesador. En los sistemas multiprocesador deberá supervisar una instancia independiente de este contador en cada procesador. Para determinar el promedio de todos los procesadores, utilice el contador Sistema: % de tiempo de procesador total. Una tasa de procesador que se mantiene alta de forma continuada puede indicar que necesita realizar una actualización de CPU o agregar más procesadores. Asimismo, una tasa de utilización de CPU que se mantiene alta de forma continuada podría indicar un ajuste o un diseño deficientes de la aplicación.

Subprocesos
Cada instancia de SQL Server constituye un proceso de sistema operativo independiente. Las instancias de SQL Server 2000 emplean subprocesos de Windows y, en ocasiones, intraprocesos, para administrar estas tareas simultáneas de forma eficaz.
  • Los procesos son instancias de una aplicación, por ejemplo, SQL Server, que pueden tener una o varias tareas.
  • Los subprocesos son mecanismos que procesan las tareas y se utilizan para programar el tiempo en los procesadores.
  • Para lograr la máxima utilización de los procesadores, el sistema operativo Windows 2008 R2 cambia entre los subprocesos cuando un subproceso queda inactivo mientras espera a que una operación se complete, como una lectura o escritura en el disco duro. El cambio entre subprocesos se denomina cambio de contexto. Además, cada instancia de SQL Server mantiene un grupo de subprocesos para las conexiones del usuario. 
  • Los subprocesos de este grupo se denominan subprocesos de trabajo. Los cuellos de botella pueden identificarse cuando Procesador: % de tiempo de procesador se aproxima de forma regular al 100 por ciento y Sistema: Longitud de cola de procesador muestra varios procesos de la aplicación a la espera de ser procesados, o cuando el valor de Sistema: Cambios de contexto/Seg. es alto. Si Procesador: % de tiempo de procesador se aproxima al 100 por ciento y Sistema: Cambios de contexto/Seg. se aproxima a 8.000, considere la posibilidad de utilizar procesadores más rápidos, procesadores adicionales o de comenzar a utilizar intraprocesos.
  •  Un solo subproceso puede contener varios intraprocesos. Para habilitar el uso de intraprocesos dentro de un subproceso en SQL Server en lugar de utilizar varios subprocesos para tareas de SQL, cambie el valor de lightweight pooling a 1. Esto se denomina programación en modo de intraproceso. 
  • Al utilizar la programación en modo de intraproceso, SQL Server: „ Asigna los intraprocesos del sistema operativo Windows 2008 R2 desde un grupo de intraprocesos a las tareas del usuario, en lugar de asignar los subprocesos del sistema operativo Windows 2008 R2 a un grupo de subprocesos. „ Realiza todos los cambios entre intraprocesos, en lugar de permitir que el sistema operativo Windows 2008 r2 se ocupe de esta tarea.
Cuando SQL Server cambia entre intraprocesos dentro de un subproceso, Windows 2008 ahorra recursos, ya que no necesita cambiar entre modos. La sobrecarga asociada con la habilitación de la programación en el modo de intraproceso suele ser mayor que cuando se permite que Windows 2008 realice el cambio de contexto. Basándose en la referencia, debe asegurarse de que todos los cambios se prueban y tienen un efecto favorable.
La tabla siguiente enumera las descripciones y pautas para los contadores útiles de los objetos Sistema y Procesador:
Objeto: Contador
Descripción

Pautas

Procesador: % de tiempo de procesador
Supervisa el porcentaje de tiempo que el procesador emplea en procesar subprocesos no inactivos
El valor de este contador debe ser inferior al 90 por ciento. Si el valor es superior, reduzca la carga de trabajo, aumente la eficacia de la carga de trabajo o la capacidad del procesador.
Sistema: Cambios de contexto/Seg.
Supervisa el número de veces por segundo que el procesador realiza cambios entre subprocesos
En equipos con multiprocesador, si el valor de este contador llega a 8000 y el valor del contador Procesador: % de tiempo de procesadorestá por encima del 90 por ciento, considere la posibilidad de habilitar la programación en modo de intraproceso de SQL Server.
Sistema: Longitud de cola de procesador
Supervisa el número de subprocesos a la espera de utilizar el tiempo de procesador.
Este contador nunca debe superar de forma regular el valor de 2. Si éste es el caso, reduzca la carga de trabajo, incremente la eficacia de la carga de trabajo o aumente la capacidad o el número de procesadores de un sistema multiprocesador.
Procesador: %Tiempo privilegiado
Supervisa el porcentaje de tiempo que el procesador emplea del tiempo privilegiado en la ejecución de los comandos del núcleo del sistema operativo Windows 2000, como el procesamiento de solicitudes de E/S de SQL Server
Si se emplea un porcentaje significativo de tiempo de procesador en ejecutar comandos del núcleo del sistema y el valor de los contadores de disco duro es alto, considere la posibilidad de mejorar el rendimiento del subsistema de E/S del disco duro.
Procesador: %Tiempo del usuario
Supervisa el porcentaje de tiempo que el procesador emplea en ejecutar procesos del usuario, como el propio SQL Server.
Puede indicar que otros procesos o aplicaciones están ejecutando e impidiendo operaciones de SQL Server.
Supervisión de entrada y salida en el disco duro.
SQL Server usa llamadas de entrada y salida (E/S) de Windows 2008 r2 para leer y escribir en el disco, y administra cuándo y cómo se realiza la entrada y salida en el disco pero delega en Windows la realización de las operaciones de E/S subyacentes. El subsistema de E/S incluye el bus del sistema, tarjetas controladoras de disco, discos, unidades de cinta, unidades de CD-ROM y muchos otros dispositivos de E/S. Habitualmente, los discos representan el mayor cuello de botella de un sistema.

Supervisión de E/S de disco físico.
La supervisión de la entrada y salida en el disco duro le ayudará a determinar si la escritura y lectura de páginas supera la capacidad del subsistema de disco duro. Un subsistema de disco duro ocupado también puede indicar un exceso de entrada y salida de archivos de paginación provocada por una cantidad de memoria insuficiente. La tabla siguiente describe los contadores de rendimiento de objeto que puede usar para supervisar el rendimiento del subsistema del disco duro.

Objeto: Contador

Descripción

Pautas

Disco físico: %Tiempo de disco
Supervisa el porcentaje de tiempo que el disco duro emplea en atender las solicitudes de lectura y escritura.
El valor de este contador debe ser inferior al 90 por ciento, de forma regular.
Disco físico: Promedio de longitud de cola de disco
Supervisa el promedio de solicitudes de lectura y escritura que se ponen en cola.
El valor de este contador no debe ser superior al doble del número de discos del cilindro.
Disco físico: Lecturas de disco/seg.
Supervisa la tasa de operaciones de lectura
El valor de este contador debe ser inferior de forma regular a la capacidad del subsistema de disco duro.
Disco físico: Escritura de disco/seg.
Supervisa la tasa de operaciones de escritura.
El valor de este contador debe ser inferior de forma regular a la capacidad del subsistema de disco duro.
Si estos contadores de disco duro indican que está sobrecargando la capacidad del subsistema de disco duro, considere la posibilidad de:
  • Ajustar la aplicación o la base de datos para reducir las operaciones de E/S en el disco duro (como cobertura y mejora de índices, o normalización).
  • Aumentar la capacidad de E/S de disco duro del hardware mediante el uso de un disco duro más rápido.
  • Transferir algunos archivos a un disco duro o servidor adicional.
  • Agregar una matriz de discos duros.
  • Aumentar la cantidad de memoria, lo que podría contribuir a aliviar la hiperpaginación en el disco.

Supervisión de bloqueos.
SQL Server bloquea los recursos mediante distintos modos de bloqueo que determinan el tipo de acceso que las transacciones actuales tendrán a los recursos. El bloqueo de filas aumenta la simultaneidad, pero también la sobrecarga, ya que será necesario mantener más bloqueos en caso de que se bloquee un gran número de filas. El bloqueo de tablas es caro en lo que respecta a la simultaneidad pero produce una sobrecarga menor, ya que reduce el número de bloqueos que mantener.


Interbloqueos
Los interbloqueos pueden producirse cuando dos o más procesos esperan simultáneamente a que finalicen los bloqueos que ha establecido cada uno. Ninguno de los procesos liberará el bloqueo que mantiene hasta que pueda obtener el recurso que permanece bloqueado por el otro proceso. Cuando se haya identificado un interbloqueo, para finalizarlo, SQL Server elegirá automáticamente el subproceso (la víctima del interbloqueo) que puede romper el interbloqueo sin que se produzcan tiempos de espera. Puede utilizar la opción prioridad para definir el intervalo de tiempo durante el que SQL Server esperará entre la detección de un bloqueo y la declaración de que se trata de un interbloqueo.
Bloqueos de cierre.
La mayor parte de los problemas de bloqueo se producen debido a que un único proceso mantiene bloqueos durante un período prolongado, lo que causa una cadena de procesos bloqueados a la espera de que otros procesos liberen sus bloqueos. SQL Server no identifica los bloqueos de cierre y los resuelve automáticamente, lo que deja el recurso bloqueado. Debe supervisar la existencia de bloqueos de cierre para poder eliminarlos manualmente. Mediante la creación de una configuración de tiempo de espera de bloqueo en la aplicación podrá impedir que se produzcan bloqueos de cierre. Esto permitirá a la aplicación identificar la existencia de bloqueos de cierre y deshacer la transacción, en lugar de esperar indefinidamente o volver a emitir la instrucción bloqueada.
Administración de bloqueos.
El Monitor de sistema de Windows supervisa la actividad global de bloqueo del sistema mediante el Contador de objetos de bloqueo de SQL Server. Para trazar y registrar la actividad de bloqueo de forma detallada, usamos el Analizador de SQL. El objeto Bloqueos del Administrador corporativo de SQL Server proporciona información acerca de los bloqueos de SQL Server en tipos de recursos individuales. Además, puede supervisar la actividad de SQL Server mediante los procedimientos almacenados de sistema sp_who y sp_lock.
El procedimiento almacenado de sistema sp_who proporciona información de instantáneas acerca de los procesos y usuarios actuales de SQL Server, incluida la instrucción que esté ejecutándose e independientemente de que la instrucción esté bloqueada.
El procedimiento almacenado de sistema sp_lock proporciona información de instantáneas acerca de los bloqueos, incluido el identificador de objeto y de índice, el tipo de bloqueo y el tipo de recurso al que se aplica el bloqueo.
Es posible que el uso de sp_lock para presentar información de bloqueo no resulte práctico si se aplican y liberan varios bloqueos más rápido de lo que sp_lock puede mostrarlos. Tras usar una de estas herramientas para identificar el tipo de bloqueo y el identificador de proceso, o el objeto que lo causa, puede usar la ventana Actividad actual del Administrador corporativo de SQL Server para administrar el bloqueo.
Supervisión de consultas de bajo rendimiento.
Para solucionar un problema de rendimiento quizás se tiente la idea de optimizar únicamente el rendimiento del servidor en el sistema, por ejemplo, el tamaño de la memoria, ubicación, número y tipo de procesadores. Sin embargo, normalmente no es posible solucionar los problemas relacionados con consultas de bajo rendimiento de esta forma. Para ello debe analizar la aplicación, las consultas y las actualizaciones que la aplicación emite a la base de datos, y la forma en que las consultas y las actualizaciones interactúan con el esquema de base de datos.

Identificacion del rendimiento de las consultas.
El Analizador de SQL puede supervisar las consultas en función del tiempo transcurrido con el fin de identificar las consultas de bajo rendimiento del sistema. Para trazar las consultas de peor rendimiento, cree una traza que capture sucesos relacionados con las clases de suceso TSQL y Procedimiento almacenado, en concreto, RPC:Completed (Completo) y SQL: BatchCompleted (Proceso por lotes completado).
causas del bajo rendimiento en las consultas.
Las consultas y actualizaciones cuya duración se prolonga de forma imprevista pueden deberse a:
  • Comunicaciones de red lentas.
  • Consultas de Transact-SQL que transfieren una gran cantidad de datos entre el cliente y el servidor.
  • Memoria insuficiente para SQL Server.
  • Ausencia de estadísticas útiles.
  • Estadísticas obsoletas o ausencia de índices útiles.
  • Ausencia de creación de bandas de datos útiles.
  • Bloqueos de cierre o interbloqueos causados por transacciones de larga duración emitidos por otros usuarios.
  • Utilización de aplicaciones de proceso de transacciones y de ayuda a la toma de decisiones en el mismo equipo.