![]() |
![]() |
![]() ![]()
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); } |
|
|
![]() |
![]()
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?
Ten post edytował maly_swd 23.08.2010, 15:37:57 |
|
|
![]()
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!
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 21:23 |