Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] User has exceeded the 'busy_time'
Forum PHP.pl > Forum > Bazy danych > MySQL
wicy
Proszę o pomoc, bo od długiego czasu nie mogę sobie poradzić z tym błędem bazy.
Baza zawiera 2 tabele:
1) cmentarze - opisy cmentarzy (1000 wierszy)
2) polegli - wykaz poległych pochowanych na w/w cmentarzach (11000 wierszy)

Skrypt wyświetla na stronie zawartość tabeli 1), czyli krótki opis oraz generuje tabelę z poległymi - zawartość tabeli 2). Niby proste, przykład operacji na bazie ściągnęty z przykładów w internecie, niby powinno działać, a co jakiś czas baza blokuje się z powodu błędu #1226 - User has exceeded the 'busy_time' resource (current value: 600000000).
Poniżej zamieszczam trochę odchudzony o pierdoły skrypt. Może ktoś znajdzie błąd zapętlania, zbyt długiego wykonywania zapytań, powodujących ów bład bazy.
Czy operacje na bazie w sekcji HEAD mają wpływ i znaczenie??


<html><head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250" />

<?
$lng = $_GET['lng'];
if ($lng=='') { $lng = 'pl'; }
switch ($lng) {
case 'en':
require_once("english.php");
break;
//TU KILKA CASE
}

$username = '*******';$password = '*******';$database = '*******';

$m = $_GET['m'];
$order = $_GET['order'];
$order1 = 'nazwisko';

switch ($order) {
case 'n':
$order1 = 'p.nazwisko';
break;
//TU KILKA CASE DLA WYBORU PORZĄDKU SORTOWANIA
}

//POŁACZENIE Z BAZĄ DLA ODCZYTANIA DANYCH CMENTARZA
$link = mysql_connect('sql.tgcp.nazwa.pl:3306', $username, $password) or die('Nie można'. mysql_error());
@mysql_select_db($database) or die("Nie udało..");
$result=mysql_query("SELECT * FROM cmentarz WHERE id = ".$m);

$rek = mysql_fetch_array($result);
mysql_close($link);
mysql_free_result ($result);

$id=$rek["id"];
$nazwa=$rek["nazwa"];
(...) //TU PODOBNE PRZYPISANIE KILKU DANYCH

//TU KILKA LINIJEK PHP WSTAWIAJĄCYCH TEKST Z PLIKU

?>

//TU SKRYPT MAPKI Z GOOGLE
<script src="http://maps.google.com/maps</script>
<script type="text/javascript">

</head>

<body //USTAWIENIA onload="load()" onunload="GUnload()">

<table>
<tr><td><b><? echo $l_lokalizacja2; ?>:</b></td><td><? echo $lokal; ?></td>
<tr><td><b><? echo $l_kategoria; ?>:</b></td><td><? echo $kat; ?></td></tr>
<tr><td><b><? echo $l_opis; ?>:</b></td><td><? echo $tekst; ?></td></tr>
<tr><td><b><? echo $l_opracowanie; ?>:</b></td><td><? echo $opr; ?></td></tr>
<tr><td><b><? echo $l_nazwisk1; ?>:</b></td><td>
<?

