Прошу сильно не пинать. Вопрос может оказаться тупым.
Хотя бы подсказать куда копать, а если кусочек кода, буду очень благодарен.
Суть
справочники
- Таблица Врачей (26)
- Таблица процедур (270)
- Таблица Оказанных процедур (>10 000)
нужно найти сколько каждый врач оказал каждой процедуры
Проблема
При моем запросе скрипт секунд на 40 вешает базу
Оно вроде бы и понятно. если бы у меня был Селерон 433
Однако у меня 18 ядерный ксеон на 24 гига оперативы с блекджеком и шлюхами
// данные в массив
$rasp11100 = "SELECT id,ids,name FROM `spr` WHERE `category`='vrachi' AND `p4`='$filial' ORDER BY ids ";
$rasp11100 = mysql_query($rasp11100) or die(mysql_error());
while ($rasp01100 = mysql_fetch_array($rasp11100))
{
$vrach = $rasp01100["ids"];
$vrachname = $rasp01100["name"];
$vrachi0[$vrach]= $vrachname;
}
$rasp111 = "SELECT ids,name FROM `spr` WHERE `category`='proced' ";
$rasp111 = mysql_query($rasp111) or die(mysql_error());
while ($rasp011 = mysql_fetch_array($rasp111))
{
$idpro = $rasp011["ids"];
$nameproc = $rasp011["name"];
$proced0[$idpro]= $nameproc;
}
// циклы с массива
foreach ($vrachi0 as $vrach => $vrachname) {
echo "<h3> $vrachname</h3><br>";
include "shab/info_vrach_all2/table_head.php";
foreach ($proced0 as $idpro => $nameproc) {
// основной запрос в базу на кол-во
$rasp11111 = "SELECT ids FROM `uslugi` WHERE `del`='0' AND `usvrachi`='$vrach' AND `filial`='$filial' AND `ok`='1' AND `proced`='$idpro' AND (`data_nach` BETWEEN '$r_date_new' AND '$r_date_new2') ";
$rasp1111 = mysql_query($rasp11111) or die(mysql_error());
$GEO = mysql_num_rows($rasp1111);
if($GEO != "0") { include "shab/info_vrach_all2/table_body.php"; } $GEO = "";
}}}
include "shab/info_vrach_all2/table_footer.php";
Буду благодарен за мысли ) Спасибо!