Bueno, vamos a hablar de un tema diferente que tiene que ver con cómo saber qué consultas o qué cosas
están ocurriendo en nuestro motor de base de datos.
Y esto es muy útil cuando ya tenemos la base de datos en producción y esa base de datos está siendo
cedida por mucha gente, como por ejemplo cuando tenemos un sitio web que usa Maisy y tenemos nosotros
que controlar porque tenemos.
Notamos que el sitio estaba lento porque notamos que hay mucha gente en base a nuestro Analytics.
Vemos que hay mucha concurrencia de gente en nuestro sitio y notamos que el sitio está lento.
Entonces, una de las cosas que nosotros podemos hacer es ver los procesos que están corriendo en nuestro
motor.
Quizás haya consultas que están muy pesadas, que no están optimizadas y hacen que nuestro motor esté
trabajando.
Además, la forma de poder hacerlo es viniendo en este caso a base de datos y podemos ver los procesos.
Pero vamos a ver que en definitiva lo que hace esto es correr una sentencia SQL.
Cuál es la sentencia?
Es ésta que vemos aquí.
Vamos a ahora a ver otra manera de hacerlo.
Pero fíjense que esto lo que en realidad nos está mostrando es cuál es el Leidy del proceso?
Cuál es el usuario que está corriendo?
En este caso, como yo estoy en una base local y no está accediendo a nadie.
No tenemos mucha información aquí y no tenemos en una base normal de producción.
Esto está lleno de registros uno debajo del otro y vamos a ver qué tipo de información podemos encontrar
el host en el caso de que estemos trabajando local.
Así, si tuviéramos trabajando de manera remota, estuviéramos conectados a un servidor remoto, no
os diría aquí él la dirección IP o la web regle de nuestro servidor remoto.
Cuál es la base de datos que está ejecutándose?
Porque recuerden que podemos tener muchas bases de datos.
Quizás alguien está tirando consultas sobre information esquema o sobre la base de datos MySQL o performance
esquema, que son distintas bases de datos que tiene nuestro motor.
Aquí nos va a aparecer la base de datos en la que se está trabajando en ese momento y el tipo de comando
puede ser un query, puede ser un proceso interno del motor que está trabajando.
Entonces nos va a decir el tipo de comando si es una query, me va a mostrar en info cuál es la query
y va a ser muy útil, porque nosotros en base a esto vamos a poder ver si, por ejemplo, se está ejecutando
una query determinada, vamos a acceder al código de la QR y vamos a poder ver que si es óptima no es
óptima, porque aquí tenemos el tiempo y el tiempo es crucial porque si nosotros vemos que esa query
sigue corriendo y que ha de a pesar de que aquí dice cero en lugar de cero, está diciendo que en lugar
de cero segundos está demorando, qué se yo, 500 segundos ya es algo que nos enciende la alarma de
que hay algo que no está optimizado en nuestro código o en nuestro desarrollo o en el o en las tablas.
Hay un índice que no hemos creado porque ya hay tiempos que nos enciende una alerta de por qué está
demorando tanto un simple C.L.
Recuerden que hay consultas SQL que pueden ser muy grandes con muchos saine de tablas que pueden tener
por ejemplo muchos grub.
El group by pueden tener mucho huer con muchos campos y quizás alguno de estos campos no esté optimizado.
Vamos a ver en el capítulo siguiente cómo consultar la efectividad de una consulta SQL, pero ahora
estamos viendo el show process list que lo vamos a hacer por línea comando para que lo entiendan también
el Estado se dice que está ejecutándose porque en este momento lo estoy ejecutando este listado que
se va.
Lo puedo ir refrescando en algunos algunas aplicaciones lo hace, le hacen un refresco automático.
En este caso nosotros lo estamos haciendo manual, simplemente dándole recargar y aquí me actualizará
la lista.
Muy bien.
El Estado puede ser executive o puede ser sleep.
Si dice sleep significa voy a escribirse de aquí para si dice sleep significa que la sesión quedó abierta,
que el comando ya se ejecutó y que está esperando.
Está dormido esperando una respuesta, esperando que alguien mate.
Esa.
Este.
Ese proceso.
Por ejemplo, en Amazon WebService es la parte de RDS, todo lo que es Arora Maisy.
Cuando uno trabaja con procesos, generalmente Amazon deja esos procesos abiertos, los deja en el limbo.
Esas sesiones que o que hubo uno las tiene que matar luego con algún script, con algo, porque quedan
en sleep y empiezan a consumir recursos.
Cada una de las sesiones ocupan recursos en memoria y hacen que nuestros recursos en algún momento,
si no se matan, estos procesos colapsan.
Pero estamos hablando solamente de Amazon.
Hago el comentario porque me toca trabajar con eso y es una de las características que estamos viendo.
Entonces, volviendo a nuestro en nuestra solapa procesos, lo que hace es darnos una información de
todo lo que está corriendo en nuestra base de datos.
Vamos a ir a la línea de comando y aquí vamos a hacer un show process list.
Y esto es lo que ejecutó eso que acabamos de ver.
Si yo ejecuto esto me trae la misma información y me trae simplemente el show process list.
Fíjense que ahora ya no me trae esa consulta SELECT porque me la traía cuando yo estaba parado aquí.
Que este esta solapa ejecuta Eldad ejecuta de otra manera, solamente trae algunas columnas.
En cambio yo aquí le estoy diciendo que me traiga todo aquí o hay un evento por ejemplo que nosotros
tenemos este.
Nosotros tenemos corriendo el evento desde que lo hemos creado.
Queda el evento en el motor esperando, queda en estado waiting y fíjense la cantidad de segundos que
está corriendo.
Hace 169 mil 100 segundos que está ese demonio.
Se le dice así demonio es algo que va corriendo.
Es una palabra muy usada en Linux.
Un demonio es algo que está corriendo en batch solapados sin que nadie lo vea y que está ejecutándose
constantemente viendo que se cumpla una condición o se llegue a un tiempo determinado para ejecutar
un proceso, un programa, un archivo o lo que sea.
Entonces el show process list les va a permitir.
Si ustedes están trabajando ya con una especie de administradores de bases de datos, les va a permitir
saber qué procesos están corriendo en el servidor de la base de datos en el motor y van a poder tomar
decisiones, matar procesos.
Ahora nosotros tenemos el Heidy de proceso.
Cómo se mata un proceso?
Se coloca la palabra kill y el número de proceso.
En este caso nosotros tenemos un proceso que es el proceso 8.
Ponemos el ocho y hay que ver si me deja.
No fue interrumpida porque en realidad yo ya lo corrí.
Aquí me muestra simplemente lo que he corrido, pero ya este proceso no está en memoria.
Cuando ustedes ven que hay algún proceso en Estados LEP que está consumiendo muchos recursos y que hace
muchos segundos que se están ejecutando, ustedes lo van a poder matar.
Simplemente fíjense que ahora me me actualizó, no me hizo nada, lo van a poder matar con esta instrucción,
con la instrucción Kill y el Heidy de Proceso, esto les va a permitir liberar recursos y trabajar normalmente.
Bueno, lo que vamos a ver en el próximo capítulo es cómo analizar consultas SQL para que el motor me
diga el motor trabaje y me diga si esas consultas que yo estoy creando son óptimas o no y lo vamos a
ver en el próximo capítulo.
Nos vemos ahí.