Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP][PDO]Wywoływane procedury i "LOCK" bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
rocktech.pl
Witam.

Podczas wywoływania procedur, które trwają np. 10 min staje mi cała aplikacja, każdy request dostaje response dopiero po wykonaniu tej procedury.

Aplikacja nad którą pracuje korzysta a adodb i fizycznie nie da się tego zmienić. Próbowałem wywoływać procedury przez adodb i nie powodowało to zawieszania aplikacji ale nie dawało mi gwarancji, że procedura się wykona.

Użyłem PDO i pojawiły się problemy.

  1. //MySQL Engine InnoDB
  2. $this->db_p = new PDO("mysql:host=$db_server;dbname=$db_database", $db_user, $db_password,array(
  3. PDO::ATTR_PERSISTENT => true
  4. ));
  5. $stmt = $this->db_p->prepare("CALL Procedura");
  6. $stmt->execute();
  7. //Procedura się wykonuje a baza leży


Czy ktoś spotkał się z podobnym problemem albo posiada patent na wywoływanie procedur via adodb lub PDO ?
redeemer
A co robi ta procedura? Na jakich silnikach masz tabele na których operuje?
rocktech.pl
Co do bazy danych uzupełniłem w poście.

Co do procedur (jest ich kilka) wykonują operacje INSERT UPDATE DELETE na dużej ilości wierszy w kilku kolumnach.
Problem nie leży po stronie procedur, gdyż wywołane z palca na serwerze nie usypiają mi aplikacji.
redeemer
To nie wiem, jak z "palca" działa. Wykonaj 'show full processlist' podczas "locka" i zobacz co sie dzieje w bazie.
rocktech.pl
SHOW FULL PROCESSLIST - 2 do 3 procesów
SHOW OPEN TABLES - max 4 otwarte tabele żadnych fizycznych locków

----------------------------------------------------------------

Temat do zamknięcia. Problem leży po stronie przeglądarki która nie wyśle następnego żądania bez otrzymania odpowiedzi od poprzedniego.Więcej w tym temacie.
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.