Инсталиране и използване на dhs_mysql_profile_debuger

Не мисля, че има какво толкова да се обяснява затова направо по същество.

В. Първо какво е dhs_mysql_profile_debuger?
О. Това е проста php функция (не е вградена както става ясно по- долу), чрез която може да се следи процесорното време, паметта и времето за изпълнение на всяка заявка.

В. Как работи dhs_mysql_profile_debuger?
О. Цялостно е базирана на профилинга в MySQL

В. Може ли да работи постоянно в сайта ми?
О. Може(зависи от посещаемостта и натовареността), но определено не е желателно. Най- правилно е да се ползва за определено време с цел да се придобие информация какво натоварване правят заявките X. Един вид да ни се покажат пробойните в лодката които да запушем.

Инсталиране на dhs_mysql_profile_debuger

1. Създване на таблица в която да се съхраняват данните

drop table dhs_mysql_profile_debuger;
CREATE TABLE `dhs_mysql_profile_debuger` (
`qid` int(7) NOT NULL auto_increment,
`ddate` datetime NOT NULL,
`query` varchar(200) not null,
`query_duration` varchar(10) NOT NULL,
`cpu_duration` varchar(10) NOT NULL,
`cpu_user` varchar(10) NOT NULL,
`cpu_system` varchar(10) NOT NULL,
`mem_duration` varchar(10) NOT NULL,
PRIMARY KEY  (`qid`)
) ENGINE=MyISAM;

2. При свързване към базата данни да се сетне profiling=1

Пример: mysql_query('SET profiling = 1;', $db);

3. Include на функцията dhs_mysql_profile_debuger

#dhstudio mysql profile debuger written by amri

function dhs_mysql_profile_debuger()
{
$ddate=date('Y-m-d H:i:s');

$query="SHOW PROFILES";
$result = mysql_query($query);
while($row = mysql_fetch_array($result))
{
$query_ID="{$row[0]}";
$Duration="{$row[1]}";
$Query=addslashes("{$row[2]}");

$query2="SHOW PROFILE CPU FOR QUERY $query_ID;";
$result2 = mysql_query($query2);
unset($cpu_duration);unset($cpu_user);unset($cpu_system);unset($mem_duration);
while($row2 = mysql_fetch_array($result2))
{
$cpu_duration+=number_format("{$row2[1]}", 6, '.', ' ');
$cpu_user+=number_format("{$row2[2]}", 6, '.', ' ');
$cpu_system+=number_format("{$row2[3]}", 6, '.', ' ');
};

$query2="SHOW PROFILE MEMORY FOR QUERY $query_ID;";
$result2 = mysql_query($query2);
while($row2 = mysql_fetch_array($result2))
{
$mem_duration=number_format($mem_duration+"{$row2[1]}", 6, '.', ' ');
};

$mass_insert="$mass_insert,('$ddate','$Query','$Duration','$cpu_duration','$cpu_user','$cpu_system','$mem_duration')";
if($mass_insert{0} == ",")$mass_insert=substr($mass_insert,1);
};

$query_insert="insert into dhs_mysql_profile_debuger (ddate,query,query_duration,cpu_duration,cpu_user,cpu_system,mem_duration) VALUES $mass_insert;";
$result_insert = mysql_query($query_insert);
};

4. Извикване на функцията dhs_mysql_profile_debugerв в края на всеки php файл които ще се следи

dhs_mysql_profile_debuger();#DH Studio mysql profile debuger

Извеждане на статистика за заявките

1. Извеждане на най- натоварващите CPU заявки

mysql> select * from dhs_mysql_profile_debuger order by cpu_duration desc;

2. Извеждане на най- натоварващите MEM заявки

mysql> select * from dhs_mysql_profile_debuger order by mem_duration desc;

VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)
Инсталиране и използване на dhs_mysql_profile_debuger, 5.0 out of 5 based on 1 rating

One thought on “Инсталиране и използване на dhs_mysql_profile_debuger”

  1. Това ми помогна

    VA:F [1.9.22_1171]
    Rating: 0.0/5 (0 votes cast)
    VA:F [1.9.22_1171]
    Rating: 0 (from 0 votes)

Вашият коментар

Вашият email адрес няма да бъде публикуван Задължителните полета са отбелязани с *