Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Firebird/Interbase bardzo wolno wykonuje zapytania
rafi-88
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.08.2010

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


Mam problem z bazą danych Firebird. Baza jest z programu zewnętrznego.
Łączę się z nią przez PHP (PHP 5.3.3, Firebird API version 21, LI-V6.3.0.26054 Firebird 2.5 Release Candidate 3).

Na kompie 192.168.0.2(Win XP) jest uruchomiony serwer Firebirda, na kompie 192.168.0.1(Linux) jest zainstalowany PHP+Firebird.
Połączenie z bazą jest wykonywane szybko, natomiast zapytania idą strasznie długo.

Wiem już, że:
Nie jest to problem sieci bo nic się nie zmienia jak uruchamiam PHP na kompie na którym jest plik bazy i serwer (localhost).
Nie jest to problem wersji Firebirda/PHP, próbowałem kilku różnych.
Nie jest to problem "DISTINCT", bez tego też idzie długoo.
Nie jest to błąd bazy/indeksów itp. Programy windowsowe do obsługi baz Firebirda wykonują zapytania w mgnieniu oka (IMG:style_emoticons/default/winksmiley.jpg)


Poniższy kod (70 zapytań) jest wykonywany 2.5 do 3 sekund (masakra jakaś)!

PLS Help!

CODE

$plik_bazy="c:/baza/baza.gdb";
$host = "192.168.0.2:" . $plik_bazy;
$username="SYSDBA";
$password="masterkey";

$dbh = ibase_connect($host, $username, $password);

$query="SELECT DISTINCT ID_MATKI FROM `DOK` WHERE NUMERDOK LIKE 'JO%' OR NUMERDOK LIKE 'JN%'";

for ($a=0;$a<70;$a++) {
$wynik = ibase_query($dbh, $query);
}


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

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


70 zapytan w 3 sekundy to "normalny wynik", okolo 0,04sek na 1 zapytanie.

Czy aby na 100% chcesz wykonywac 70 takich samych zapytan, a nie pobrac 70 rekordow z 1 zapytania?


  1. $query="SELECT DISTINCT ID_MATKI FROM `DOK` WHERE NUMERDOK LIKE 'JO%' OR NUMERDOK LIKE 'JN%'";
  2. $wynik = ibase_query($dbh, $query);
  3.  
  4. for ($a=0;$a<70;$a++) {
  5. $dane[]=ibase_fetch_array($wynik);
  6. }


Ten post edytował maly_swd 23.08.2010, 15:37:57
Go to the top of the page
+Quote Post
rafi-88
post
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.08.2010

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


maly_swd - najprostsze pomysły są najlepsze DZIĘKI!
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 21:23