Te presento mi nuevo sitio web: ---------> "El Futuro de los Datos"

Aunque SQL Server Si!, seguirá activo, iré bajando la frecuencia de publicación.
Si quieres conocer todas las novedades que vaya publicando, te recomiendo que lo visites y te suscribas. Tengo un regalito para mi audiencia:

Tu primer Dashboard en "piloto automático" listo en 30 minutos
Sólo para suscriptores.
.
Mostrando entradas con la etiqueta Performance. Mostrar todas las entradas
Mostrando entradas con la etiqueta Performance. Mostrar todas las entradas

9 dic 2011

SQL Server va lento, tengo problemas de rendimiento ¿Y ahora qué?

He escuchado esta pregunta en muchas ocasiones, ya sea en foros o directamente en clientes, donde quienes se encargan de administrar SQL Server son DBA “por accidente” o porque han migrado desde otro gestor de base de datos y ahora tienen que lidiar con algo totalmente nuevo. El factor común es que son personas con poca o nula experiencia con SQL Server y se encuentran con una situación en la que no saben qué hacer cuando el usuario se queja de que el servidor no responde.

Si ya han usado SQL Server Management Studio (SSMS) seguramente conozcan el informe de actividad (“Activity Monitor”) al que se accede desde el menú contextual sobre la propia instancia. Este informe nos permite ver varias cosas, como puede ser el uso del procesador o del disco, el número de peticiones por segundo, las conexiones activas, etc. Sin embargo no nos dice qué le está “doliendo” a nuestra instancia en ese momento, y eso en el caso de que consigamos visualizarlo, ya que cuando el servicio no responde, muy probablemente tampoco lo vaya a hacer este informe.

Si llevamos un poco más de tiempo seguramente hayamos oído hablar de los procedimientos sp_who, sp_who2, pero ninguno de ellos nos va a aportar mucha más información que la de ver las conexiones que tiene abiertas nuestra instancia. Incluso podríamos hacer uso de sp_lock, pero sólo nos serviría si la causa del problema fueran los bloqueos.

Sin embargo, desde la versión 2005 tenemos a nuestra disposición las vistas y funciones de administración dinámicas, las DMV. Son una fuente casi inagotable de información sobre nuestro SQL Server de las que podemos sacar mucho provecho si hemos dedicado un tiempo a estudiar qué nos ofrecen cada una de ellas.

Y cómo no, una de estas DMV nos va a permitir conocer rápidamente por qué las peticiones que le llegan al servidor no están respondiendo en un tiempo razonable: sys.dm_os_waiting_tasks. Tal como dice la propia ayuda, esta DMV “devuelve información sobre la cola de tareas que están esperando en algún recurso”. La información a la que se refiere es el tiempo que lleva esperando (wait_duration_ms), el recurso por el que está esperando (resource_description) y si es por un bloqueo, la sesión que le está bloqueando (blocking_session_id). También nos informa de lo más importante: el recurso por el que está esperando (wait_type).

Hay multitud de tipos de espera (wait_type), de razones por las cuales una petición puede tener que esperar por alguna causa: el disco, la memoria, la CPU, bloqueos, etc. (en http://msdn.microsoft.com/es-es/library/ms179984.aspx tenemos la lista completa de estas razones). Pues bien, una vez que tenemos localizadas la razón (o razones) por las cuales las peticiones no son ejecutadas en un tiempo prudencial, es cuestión de investigar más a fondo qué significan esos conceptos (que al principio puedan resultar extraños) y, sobre todo, tratar de poner soluciones.

Y si pensáis que estaría bien poder obtener más datos sobre las peticiones que están esperando, no tenemos más que empezar a investigar qué otras DMV existen (http://msdn.microsoft.com/es-es/library/ms188754.aspx) y que nos puedan interesar para obtener dicha información: qué instrucción es lo que estaba ejecutando en ese momento, en qué base de datos, qué login, desde cuándo, número de lecturas, etc.

Eso, o “aprovecharnos” del trabajo de personas de la comunidad que de forma desinteresada nos cede su tiempo y esfuerzo. Una de estas personas es Adam Machanic (blog | twitter), reconocido experto en SQL Server, que nos regala mediante su procedimiento sp_whoIsActive una forma fácil y rápida de obtener toda la información (y más) que podamos necesitar acerca de qué es lo que le puede estar pasando a nuestra instancia en un momento dado.

Por cierto, si tenéis más inquietudes, os recomiendo que analicéis el código de este procedimiento: es un magnífico ejemplo de cómo deberían estar escrito todo el lenguaje TSQL que encapsulemos en algún objeto de una base de datos (procedimientos, funciones, vistas)

Referencias:

· SQL Server 2005 Performance Tuning using the Waits and Queue. Aunque el título hable de la SQL 2005, es perfectamente válido para cualquier versión posterior, incluso hasta para SQL Server 2000. Nos enseña una metodología de análisis de rendimiento basada en los tipos de espera. Imprescindible

· Wait statistics, or please tell me where it hurts. Artículo de Paul Randall (blog | twitter), antiguo miembro del equipo de desarrollo de SQL Server, en donde explica más detalladamente alguna de los tipos de espera más comunes, así como las soluciones a aplicar

Este post es una colaboración de Carlos Sacristán.

Gracias Carlos, esperamos seguir disfrutando de tus aportaciones a este blog :)

24 jun 2011

Cursos de SQL Server Avanzados

Si has visto los videos gratuitos que hay en mi video blog sobre Cursos de SQL Server y estás interesado en profundizar en dichas materias, te recomiendo los cursos que ofrecemos a través de la empresa para la que trabajo, SolidQ.

En SolidQ University tenemos un amplio catálogo de cursos avanzados, tanto presenciales como online, impartidos por profesionales con amplia experiencia y dotes de comunicación, contando con algunos de los mayores expertos nacionales y mundiales en la materia.

En esta ocasión voy a comentar la relación de cursos sobre Administración e implementación de SQL Server (Database Engine) que tenemos actualmente. En primer lugar os muestro los relacionados con la parte de administración:

Y estos son algunos de los relacionados con la parte de implementación:

Como bien sabéis las áreas de administración e implementación van muy ligadas y es conveniente dominar ambas para obtener un rendimiento óptimo de nuestros servidores con SQL Server.

También comentar que conforme van saliendo actualizaciones y nuevas versiones del producto vamos actualizando los materiales y creando nuevos cursos. Actualmente ya estamos trabajando en la preparación de materiales para la siguiente versión de SQL Server.

Aunque el material está en inglés en muchos casos, los impartimos en español si así se solicita, así que el idioma no será una barrera :)

