ugrás a tartalomhoz

PHP 5.2.6 (Windowson) + MSSQL 2005 szívás

tisch.david · 2008. Júl. 4. (P), 10.42
Üdvözlet minden kedves Kispajtásnak!

A fenti témában lenne szükségem tanácsra. Röviden vázolom az eddigi helyzetet:
- PDO-val próbálkoztam, de a natív elérés Windowson a hivatalos doksi szerint nem stabil, helyette ODBC-t javasol, viszont az sem stabil.
- Átálltam ADOdb-re, de az adatbáziskapcsolat létrehozásához még így is frissítettem kellett az ntwdblib.dll-t.
- Így most nagyjából frankó a dolog, de ha kiadok egy majd' 800 karakter hosszú - adatbázisban stringként tárolt - SELECT-et, akkor az elvárt 15 sor helyett 480.000 sort ad vissza az mssql_query.
- A fenti miatt felmerült, hogy valami hosszkorlát miatt nem csonkolódhat-e a lekérdezés WHERE része?

Az alábbi megoldási javaslatok merültek föl eddig:
1. A SELECT-et közvetlenül az adatbázisban lefuttatni, nem a PHP segítségével.
2. Lecserélni az ADOdb-t a Microfos hivatalos PHP-s driverére.
(3. .NET alatt futtatni a PHP-t, ha lehet ilyet.)

Mit szóltok ezekhez? Van valakinek valami jobb ötlete?

Köszi előre is:

Dávid
 
1

mssql_query helyett sybase

virág · 2008. Júl. 4. (P), 11.07
Szia,

nekem volt hasonló gondom régebben, de még 4-es PHP-ban, én akkor az mssql_-es függvények helyett a sybase_-s függvényeket használtam és ez megoldotta a gondokat (nem biztos, hogy ez nálad beválik).

Ha olyan nagy a SELECT, akkor szerintem próbálj meg tárolt eljárást készíteni belőle.
2

Az mssql_query ADOdb adottság

tisch.david · 2008. Júl. 4. (P), 11.25
Szia!

Köszi a választ! A baj az, hogy az mssql_query-t nem én használom, hanem az ADOdb. Ezért merült föl bennem, hogy ha nem lesz jobb megoldás, akkor azt kéne lecserélnem, de egyelőre azért még bízom. (A viszonylagos adatbázisfüggetlenség miatt nagyon nem szeretném a Microsoft-os drivert használni.)

A tárolt eljárás jó ötletnek tűnik, ha más egyszerű javaslat nem lesz, akkor még ez kecsegtet a leggyorsabb eredménnyel.

Üdv:
Dávid
3

adatbázisfüggetlenség

vbence · 2008. Júl. 4. (P), 12.00
Ez egy fehér bálna, amit hajszolhatsz életed végéig... Ha tényleg le akarsz mondani minden optimalizálási lehetőségről, akkor készíts magad egy DB oszályt, ami ugyebár cserélhető lesz.
4

Valami más?

tisch.david · 2008. Júl. 4. (P), 12.54
Egyéb ötlet vagy tapasztalat?
5

Megvan a megoldás

tisch.david · 2008. Júl. 8. (K), 08.23
Sziasztok!

Csak a tudásbázis növelése miatt írom le, hogy megoldottam a problémát. Nem az esetleges "hosszkorlát" okozta a problémát, egyszerűen csak nem volt megfelelő a SELECT.

Egy komoly tanulsága van a dolognak: az SQL Server Management Studio valószínűleg optimalizálja a SELECT-et futtatás előtt, így más eredményt ad, mintha nem rajta keresztül futtatjuk le a lekérdezést.

Köszi mindenkinek, aki gondolkodott rajta!

Üdv:

Dávid
6

ismert

carstepD · 2008. Júl. 8. (K), 09.22
Szia,

a SQL Server Management Studio -val én is szívtam mikor még delphis korszakban kellett programoznom, ezért inkább csak optimalizálási (Explain Editor) javaslatait használtam a rendszer gyorsítására.

Üdv
Sanyi