Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Проблема с постоянным зависанием SQL сервера


Автор: German1 22.9.2007, 23:13
Использую хостинг IXwebhosting 
Каждую минуту через КРОНТАБ запускаю SCRIPT для пополнения Базы данных 
Объем данных 3000 новых записей. Приблизительно 1мб каждую минуту. 
по истечении 10-15 дней SQL сервер зависает 
Чем это может быть вызвано... 
Скрипт выглядет следующим образом 

set_time_limit(0); 
include('code.php');
mysql_pconnect("mysql32.ixwebhosting.com",$user,$pass) or die("Could not connect: ".mysql_error());
                                                                                                        }
$sql_zap='SELECT * FROM Resurcefiles WHERE Table_name="'.$_REQUEST["sval"].'"';}
$sql_vip_yres = mysql_query($sql_zap);
If ($sql_vip_yres == TRUE){echo "запрос выполнен \n";}else{die ("запрос  ".$sql_zap." не выполнен \n");}

$sql_zap = 'SELECT Id_o, small_name FROM Organization  LIMIT '.$p1.','.$p_;
$sql_vip_on = mysql_query($sql_zap);
If ($sql_vip_on == TRUE){echo "запрос выполнен \n";}else{die ("запрос  ".$sql_zap." не выполнен \n");}

if  (mysql_num_rows($sql_vip_on)==0) exit();
$i=0;

mysql_data_seek($sql_vip_on,0);
while($row_on = mysql_fetch_array($sql_vip_on, MYSQL_ASSOC))
{
$set_t='';
$tn=-1;
  $i++;
  $j=0;
 mysql_ping();
mysql_data_seek($sql_vip_yres,0);
while($row_yr = mysql_fetch_array($sql_vip_yres, MYSQL_ASSOC))
{
If ($tn!=$row_yr["Table_name"]) {
If ($set_t!='') {
If (mysql_query($sql_zap)==TRUE) {echo "запрос выполнен<br>";}else{die("запрос  ".$sql_zap." не выполнен \n");}
}
echo $row_yr["Table_name"].' DATABASE:='.$databasename[$row_yr["Table_name"]].'<BR>';
switch((int)chop($row_yr["Table_name"]))
{ case 0:
$set_t= $databasename[$row_yr["Table_name"]].'_'.$date_time_array["yday"].'_'.$date_time_array["year"];
break;
case 1:
$set_t= $databasename[$row_yr["Table_name"]].'_'.$date_time_array["mon"].'_'.$date_time_array["year"];
break;
  default :
$set_t=$databasename[$row_yr["Table_name"]].'_'.$date_time_array["year"];
 break;
  }
$sql_zap='INSERT INTO '.$set_t.' SET Id_name="'.$row_on["Id_o"].'" , DUngdt="'.$getdt.'", Dsesion="'.$ss.'"';
If (! mysql_query('CREATE TABLE IF NOT EXISTS '.$set_t.$dataquery[$row_yr["Table_name"]] ) )
{
die('запрос  CREATE TABLE IF NOT EXISTS '.$set_t.$dataquery[$row_yr["Table_name"]].' не выполнен <br>');
}

$tn=$row_yr["Table_name"];
}
$j++;
mysql_ping();
echo $i.'-'.$j;
$res_s=str_replace('=','='.trim($row_on["small_name"]),Trim($row_yr["resurce_name"]));
echo  $res_s;
for($gr=0;$gr<1;$gr++)
{
$gs=GetResurceFile($res_s);
$LastVal=SetParams($row_yr["fieldsdata"],$gs);
if ($gs!='' && $LastVal!=''){ echo '  FIND- OK';  $sql_zap=$sql_zap.$LastVal; break;}
}
echo " \n";
//}
flush();
//ob_flush();
}

//echo $sql_zap;
If (mysql_query($sql_zap)==TRUE) {echo "запрос выполнен<br>";}else{die("запрос  ".$sql_zap." не выполнен <br>");}
//ob_flush();
  flush();
}
mysql_ free_ result($sql_vip_on);
mysql_close();



Автор: -=Ustas=- 22.9.2007, 23:21
German1, во-первых, отредактируй пост с использованием "Код", во-вторых, логи смотреть смотреть нужно, прежде чем пинать на скрипты.

Автор: WolfON 23.9.2007, 21:30
За 10 дней вы добавляете 43`200`000 записей.
Вполне возможно, что сервер просто не расчитан на такие нагрузки.
Идите в саппорт хостинга.

