Query lenta.....Mysql 5.7

  • Creatore Discussione Creatore Discussione max1974
  • Data di inizio Data di inizio

max1974

Utente Attivo
7 Mar 2013
107
0
16
Salve ragazzi ho la seguente query....
PHP:
SELECT tb_pianifica.*,tb_grpwbs.id AS n_gruppo,tb_grpwbs.id_collega AS collega,tb_grpwbs.id_status AS status_gruppo,tb_npp.codice AS cod_npp,tb_pm.nome AS nome_pm,tb_st.descrizione AS desc_st,tb_spec.descrizione AS desc_spec,
                (CASE WHEN tb_pianifica.dt_steering <> '0000-00-00' THEN REPLACE(DATE_FORMAT(dt_steering,GET_FORMAT(DATE,'EUR')),'.','/') ELSE ' ' END) AS data_ste,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN tb_grpwbs.wbs ELSE tb_pianifica.wbs END)AS wbs,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN tb_grpwbs.notes ELSE tb_pianifica.notes END)AS notes,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.budget) ELSE tb_pianifica.budget END)AS budget,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.pianificato) ELSE tb_pianifica.pianificato END)AS pianificato,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.cap13) ELSE tb_pianifica.cap13 END)AS cap13,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.cap15) ELSE tb_pianifica.cap15 END)AS cap15,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.cap16) ELSE tb_pianifica.cap16 END)AS cap16,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.capaltri) ELSE tb_pianifica.cap16 END)AS capaltri,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.cap13+tb_pianifica.cap15+tb_pianifica.cap16+tb_pianifica.capaltri) ELSE tb_pianifica.cap13+tb_pianifica.cap15+tb_pianifica.cap16+tb_pianifica.capaltri END)AS tot_eff_a_c,
                (CASE WHEN tb_pianifica.id_grpwbs <> '0' AND tb_grpwbs.id_collega='1' AND tb_grpwbs.id_status='1' THEN SUM(tb_pianifica.budget-tb_pianifica.eff_tot-tb_pianifica.cons_prev_dich+ tb_pianifica.cap13+tb_pianifica.cap15+tb_pianifica.cap16+tb_pianifica.capaltri) ELSE tb_pianifica.budget-tb_pianifica.eff_tot-tb_pianifica.cons_prev_dich+ tb_pianifica.cap13+tb_pianifica.cap15+tb_pianifica.cap16+tb_pianifica.capaltri END)AS residuo_f_a
                FROM tb_pianifica
                LEFT JOIN tb_grpwbs ON tb_grpwbs.id = tb_pianifica.id_grpwbs
                LEFT JOIN tb_npp ON tb_pianifica.id_npp = tb_npp.id
                LEFT JOIN tb_pm ON tb_pianifica.id_pm = tb_pm.id
                LEFT JOIN tb_st ON tb_pianifica.id_sog_tec = tb_st.id
                LEFT JOIN tb_spec ON tb_pianifica.id_spec = tb_spec.id
                GROUP BY wbs
                ORDER BY tb_pianifica.id_grpwbs DESC
premesso che la query stessa lanciata da dentro Mysql risponde (2241 del totale, La query ha impiegato 0.0936 secondi.)
invece quando viene richiamata all'interno di una dataTable con <<sAjaxSource: "ajax_allsel.php">>
impiega circa 30 secondi a refreshare la tabella.....
potreste darmi una mano.....consigliate di usare indici potrebbe essere un problema? secondo voi come/dove usarli ? ma da quello che mostrano i risultati il problema non dovrebbe essere di mysql e dove posso trovarlo ??
grazie.
 
Ultima modifica di un moderatore:
@max1974
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

Discussioni simili