Como puedo hago esto?
Página generada en 0.65813601 segundos (53.86% PHP - 46.14% MySQL) con 26 consultas a la bd.
esto es lo que sale en la parte de abajo de la pagina de foros del web y me interesaria saber como se hace.
| |||
Mysql tiene algunas funciones para obtener datos estadísticos sobre (por ejemplo) el nº de consultas realizadas hasta el momento desde que se inició .. Toda esa información la puedes obtener ejecutando una consulta (mysql_query() ..) del tipo "SHOW ..." donde los "..." pueden ser vários según los datos que requieras. mas info sobre este punto en: http://www.mysql.com/doc/en/SHOW_STATUS.html Eso sería una solución.. Pero .. si te pones a pensar un poco y estudias que es lo que deseas veras que es cosa de tomar tiempos de inicio y de fin de una llamada a una función y de contar cuantas veces se llama a esa función. La función en concreto no es más ni menos que: mysql_query() ... Si lees la documentación de PHP sobre dicha función, verás que SÓLO puede ejecutar UNA consulta SQL a la BD (a la vez .. no adminte ";" para separar consultas ..) (en este caso Mysql) a la vez .. con lo cual lo tienes más fácil para saber cuantas consultas se han hecho a tu BD .. A todo esto .. para hacer una "consulta" (del tipo que sea: SELECT, INSERT, UPDATE, DELETE .. etc) se ha de "PASAR" por esa función ... Ahora .. ¿como haces para llevar toda esa contabilidad de llamadas a esa función cada vez que tienes que usarla? .. Bien, si en lugar de en tus scripts usar: mysql_query("SQL ...."); que es la función de PHP nativa para hacer una consulta SQL a Mysql .. Usas una función tuya propia que -a su vez- llame a esa función .. podrás "meter" todo la lógica de contabilidad de tiempos o de simple conteo de ejecuciones de esa funcion (lo que implica de "consultas" (query's) ejecutadas) .. Ejemplo: Código PHP: Y .. en lugar ahora de llamar a mysql_query() .. llamo a mi función que "de paso" me hará las estadísticas .. Código PHP: El tiempo que tarde PHP usa la misma técnica: Toma el tiempo al inicio de tu escript (en microsegundos) y al FINAL del script (incluido la lógica de consultas a tu BD que puedas hacer) .. Resta el tiempo que obtendras "total" al del SQL que ya tienes en las variables mencionadas y tendrás los totales de SQL y de PHP (y el total en general) ... Ahí aplicas algo de matemáticas y saca tus porcentajes .. Todo esto no es más que "la base" .. Si usas cualquier classe de abastracción de BD ya (lease ADOdb .. ezSQL o alguna própia) tal vez ya incluyan esos métodos para hacer el cálculo del tiempo y nº de consulas ejecutadas. Para conseguir el objetivo de todo esto pasa por "centralizar" tus llamadas a tus funciones clásicas Nativas de Mysql (o del manejador de BD que uses). Un saludo,
__________________ Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo. Última edición por Cluster; 06/09/2003 a las 15:01 |