Aprovecho también para informarte de que tenemos una revista gratuita, editada en inglés, español y portugués. Ofrecemos contenido de muy buena calidad, no dejes de suscribirte y descargarla cada mes. Accede a SolidQ Journal.

12 abr 2011

Webcast: Cómo funciona el Query Optimizer

El próximo miércoles 13 de abril tendremos el primer webcast sobre SQL Server de la serie programada para este primer semestre de 2011 por PASS Spanish Group:

Cómo funciona el Query Optimizer
Descripción: Esta sesion describe cómo funciona el Query Optimizer y los pasos más importantes que SQL Server ejecuta desde que recibe un query hasta que un plan de ejecución es generado.
Ponente: Benjamín Nevarez
Link de registro

Nos vemos :)

Siguenos en:

PASS Spanish Group en Facebook
PASS Spanish Group en Linkedin

13 ene 2011

SQL Server Day 2010

El pasado mes de diciembre se celebró el “SQL Server Day 2010”, y ya tenéis disponibles los videos de las sesiones. Si no pudisteis asistir aprovechad la oportunidad, y acceder a las sesiones en diferido :)

SQL Server Day 2010 (videos)

Opening Keynote by Donald Farmer

SSIS Data Flow scripting by Nico Jacobs

Hyper-SQL, Running SQL Server in a virtual environment by Karel Coenye

Implementing Common Business Calculations in DAX by Chris Webb

BI in the cloud: Dream or reallity? by Nico Verbaenen

Comparing PowerPivot with Analysis Services by Chris Webb

SQL CLR Performance

Is it a Bird? Is it a Plane? No! It’s your database in the cloud! by Dirk Gubbels and Wesley Backelant

Track changes the easy way with Change Data Capture by Dennis Herremans

Closing Keynote by donald Farmer

14 nov 2008

SQL Server 2008 24 hours

SQL Server 2008 24 hours es una nueva sección del portal de Microsoft SQL Server 2008 donde encontraréis una serie de webcasts donde cuentan un caso ficticio de una empresa llamada CONTOSO (CONTainer Overseas Shipping Operation) LTD, allí se explica en qué consiste su negocio, y las diversas soluciones que han adoptado usando la tecnología Microsoft, y más concretamente SQL Server. Allí encontraréis diversas secciones, aunque aquí nos vamos a centrar concretamente en la que se dedica a Business Intelligence, llamada Intelligent, donde tenéis diversos documentos y una serie de webcasts muy interesantes:

  • Data Warehousing Scale and Performance
  • Data Warehousing Management
  • Upgrade Your Database
  • Performance Troubleshooting
  • Scale Your Business
  • Analysis Services Design and Performance Improvements
  • Data Mining

Espero que os resulte interesante.

29 abr 2008

Reporting Services: dos formas de realizar un mismo informe

Este artículo muestra un ejemplo que permite conseguir un mismo informe utilizando dos técnicas diferentes, por un lado lo realiza creando un subinforme y mostrando informe y subinforme en un mismo report, y por otro utiliza diferentes objetos para conseguir mostrar la misma información, haciendo una comparativa entre ambas formas. Este es el artículo:

Same Report but Different Methods in SQL Server Reporting Services

24 abr 2008

Optimización de consultas en Analysis Services 2005

Este documento recopila las 10 mejores prácticas para la mejora del rendimiento en Analysis Services 2005. Además incluye una serie de links muy interesantes para conseguir dicho objetivo.

Descarga el documento: Analysis Services Query Performance Top 10 Best Practices

Google