Todo administrador de base de datos debe conocer la importancia de tempdb en el funcionamiento de SQL Server y debe disponer de las herramientas necesarias para monitorizarla y realizar un diagnóstico apropiado en situaciones dónde ésta se vea afectada.

¿Qué es tempdb?

Cada vez que instalamos SQL Server, por defecto, se instalan las bases de datos de sistema (master, tempdb, model y msdb), las cuales son esenciales para el correcto funcionamiento del motor de bases de datos.

tempdb databases

Una de las bases de datos más importante en SQL Server es tempdb, la cual sirve como una herramienta de trabajo temporal para los usuarios que se conectan a SQL Server en cuestiones como objetos temporales (tablas, índices, tablas, variables, o cursores por nombrar algunos). También contiene objetos internos que se necesitan para utilizar algunos operadores de consultas, como ordenaciones, cursores, operadores hash, etc. De esta manera podríamos afirmar que, cuando ejecutamos una consulta en nuestro SQL Server, ésta es muy probable que haga uso de tempdb.

¿Qué problemas afectan a tempdb y cómo podemos debemos proceder?

Como comentábamos anteriormente, el nivel de criticidad de esta base de datos exige que dispongamos de un sistema que la esté monitorizando constantemente y que nos alerte de cualquier anomalía en su funcionamiento, además de disponer de herramientas especializadas para su correcto análisis.
Entre los problemas más recurrentes nos podremos encontrar con que los archivos de datos han llegado a su límite de crecimiento, ya sea porque no se les permite crecer más o porque se ha llenado del disco que los contiene. En un caso como éste, nos encontraríamos con un mensaje indicando que no se pueden insertar datos en tempdb debido que su Filegroup está lleno (Could not allocate space for object “<temporary system object: 2666378339965272064>” in database “tempdb” because the “PRIMARY” filegroup is full. Create disk space by deleting unneeded files, dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup).

tempdb databases download

Otro problema bastante frecuente es el crecimiento del log de transacciones de tempdb debido a una transacción abierta, la cual se está ejecutando sobre tempdb y no permite que el log se vacíe.

Análisis de Tempdb con Power BI

Desde SolidQ disponemos de estos métodos y herramientas para la correcta monitorización y diagnóstico de incidencias relacionadas con tempdb y, como veremos a continuación, una de estas herramientas es Power BI.

¿Necesitas ampliar tus conocimientos en Power BI para impulsar tu proyecto?

Tanto si eres usuario de negocio sin experiencia y quieres dar tus primeros pasos en el Business Intelligence como si eres experto y quieres profundizar en tus conocimientos, tenemos algún curso para ti. Comprueba nuestro catálogo de formación en Power BI aquí.

Voy a echar un vistazo

Power BI como herramienta de análisis

Power BI es una herramienta de análisis empresarial que nos permite unir datos de diferentes fuentes, llevar a cabo el análisis de éstos y presentar este análisis a través de gráficas y paneles. Entre sus principales características encontramos:

  • Nos permite importar datos desde varios orígenes y modificarlos a voluntad.
    • Nos proporciona una manera sencilla de cruzar datos, hacer cálculos o realizar gráficas personalizadas.
    • Nos permite trabajar con los datos de origen las veces que sean necesarias, por lo que la información estará actualizada.
    • Podemos interactuar con las tablas y gráficas, filtrando valores o métricas para poder visualizar la información de manera personalizada.
  • Para descargar Power BI Desktop, solamente tendremos que acceder a la dirección https://powerbi.microsoft.com/es-es/downloads/  y en unos pocos pasos tendremos nuestra aplicación lista para trabajar con ella.
Análisis de Tempdb con Power BI

Como hemos comentado anteriormente, la base de datos del servicio SolidQ Flex contiene los datos relativos al uso de tempdb sobre las instancias de los entornos a monitorizar. Estos datos se pueden consultar de manera sencilla por medio de una consulta prediseñada por nuestro equipo (los operadores pueden acceder a la última versión de ésta en nuestro repositorio), sobre la cual solamente tendremos que indicar el nombre del servidor y de la instancia en cuestión y el intervalo de tiempo que nos interesa analizar. También los clientes suelen acceder a estas bases de datos, por lo que sirva este artículo también como ejemplo de utilización de los objetos internos de las BBDDs de SolidQ Flex.
El procedimiento es bastante sencillo. Para empezar, copiamos el código de la consulta a una ruta local y editamos los parámetros @hName, @iName, @StartDate y @EndDate, lo cuales hacen referencia al nombre del servidor, nombre de instancia, hora de inicio y hora de finalización, respectivamente. Desde este link podremos acceder al código completo.

Análisis de Tempdb con Power BI
tempdb power bi sql code