//TU ODCZYT NAZWISK POLEGŁYCH
$link = mysql_connect('sql.tgcp.nazwa.pl:3306', $username, $password) or die('Nie można..' . mysql_error());
@mysql_select_db($database) or die("Nie udało...");
$result=mysql_query("SELECT * FROM polegli p, cmentarz c WHERE miejsce_p='$m' AND

c.id=p.miejsce_p ORDER BY ".$order1);

//POBRANIE LICZBY WIERSZY = LICZBY POLEGŁYCH
$num=mysql_numrows($result);
if ($num==0) {
echo $l_nazwisk2;
echo "</td></tr>";
echo "</table><br>";
} else {
echo $num
?>
//DOMKNIĘCIE POPRZEDNIEJ TABELI
</td></tr>
</table><br>
//TABELA WŁAŚCIWA
<table>
<tr>
<th><? echo $l_nazwisko; ?></th>
<th><? echo $l_imie; ?></th>
<th><? echo $l_stopien; ?></th>
<th><? echo $l_jednostka;</th>
<th><? echo $l_m_smierci; ?></th>
<th><? echo $l_d_urodzenia; ?></th>
<th><? echo $l_m_urodzenia; ?></th>
<th><? echo $l_uwagi; ?></th>
</tr>
//POCZĄTEK PĘTLI WYPEŁNIAJĄCEJ TABELĘ
<?
while ($rek = mysql_fetch_array($result))
{
$nazwisko=$rek["nazwisko"];if ($nazwisko==null) {$nazwisko='-';}
$imie=$rek["imie"];if ($imie==null) {$imie='-';}
$stopien=$rek["stopien"];if ($stopien==null) {$stopien='-';}
$jednostka=$rek["jednostka"];if ($jednostka==null) {$jednostka='-';}
$data_s=$rek["data_s"];if ($data_s==null) {$data_s='-';}
$miejsce_s=$rek["miejsce_s"];if ($miejsce_s==null) {$miejsce_s='-';}
$miejsce_u=$rek["miejsce_u"];if ($miejsce_u==null) {$miejsce_u='-';}
$data_u=$rek["data_u"];if ($data_u==null) {$data_u='-';}
$uwagi=$rek["uwagi"];if ($uwagi==null) {$uwagi='-';}
?>
<tr>
<td><? echo $nazwisko; ?></td>
<td><? echo $imie; ?></td>
<td><? echo $stopien; ?></td>
<td><? echo $jednostka; ?></td>
<td><? echo $data_s; ?></td>
<td><? echo $miejsce_s; ?></td>
<td><? echo $data_u; ?></td>
<td><? echo $miejsce_u; ?></font></td>
<td><? echo $uwagi; ?></td>
</tr>
<?
}
echo "</table></center>";
}
mysql_free_result($result);
mysql_close($link);
?>
//TU PARĘ LINIJEK PHP WSTAWIAJĄCYCH ZDJĘCIA
</body>
</html>

Cytat(wicy @ 10.02.2008, 18:16:04 ) *
Skrypt wyświetla na stronie zawartość tabeli 1), czyli krótki opis oraz generuje tabelę z poległymi - zawartość tabeli 2). Niby proste, przykład operacji na bazie ściągnęty z przykładów w internecie, niby powinno działać, a co jakiś czas baza blokuje się z powodu błędu #1226 - User has exceeded the 'busy_time' resource (current value: 600000000).
Poniżej zamieszczam trochę odchudzony o pierdoły skrypt. Może ktoś znajdzie błąd zapętlania, zbyt długiego wykonywania zapytań, powodujących ów bład bazy.
Czy operacje na bazie w sekcji HEAD mają wpływ i znaczenie??

Czy to możliwe, żeby nadanie dwóm tabelom w bazie indeksów pomogło na tyle przyspieszyć operacje na bazie, żeby błąd #1226 przestał się pojawiać??
Nie sprawdzałem bazy przez dłuższy czas, ale chyba to pomogło....
Raxo
Niech zgadnę... hosting w Nazwa.pl winksmiley.jpg

U mnie optymalizacja zapytań do MySQL nie pomogła, byłem zmuszony przenieść serwis na inny serwer. Przed zakupem warto uważnie sprawdzać limity i ograniczenia konta serwerowego:

http://nazwa.pl/netart-o-firmie-parametry-...ieczenstwa.html

Ja nie zauważyłem bo były mocno zabunkrowane na podstronach i cierpiałem, strona kilka razy dziennie na okres godziny padała całkiem - ogólnie uważam, że nazwa.pl / NetArt ma słaby hosting - wiele osób na niego narzeka. W ostateczności zawsze można się przenieść na inny serwer i po kłopocie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.