SQL trace - Userlinux.net

David explains us how to trace SQL queries in a very interesting post. Recommended.

SQL trace

29.May.2009 ~ 1 Comentarios ~ 1213 Lecturas
Traceando consultas SQL
Rating
David explains us how to trace SQL queries in a very interesting post. Recommended.

Comentarios


gravatar
04.Jun.2009
Y yo digo, ¿hay que meter el comentario en cada consulta, manualmente? Pues si utilizamos una envoltura para las consultas podemos utilizar la reflexión de clases (PHP5) para sacar estos datos automáticamente y generar consultas con estos comentarios (por cierto, funcionará en MySQL 4?):

class VerClientes extends Modelo {
Dao::getClientes(this);
}

class Dao {
public function getClientes($llamada) {
new Consulta("SELECT * FROM usuarios", llamada);
}
}

class Consulta {
public __construct($sql, $llamada) {
mysql_query($sql . "/*" . operaciones con $llamada);
}
}

En PHP4 podría hacerse una pequeña chapucilla: para conocer el archivo y el número de línea,

a) Se crea un tipo de error llamado TRAZA_SQL, por ejemplo
b) En la envoltura para consulta SQL (orientado a objetos o no) se lanza *siempre* un error tal que trigger_error("", TRAZA_SQL);
c) Se captura el error poniendo estableciendo al principio del documento un manejador (set_error_handler()), añadiendo la información de traza a la consulta SQL (habría que hacer parsear un poquito la consulta)

Cuando tenga tiempo lo probaré, es un hack interesante para el log de consultas lentas y/o que causan error, y me gusta la idea, pero meter manualmente esos comentarios (sobre todo el número de línea, que puede variar mucho) me parece muuuy aburrido.

Un abrazo.

Comentarios


Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Buscar

Cargando...

Últimos comentarios

  • Juan
  • Marina
  • Francisco
  • fon
  • minWi
  • isra
  • reidrac
  • r0sk
  • Rodrigo Rega
  • minWi
  • r0sk
  • reidrac
  • r0sk
  • deady
  • errece

Moneting

Valor de mi cuenta de Facebook según Moneting
Valor de mi cuenta de Twitter según Moneting

Tagcloud

mercurial twitt rsidenotes openbsd twitter humor frases nintendo films cumpleaños 2008 macosx vacaciones alemania_2006 sysadmin debian ps3 conciertos django barça bsd freebsd userlinux iphone ds lugo cake cakephp programación games bake personal bash meme rfilms mundial linux lucux league web hack blogs canción sidenotes blogsfera felicidades champions 2007 blog futbol juegos ubuntu mac deportes php apple mysql opinion seguridad ssh

Archivo

Social

Enlaces de interés