Una vez tenemos la consulta lista, la ejecutamos sobre la instancia de SolidQ Flex en el entorno del cliente y guardamos los datos en un archivo con extensión .txt. El resultado se verá como en la siguiente captura.

Análisis de Tempdb con Power BI

Los siguientes pasos consistirán en importar y analizar estos datos en la plantilla de nuestro Power BI. Para ello accederemos a la plantilla llamada “SolidQ_TempDB_Hunter_E-DBA_V1.4.pbit” e indicaremos el nombre del archivo a importar y la ruta dónde está ubicado.

tempdb power bi sql txt
tempdb power bi sql pbix

En la siguiente captura podemos ver el resultado final con los datos ya importados y la gráfica generada a partir de éstos. Estos datos fueron capturados a partir de un caso real, en el cual tempdb alcanzó unos 81 GB debido a una transacción abierta.

Análisis de Tempdb con Power BI
  1. A modo explicativo, pasamos a indicar cada una de las partes de nuestra gráfica:
    En esta parte de la gráfica, podemos ver intervalos de crecimiento de tempdb, la cual, entre las 8 AM y las 9 AM tempdb, pasó de ocupar 44 GB a 81 GB.
  2. En la parte superior podemos ver los distintos Login que han hecho uso de tempdb, diferenciados por colores.
  3. La lista de procesos ejecutados se puede ver justo debajo de la gráfica. En este apartado, daremos importancia a las columnas “Max of MBTotal”, “Login_Name” y “Query_text”.
  4. También disponemos de una serie de filtros con los cuales podemos seleccionar la hora, TranSeqNum, Login_name, HostName e InstanceName.
  5. En las pestañas de la parte inferior, podemos cambiar las métricas de la gráfica: por Login, la cual nos enseña el consumo de tempdb realizado por los distintos usuarios; por Sesión, el cual es igual al anterior, pero diferenciando por el consumo realizado por cada proceso; y el llamado TempDB_Hunter, el cual nos indica el consumo diferenciando entre procesos de usuarios y de sistema.

Por Login:

tempdb power bi sql pbix report login

Por ID de sesión:

Análisis de Tempdb con Power BI

TempDB Hunter

tempdb power bi sql pbix report hunter

6. Por último, en la parte superior izquierda, podemos ver tres iconos que hacen referencia a Reports, Data y Model. El primero es el que nos enseña la gráfica, la cual ya hemos explicado; el llamado Data nos proporciona una tabla con todos los datos recogidos desde SolidQ Flex.

Análisis de Tempdb con Power BI

El aspecto más importante de esta pestaña es nos permite acceder a la columna “full_query_text”, en la cual podemos ver el código entero de cada consulta y copiarlo para su posterior análisis.

La utilización de Power BI, sumado a otro elemento igual de importante como son las bases de datos de SolidQ Flex, supone una gran ventaja a la hora de analizar esta clase de problemas que afectan a tempdb y, en consecuencia, a nuestra instancia de SQL Server. Cabe resaltar la facilidad y rapidez con la que recopilamos y visualizamos los datos, puesto que el proceso nos supone seguir una serie pasos que podemos realizar en unos pocos minutos. Además, con toda la información recopilada podemos elaborar un informe bastante completo sobre este incidente, permitiendo al cliente ver cuál ha sido la causa del problema y llevar a cabo una toma de decisiones adecuada para evitar que vuelva a suceder.

¡Has llegado al final! Parece que te ha gustado nuestro post sobre BI

Recuerda que, tanto si eres usuario de negocio sin experiencia y quieres dar tus primeros pasos en BI como si eres experto y quieres profundizar en tus conocimientos, tenemos algún curso para ti. Comprueba nuestro catálogo de formación en Power BI aquí.

Voy a Echar un vistazo
0 Shares:
Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

You May Also Like
Leer más

Versiones de datos: Modelado Dimensional

En esta entrada se expone con un ejemplo la importancia de tener un registro temporal en los cambios que pueden ir realizándose en nuestro modelo. Con esto queda ilustrado el concepto de Slow Changing Dimensions estudiado con anterioridad.
Leer más

Operador unario y jerarquías padre-hijo en SSAS MD

Recientemente nos hemos visto involucrados en un proyecto SSAS Multidimensional en el que existía una dimensión de cuentas padre-hijo bastante compleja y con un operador unario por en medio. Es por esto que nos hemos decidido a describir brevemente la implementación por defecto de SSAS y la que utilizamos finalmente para mejorar el rendimiento.
Leer más

¿Qué es Machine Learning?

Iníciate en el Machine Learning: ¿qué es? ¿qué tipo de problemas puedo resolver? ¿cómo puede beneficiar mi negocio? ¿cómo comienzo a implementar esta tecnología? En este artículo nos adentraremos en el machine learning dirigido a los negocios y sus principales problemas. Aprende el concepto básico y sus aplicaciones...