Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Oracle][PHP]Dlugie wykonywanie update
lutador
post 4.03.2010, 09:14:03
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

Ostrzeżenie: (0%)
-----


Witam,

mam problem z robieniem updatow do mojej bazy Oracle z poziomu php. Skrypt ma wykonać update na jednym rekordzie ale po wlaczeniu skryptu trwa to w nieskończoność. Z poziomu query reporter update trwa 0.03s . Z zapytaniem select nie ma problemu. Czego to moze byc wina??


  1. $wstaw_zam = "UPDATE KadJednNazwy SET NrId = '$hash' WHERE SalesNumber = '23956' AND AccountNumber = 'OBR0001'";
  2.  
  3. $pased = ociparse($db_conn, $wstaw_zam);
  4. ociexecute($pased);
  5.  
  6. $znajdz_now = "SELECT d.telex, k.salesnumber, k.accountnumber FROM KadJednNazwy k, debtable d WHERE wyslano = '0' AND ltrim(k.accountnumber) = ltrim(d.accountnumber)";
  7.  
  8. $parsed = ociparse($db_conn, $znajdz_nowe);
  9. ociexecute($parsed);
  10. $nrows = ocifetchstatement($parsed, $wynik_zam);
  11.  
  12.  
Go to the top of the page
+Quote Post
nospor
post 4.03.2010, 09:23:32
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




a skad wiesz ze to ten update trwa dlugo? masz tam przeciez tez select. moze to on tyle trwa smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
lutador
post 4.03.2010, 09:54:43
Post #3





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

Ostrzeżenie: (0%)
-----


probowalem hashowac to i to wiem na 100% co sie tak dlugo wykonuje, z selectem nie ma problemu

$pased = ociparse($db_conn, $wstaw_zam); dla updatu wykonuje sie bardzo szybko
ociexecute($pased); <- to polecenie zawiesza skrypt

Go to the top of the page
+Quote Post
thek
post 4.03.2010, 11:37:20
Post #4





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




W takim razie pozostaje Ci jeszcze jedna rzecz do sprawdzenia. Skoro całe zapytanie wykonuje się w miarę szybko, to znaczy, że po drodze samo execute ma problem. Może łączy się w jakiś dziwny sposób do bazy. Wykonuje jakieś "bonusowe" operacje i całość przez to mocno traci na szybkości. Przykładowo łączy się z bazą nie na localhoście, tylko na innym serwerze. Długa jest droga do i z bazy do skryptu. Ewentualnie czeka na jakieś operacje inne, które blokują tabelę przed zapisem, modyfikuje indexy, które są już mocno napakowane, ewentualnie na kolumnach w warunku brak jest indexów. Powodów może być w sumie wiele tak naprawdę.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.07.2025 - 01:12