Szervusz GoyoHa csak néha rántja le a servert, akkor elvileg az sql lekérdezés szintaktikája jó.A log fáljba csak akkor ír a szerver, ha eljut odáig, hogy értelmezni tudja a hibát.Ha már előtte elpatkol akkor nincs hibajelzés. Az sql lekérdezéseket viszont az adatbázismotor minden egyes futtatásnál optimalizálni próbálja.Ezek nem egyforma futtatási folyamatot jelentenek. ÖSszetett sql utasításnál nem lehet előre meghatározni, hogy melyik részművelet mikor zajlik. Feltételezem hogy összetett sql utasításrol van szó ha nem, dobd ki az adatbázismotort
Ha összetett utasításról van szó, akkor egyes esetekben az optimalizálás nem teljesen sikeres, és kifut a gép a az erőforrásból (resourcebol) főleg egy nagyobb számú kérés esetén.Ez az alábbi módszert szoktam alkalmazni, persze hogy ez Nálad beválik próba kérdése.Az SQL utasítást nem egybe adom meg hanem összerakom:sqltxt=''sqltxt=sqltxt+'select a,b,c';sqltxt=sqltxt+'from x,y,z';sqltxt=sqltxt+'where azonosito>"0"';(ez egy banális feltétel ami minden érvényes tételnél igaz azért hogy a továbbiakbol hibejelzés nélkül kommentezhessek)sqltxt=sqltxt+'and feltétel1';sqltxt=sqltxt+'and feltétel2';sqltxt=sqltxt+'and feltétel3';sqltxt=sqltxt+'group by a ';stb stbA részekből összerakott sqlből apránként kikommentezek egy egy tételt úgy hogy a megmaradt lekérdezés szintaktikájaazért érvényes sql utasítás legyen.Igy megtalálom azt a részutasítást amely ha nincs benne még stabil a működés, de ha benne van, már baj okoz.ekkor átfogalmazom az SQL-tA kerdéses SQL részt máshova rakom, pl megváltoztatom a feltételek sorrendjét vagy más mezőt figyelek(pld nem a hosszú névre figyelek hogy men üres-e hanem az ügyfélkódra).Ha ezek nem hoznak eredmény, még mindig van egy varázspálca..Két vagy több egyszerűbb részre bontom az sql utasítást, és letárolom a köztes eredményt.Az első utasitás tehát egy rövid művelet amitől a gép nem hal meg, és előállít egy részeredményt.Ekkor az első utasítás befejeződik felszabadítja az erőforrást.A második már az első ideiglenes táblájábol olvas és előállitja a második ideiglenes táblátaz utolsó előállítja a végeredményt.Pl AZ elképzelt "összetett" utasitás:Select felhasznaloknev,temanev,ev,ho from felhasznalok,temak where ev=2000 and ho=12.felbontva:Select felhasznaloknev,temanev,ev,ho from felhasznalok,temak where ev=2000 into file ideiglenes1.Select felhasznalok,temak from idegiglenes1 where ho=12.Ezeket a tachnikákat Te biztos tudod, csak legfeljebb nem gondoltad így át, de az is lehet hogy nálad valami más tényező is lehet ...Mindenesetre, ahogy a belépőszövegemből látod, szívesen adok tanácsot, na persze a kecskére Neked kell vigyáznod
Üdv:gnomnome