Výsledky 1 až 16 z 16

Téma: [PHP] Jak na velmi dlooouhy SQL dotaz pres PHP ?

  1. #1

    Standardní [PHP] Jak na velmi dlooouhy SQL dotaz pres PHP ?

    Ahoj,
    stojim pred problemem spusteni dost narocneho SQL dotazu pres PHP. Select pojede odhadem mezi 1-3 hodinama a potrebuju to osetrit tak, aby to bylo mozne pouzit pres firemni intranet, ktery jeste navic na W2k.
    Na Linuxech vim ze se to obejde pres nejaky fork ci co, ale nenasel jsem nic jak to provest na Win.
    Potrebuju proste aby se dotaz spustil, stranka napsala ze proces bezi a ten clovek to mohl treba zavrit a jit na obed. Za hodinku by si natahl znovu stranku a tam by nasel vysledky.

    PS: Samozrejme je nesmysl, abych nastavoval takovy casovy limit v PHP.INI, to bych totalne ucpal intranet

    Netusite nekdo jak na to
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  2. #2

    Standardní

    otazka c.1 co to probuh je ze na tom select potrva tak dlouho a nejde to nejak optimalizovat?
    otazka c.2 jak velkej/dlouhej je vystup
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  3. #3
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    doba trvani mysql dotazu se do casoveho limitu nepocita, takze nejake nastavovani limitu te nemusi trapit. -pokud to opravdu je doba kdy pracuje sql server, a ne dlouhe zpracovavani dat v PHP. Takze kdyz to pusti, a pujde na obed, tak to klidne muze ty 3 hodiny bezet. Za hodinku se na stranku podiva, a vidi jak je to daleko (viz flush a spol- bez toho to pujde blbe poznat, jak jsi skutecne daleko.)

    EDIT: Samozrejme souhlasim s rychlejsim foxem, ze problem by se mel asi resit spis optimalizaci, pokud je to mozne
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  4. #4

    Standardní

    Citace Původně odeslal Fox!MURDER
    otazka c.1 co to probuh je ze na tom select potrva tak dlouho a nejde to nejak optimalizovat?
    otazka c.2 jak velkej/dlouhej je vystup
    Je to sice otazka na otazku, ale cekal jsem ji
    Jsou to kontrolni vystupy z krajske databaze socialnich davek. Ver tomu, ze ten select opravdu lip napsat nejde a i kdyby slo v DB neco optimalizovat, ja to toho lezt nehodlam (cca 6*8m je schema). Na vystupu lezou seznamy kolem 100k radku, nic moc.

    Tak zpet k PHP, nejake reseni
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  5. #5

    Standardní

    Citace Původně odeslal KtK
    doba trvani mysql dotazu se do casoveho limitu nepocita, takze nejake nastavovani limitu te nemusi trapit. -pokud to opravdu je doba kdy pracuje sql server, a ne dlouhe zpracovavani dat v PHP. Takze kdyz to pusti, a pujde na obed, tak to klidne muze ty 3 hodiny bezet. Za hodinku se na stranku podiva, a vidi jak je to daleko
    Hmm, pravdou je ze o flush zatim nic nevim, ale porad si to nejak neumim predstavit. Zkusim doma o vikendu kouknout do chytre literatury a kdyztak v pondeli budu zase otravovat

    Zatim thx a jdu si uzivat weekend
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  6. #6
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    napis jak velkou cast prace dela DB a jak velkou PHP, to je docela zasadni, pokud je to temer jen na DB, nemas myslim problem. Pokud teda mas moznost nejak sledovat postup toho selectu, tj pokud je tech selectu hodne. Pokud ne, je problem, protoze nemas moznost jak zjistit, jak je DB daleko s vyrizenim pozadavku (aspon ja o takove nevim, rad bych se mylil

    ten flush jsem minil tak, ze mezi jednotlivymy radky vystupu - predpokladam, ze to bude jako rozdeleni doby prace skriptu stacit - flushnes dosavadni output. jinak bys taky mohl cekat tak dlouho, az se to cele dodela. (flush "vynuti" odeslani dosavadniho vystupu do browseru)
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  7. #7

    Standardní

    mno jesli mas 6*8MB jen schema tabulky tak je imo dost co optimalizovat
    udelat se to da tak ze spustis nejakej script na serveru ...
    asi nejjednodusi bude skript kterej se spousti treba kazdejch 10 minut a podiva se do nejakyho souboru jesli se po nem chce prace ... (napr. soubor existuje -> proved blabla ...) a bude ti vysledek ukladat do nejakyho textaku ze kterho si to pak vytahnes ...
    dalsi moznost je pustit na to SELECT ... INTO ... do nejaky temporary tabulky ze ktery pak uz jen vysosas vysledky ... ovsem to stejne budes asi muset udelat jako u toho predchoziho protoze ti pri padu mysql spojeni asi spadne i ten select ... (nejsem si tim uplne jistej ale).

    obtw. co to je za dB? takovej myisam ti tu tabulku zamkne pro zapis v prubeho celyho toho selectu ...


    edit:
    Citace Původně odeslal KtK
    napis jak velkou cast prace dela DB a jak velkou PHP, to je docela zasadni, pokud je to temer jen na DB, nemas myslim problem. Pokud teda mas moznost nejak sledovat postup toho selectu, tj pokud je tech selectu hodne. Pokud ne, je problem, protoze nemas moznost jak zjistit, jak je DB daleko s vyrizenim pozadavku (aspon ja o takove nevim, rad bych se mylil

    ten flush jsem minil tak, ze mezi jednotlivymy radky vystupu - predpokladam, ze to bude jako rozdeleni doby prace skriptu stacit - flushnes dosavadni output. jinak bys taky mohl cekat tak dlouho, az se to cele dodela. (flush "vynuti" odeslani dosavadniho vystupu do browseru)
    uprimne tohle jsou reseni napikacu ... ti behem vykonavani spadne browser a muzes jet znova ... chudak server ...



    ... jeste me napada ... je mozny zverejnit co je to za tabulku a co za select? (data videt nechci )
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  8. #8

    Standardní

    Zkusim to bliz vysvetlit. Jde o to, ze delam casto nejake kontrolni sjetiny pro financni audit. Samozrejme nejsem odvazanej z toho, ze hodiny travim u SQL Worksheetu a az zpracuju vysledek, financni me zavola ze chce pozmenit datum apod. Cele to jede na Oracle9i, tak me napadlo jim k tomu napsat simple rozhrani do intranetu, kde by si vyplnili pozadovane parametry a pres PHP ten select uz naladuju do DB a jim se po nejake dobe zase vyplivne vysledek. Ja mezitim budu mit cas na jinou praci...
    Cely dotaz je jediny SELECT (sice na A4, ale jediny). Mimochodem nad databazi mam prava pouze cteni, takze si moc vyskakovat nemuzu
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  9. #9

    Standardní

    tak opravdu je asi nejlepsi reseni to ukladat nekam do nejakyho tempu at uz v db (select into) nebo v souboru lokalne na disku ... a ve chvili kdy bude hotovo to z toho vystourat ...
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  10. #10
    Senior Member mince Avatar uživatele KtK
    Založen
    16.10.2002
    Bydliště
    Behind fuc*ing WorkTable Device (Praha zapad)
    Příspěvky
    1 709
    Vliv
    298

    Standardní

    Citace Původně odeslal Fox!MURDER
    asi nejjednodusi bude skript kterej se spousti treba kazdejch 10 minut a podiva se do nejakyho souboru jesli se po nem chce prace ... (napr. soubor existuje -> proved blabla ...) a bude ti vysledek ukladat do nejakyho textaku ze kterho si to pak vytahnes ...
    -co mu to bude platny, delat neco ob 10 minut, kdyz ma na praci jeden jedinej MEGAselect? A to s tim spustenim na serveru a ulozenim do souboru me taky napadlo, jenze jak uz psal, ma problem s tim spustenim bez otevreneho browseru.-na serveru. Ze moje reseni je v tomto ohledu napikacu vim taky I kdyz nejsem si jistej, jestli se provadeni toho skriptu opravdu ukonci se zavrenim browseru. -jednou jsem se zacyklil ve smycce (kazdy kolo pridaval zaznam do DB) a ver mi, ze vypnutim browseru ta DB narustat neprestala

    Suma sumarum: zlatej linux...
    Parasite lost, AKA the Girlfriend Mission:The Socka Project sleeps, lets use (her :) Durex! 1GHz in some soltek stuff, Ati rage 128, etc.. (it\'s noisy)
    IMB Thinkpad R31: celer 1.2GHz, 384M RAM, 60GB 5400rpm hitachi, i810 8MB onboard (na praci to staci ;)
    [pro archivni ucely] janina overclockerska poradna (.tar.gz, 1.1MB, otevrete si index.html v browseru podporujicim javascript a frames)

  11. #11

    Standardní

    Citace Původně odeslal KtK
    Citace Původně odeslal Fox!MURDER
    asi nejjednodusi bude skript kterej se spousti treba kazdejch 10 minut a podiva se do nejakyho souboru jesli se po nem chce prace ... (napr. soubor existuje -> proved blabla ...) a bude ti vysledek ukladat do nejakyho textaku ze kterho si to pak vytahnes ...
    -co mu to bude platny, delat neco ob 10 minut, kdyz ma na praci jeden jedinej MEGAselect? A to s tim spustenim na serveru a ulozenim do souboru me taky napadlo, jenze jak uz psal, ma problem s tim spustenim bez otevreneho browseru.-na serveru. Ze moje reseni je v tomto ohledu napikacu vim taky I kdyz nejsem si jistej, jestli se provadeni toho skriptu opravdu ukonci se zavrenim browseru. -jednou jsem se zacyklil ve smycce (kazdy kolo pridaval zaznam do DB) a ver mi, ze vypnutim browseru ta DB narustat neprestala

    Suma sumarum: zlatej linux...
    dyt je to hezky reseni
    skriptem z webu vytvori soubor, jednou za 10 minut spustenej skript se podiva jesli soubor existuje a pokud jou tak ho smaze/prejmenuje a zacne provadet co ma ... (parametry muzou bejt v tom souboru) ...
    kdyz to trva hodinu tak uz mu nebude vadit to 10 min cekani (ono muze bejt i 1 min ze? zalezi na nem). bude to nezavisly na browseru a nebude to mit zadnej velkej overhead a bude to nezavisly i na platforme serveru ...
    samozrejme to nemusi bejt soubor ... muze to bejt tabulka a dotazy se muzou radit do fronty ...
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  12. #12

    Standardní

    2 Fox!MURDER:
    OK, muzes mi polopate popsat to reseni ? Nejak tam nechapu funkci toho automatickyho scriptu po 10minutach

    Co jsem nad tim jeste premyslel o vikendu, tak bych to zkusil asi nasledovne..
    - PHP otevre spojeni s Oracle, cislo si ulozi do pomocne tab v MySQL
    - PHP posle SQL dotaz s vystupem do souboru a odporouci se
    - pri dalsi otevreni stranky prvne jukne do souboru, dokud bude zamceny pro zapis, tak vyplivne hlasku "pracuji"
    - jak se do souboru dostane, uzavre navazen spojeni s Oracle a natahne vystup pro download

    Zatim si nejsem jistej, jestli by to tak slo, k vyzkouseni se dostanu nejdriv asi ve stredu
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  13. #13

    Standardní

    Citace Původně odeslal Aigor
    2 Fox!MURDER:
    OK, muzes mi polopate popsat to reseni ? Nejak tam nechapu funkci toho automatickyho scriptu po 10minutach

    Co jsem nad tim jeste premyslel o vikendu, tak bych to zkusil asi nasledovne..
    - PHP otevre spojeni s Oracle, cislo si ulozi do pomocne tab v MySQL
    - PHP posle SQL dotaz s vystupem do souboru a odporouci se
    - pri dalsi otevreni stranky prvne jukne do souboru, dokud bude zamceny pro zapis, tak vyplivne hlasku "pracuji"
    - jak se do souboru dostane, uzavre navazen spojeni s Oracle a natahne vystup pro download

    Zatim si nejsem jistej, jestli by to tak slo, k vyzkouseni se dostanu nejdriv asi ve stredu
    krok po kroku skript na webu:
    1) je v tabulce ukolu pripraven vysledek ? ano -> zobraz ho, smaz a skonci; ne -> krok 2
    2) je v tabulce ukolu probihajici ukol ? ano -> zobraz "pracuji moment strpeni" -> krok 4; ne -> krok 3
    3) pridej do tabulky ukolu novy ukol (select nebo co to chces udelat) pokracuj krokem 4
    4) zobraz "pracuji moment strpeni" a skonci


    pak tu mas ten script co se spousti kazdejch 10 minut (kazdou minutu ... nebo muze bejt pustenej furt a mit nejakej primerenej sleep)

    1) mame v tabulce ukolu novy ukol? ano -> krok 2; ne -> konec
    2) proved ukol. v poradku? ano-> krok 3; ne -> krok 4
    3) uloz vysledek ukolu do tabulky -> konec
    4) uloz do tabulky ukolu ze se ukol nepodarilo provest a pro -> konec



    (v pripade ze bys to chtel udelat tak aby to zaclo pracovat temer okamzite tak muzes udelat:
    1) mame v tabulce ukolu novy ukol? ano -> krok 2; ne -> krok 5;
    2) proved ukol. v poradku? ano-> krok 3; ne -> krok 4
    3) uloz vysledek ukolu do tabulky -> krok 5;
    4) uloz do tabulky ukolu ze se ukol nepodarilo provest a pro -> krok 5;
    5) usni na 1 sec -> krok 1; )
    je to pochopitelny ?
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  14. #14

    Standardní

    Je to pochopitelny , jen se mi to zda zbytecne komplikovanejsi na provoz nez moje varianta, pokud si nesedim na vedeni, na serveru to chce stale bezici script - refreshovanou stranku, to se mi tam prave moc nelibi zase z ruznych jiny duvodu.
    Ovsem pokud to z nejakych duvodu nepujde jak zamyslim, asi se podobnemu reseni stejne nevyhnu
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

  15. #15

    Standardní

    Citace Původně odeslal Aigor
    Je to pochopitelny , jen se mi to zda zbytecne komplikovanejsi na provoz nez moje varianta, pokud si nesedim na vedeni, na serveru to chce stale bezici script - refreshovanou stranku, to se mi tam prave moc nelibi zase z ruznych jiny duvodu.
    Ovsem pokud to z nejakych duvodu nepujde jak zamyslim, asi se podobnemu reseni stejne nevyhnu
    me to komplikovany neprijde ...
    naopak mi prijde fajn to ze muzes dat vic operaci do fronty a zpracovavat je postupne ... tj. clovek si tam nafrka treba 10 veci odpoledne a kdyz rano prijde do prace tak si akorat vybere vysledky. ale zas se to nebude vykonavat zaroven takze to nebude to SQL pretezovat moc...
    Hrrrr, will you stop using people as human driven search engines? Google.com has all the answers you need.

  16. #16

    Standardní

    Mas pravdu v tom, ze komplikovany to neni - na realizaci asi tak nastejno, ale me trochu odrazuje ze to bude takovy "rozkouskovany" na vic masinach, az to budu za rok preinstalovavat uz budu houby vedet co me tam a jak bezi za scripty (vim o cem mluvim, uz ted tam poustim houfy bataku ktery me setri praci, ale musel bych hoodne vzpominat jak mam co udelany).., pro vysvetlenou PHP/Apache, MySQL a Oracle jsou rozdilne stroje
    Mas pravdou s tou frontou, to je fajn, ale co - oni to stejne nepotrebuji, ja si jenom chci usetrit praci, ucetni si holt pocka
    PC: GA-EP45-DS3R | E8400 + Ninja | 8GB | 80GB SSD X25-M | Zotac 9500GT | Asus Xonar DX | 2x Hauppauge WinTV HVR-1300 | Enermax MODU82+ 525W | Lancool K1
    Foto: Canon 20D | Tokina 12-24/4 | Canon 24-105/4 L IS USM | Canon 50/1,8 | Giottos MTL3361 + 1301-621C | Nodal Ninja NN5

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •