mytop, un top para mysql

Base de datosDesarrollada por Jeremy Zawodny, mytop es una herramienta que a través de la consola monitoriza los procesos y el rendimiento de una base de datos MySQL. Para instalarla como siempre utilizaremos apt:
sudo apt-get install mytop

Una vez instalada para empezar a monitorizar una base de datos ejecutaremos la aplicación pasandole tres argumentos, la base de datos, el usuario y la contraseña, un ejemplo:
mytop -d base_de_datos -u root -p password

Para el resto de argumentos visitar el siguiente enlace.

Aquí tenéis un ejemplo de mytop funcionando:

mytop, un top para mysql

Una vez ejecutado, existen diferentes opciones:

  • ? - muestra la ayuda
  • p - pausa
  • q - como siempre para salir del programa
  • s - cambia el retardo hasta el próximo refresco. Por defecto son 5 segundos
  • k - mata un hilo

Para más combinaciones visitar este enlace.

Ya para terminar, si lo que queréis es no tener que especificar argumentos al ejecutar mytop, tendréis que crear el fichero de configuración .mytop en vuestro home y especificar la siguiente información:
user=root
pass=
host=localhost
db=test
port=3306

Más información sobre mytop

Monta tu distribución Eclipse en cuestión de segundos

Icono EclipseHasta hace poco pensaba que Zend Studio era el mejor entorno de desarrollo para programar en PHP, sobretodo porque estaba desarrollado por Zend. Todo esto hasta que conocí EasyEclipse, un proyecto basado en Eclipse, que ofrece diferentes distribuciones para varios lenguajes de programación. Tienen, por ejemplo, una distribución para PHP, otra para Ruby, Python, e incluso una llamada LAMP que incluye todos estos lenguajes juntos.

Bueno al grano que siempre me enrollo demasiado. Hoy mi compañero de trabajo Miguel Ángel me ha dejado el siguiente enlace en mi del.icio.us:

Get Eclipse! Simple, fast, on demand [beta]

Montando una distribución Eclipse en cuestión de segundos

Al comprobarlo me he quedado boquiabierto. Se trata de un servicio Web en el cual podemos montar nuestra propia distribución Eclipse en cuestión de segundos. Simplemente tenemos que ir seleccionando los plugins que queremos incorporar en nuestra distribución, para finalmente descargarla y disfrutar de un entorno de desarrollo a nuestro gusto.
Más de uno estará pensando que todo esto ya se puede hacer en Eclipse instalando los plugins independientemente, y es cierto, solo que Eclipse no administra como es debido las dependencias de los paquetes y , por ejemplo, para instalar un plugin uno tiene que tener varios paquetes que a su vez necesitan la instalación de otros, y claro, con tanto paquete el proceso se vuelve muy pesado y largo. Esta Web resuelve el problema, ya que simplifica la instalación incluyendo directamente en la distribución los paquetes que necesita cada plugin seleccionado por el usuario, vamos como APT en GNU/Linux.

Para que os hagáis una idea de una distribución, esta es la que acabo de hacer:

En cuestión de segundos he creado un entorno de desarrollo de lo mas completo, que incluye todo lo que necesito para poder programar cómodamente. Seguro que se podrían añadir más funcionalidades, pero esto ya es cuestión de ir probando más plugins.

Borrando un número determinado de registros en SQL Server

Icono consolaHoy no se porque motivo se ha llenado la base de datos de registros duplicados. Lo curioso, o quizás no, es que al realizar una consulta para visualizarlos, la base de datos en este caso SQL Server, se quedaba colgada.

Todo pintaba a un bucle infinito de inserciones, no se como ni quien había cometido el error, pero al ver que se colgaba la base de datos lo primero que se me ha ocurrido ha sido consultar un número determinado de registros mediante un TOP, un comando parecido al LIMIT de MySQL:

SELECT TOP 10 * FROM tabla WHERE id_tipo = 1

Efectivamente usando este comando he podido ver 10 registros de la tabla. La duda que tenía era como borrar un número determinado de registros en SQL Server ya que eliminándolos todos a la vez también se colgaba la maravillosa base de datos. La idea que tenía era meter en un bucle un borrado de un número determinado de registros, sé que para MySQL la sintaxis es la siguiente:

DELETE FROM tabla WHERE id_tipo = 1 LIMIT 10

Es una pena pero en SQL Server LIMIT no funciona pero menos aún funciona un borrado usando TOP:

DELETE TOP 10 * FROM tabla WHERE id_tipo = 1

La solución que he encontrado es la siguiente:

DELETE tabla FROM (SELECT TOP 10 * FROM tabla WHERE id_tipo = 1) AS temp WHERE tabla.id_tipo = temp.id_tipo

Lo que hacemos es una tabla temporal a partir de una subconsulta y luego le indicamos en la cláusula WHERE que identificadores debe de eliminar igualando los registros de la tabla temporal a la tabla final.