Автор: German1 24.9.2007, 23:32
Цитата(German1 @ 22.9.2007,  21:13)
Использую хостинг IXwebhosting 
Каждую минуту через КРОНТАБ запускаю SCRIPT для пополнения Базы данных 
Объем данных 3000 новых записей. Приблизительно 1мб каждую минуту. 
по истечении 10-15 дней SQL сервер зависает 
Чем это может быть вызвано... 
Скрипт выглядет следующим образом 

set_time_limit(0); 
include('code.php');
mysql_pconnect("mysql32.ixwebhosting.com",$user,$pass) or die("Could not connect: ".mysql_error());
                                                                                                        }
$sql_zap='SELECT * FROM Resurcefiles WHERE Table_name="'.$_REQUEST["sval"].'"';}
$sql_vip_yres = mysql_query($sql_zap);
If ($sql_vip_yres == TRUE){echo "запрос выполнен \n";}else{die ("запрос  ".$sql_zap." не выполнен \n");}

$sql_zap = 'SELECT Id_o, small_name FROM Organization  LIMIT '.$p1.','.$p_;
$sql_vip_on = mysql_query($sql_zap);
If ($sql_vip_on == TRUE){echo "запрос выполнен \n";}else{die ("запрос  ".$sql_zap." не выполнен \n");}

if  (mysql_num_rows($sql_vip_on)==0) exit();
$i=0;

mysql_data_seek($sql_vip_on,0);
while($row_on = mysql_fetch_array($sql_vip_on, MYSQL_ASSOC))
{
$set_t='';
$tn=-1;
  $i++;
  $j=0;
 mysql_ping();
mysql_data_seek($sql_vip_yres,0);
while($row_yr = mysql_fetch_array($sql_vip_yres, MYSQL_ASSOC))
{
If ($tn!=$row_yr["Table_name"]) {
If ($set_t!='') {
If (mysql_query($sql_zap)==TRUE) {echo "запрос выполнен<br>";}else{die("запрос  ".$sql_zap." не выполнен \n");}
}
echo $row_yr["Table_name"].' DATABASE:='.$databasename[$row_yr["Table_name"]].'<BR>';
switch((int)chop($row_yr["Table_name"]))
{ case 0:
$set_t= $databasename[$row_yr["Table_name"]].'_'.$date_time_array["yday"].'_'.$date_time_array["year"];
break;
case 1:
$set_t= $databasename[$row_yr["Table_name"]].'_'.$date_time_array["mon"].'_'.$date_time_array["year"];
break;
  default :
$set_t=$databasename[$row_yr["Table_name"]].'_'.$date_time_array["year"];
 break;
  }
$sql_zap='INSERT INTO '.$set_t.' SET Id_name="'.$row_on["Id_o"].'" , DUngdt="'.$getdt.'", Dsesion="'.$ss.'"';
If (! mysql_query('CREATE TABLE IF NOT EXISTS '.$set_t.$dataquery[$row_yr["Table_name"]] ) )
{
die('запрос  CREATE TABLE IF NOT EXISTS '.$set_t.$dataquery[$row_yr["Table_name"]].' не выполнен <br>');
}

$tn=$row_yr["Table_name"];
}
$j++;
mysql_ping();
echo $i.'-'.$j;
$res_s=str_replace('=','='.trim($row_on["small_name"]),Trim($row_yr["resurce_name"]));
echo  $res_s;
for($gr=0;$gr<1;$gr++)
{
$gs=GetResurceFile($res_s);
$LastVal=SetParams($row_yr["fieldsdata"],$gs);
if ($gs!='' && $LastVal!=''){ echo '  FIND- OK';  $sql_zap=$sql_zap.$LastVal; break;}
}
echo " \n";
//}
flush();
//ob_flush();
}

//echo $sql_zap;
If (mysql_query($sql_zap)==TRUE) {echo "запрос выполнен<br>";}else{die("запрос  ".$sql_zap." не выполнен <br>");}
//ob_flush();
  flush();
}
mysql_ free_ result($sql_vip_on);
mysql_close();

Объем Хостинга 400 ГБ- позволяет создать такую БД. 
Может ли зависание  связано с большой посещяемостью серверов хостер???

Автор: BuShaRt 25.9.2007, 07:22
German1
Отредакртируйте сообщения пожалуйсто свои и привидите в порядок согласно правилам форума.

Автор: MoLeX 25.9.2007, 08:36
German1, думаетет в этом виде ваши скрипты кто-нибудь читать будет???

Автор: -=Ustas=- 25.9.2007, 08:45
German1, ты знаешь почему зависает сервер баз данных?! Нет? Мы тоже незнаем, и знать не можем. Ты хоть бы в логах покопался бы чуть чуть.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)