2012-07-11 8 views
5

Voglio sapere come possiamo eseguire sql query in background ... Ho una grande query che richiede così tanto tempo che voglio eseguire questo come sfondo in modo che il mio tempo di caricamento della pagina sarà inferiore ..come possiamo eseguire sql query in background

+0

check http://stackoverflow.com/questions/60878/priority-of-a-query-in-ms-sql – Sliq

risposta

3

Eseguire la query in uno script PHP utilizzando cron e memorizzare il risultato nella cache.

2

Vorrei suggerire l'approccio cron e Cache, o implementare l'uso di AJAX.

Con CRON e Cache, eseguire la query, quindi serializzarlo e salvarlo in un file per sanità mentale. Chiama e unserialize quando necessario.

Con AJAX, quando la pagina viene caricata, effettuare una chiamata a un file che esegue e restituisce la query. In questo modo, è possibile visualizzare un indicatore di attesa mentre il server esegue la query e sono separati l'uno dall'altro.

3

È possibile chiamare le query in script separati con AJAX. Quando viene richiesta la pagina, elaborare normalmente PHP, eseguire il rendering e inviare la pagina al visitatore e avviare immediatamente uno script AJAX richiedendo un altro script PHP che esegua la query lenta. La pagina verrà caricata mentre la query viene eseguita e quando si ottengono i risultati dalla query, utilizzare un piccolo JavaScript per incorporare i risultati. Il guadagno è che mentre la pagina sta caricando la query è in esecuzione, quindi stai facendo entrambe le cose contemporaneamente.

Cerca anche di ottimizzare la query e assicurati di aver impostato un indice sulle tue tabelle per velocizzare la query.

+0

thanks..I Sto anche pensando così ... –

+0

Questa non sarà una soluzione per le query che vuoi sempre eseguire. Cosa succede se l'utente disabilita javascript o usa un browser che non supporta javascript? – nonybrighto

+0

No, questa è una soluzione per una richiesta "in background" che funziona lentamente. Se vuoi farlo subito, colpisci un altro endpoint. Stiamo parlando di due cose diverse. Dal momento che JavaScript è disabilitato, probabilmente dovrai informare l'utente che hanno perso funzionalità a causa della loro scelta. Una webapp con qualche sofisticazione, come l'esecuzione di query sul server mentre l'utente fa qualcos'altro, avrà o avrà JavaScript o richiederà all'utente di aggiornare e vedere se la query è stata eseguita. Non c'è niente di sbagliato nel rendere JavaScript un requisito per ottenere la piena funzionalità. –

0

Scrivi la query nel file PHP e pianificala in base all'intervallo di tempo o di tempo in cui desideri eseguirla. Per gli orari linux CRON o l'uso di Windows Task Scheduler altro si può attivare dal Ajax richiesta

Problemi correlati