Ho bisogno di calcolare la quantità totale disponibile dal database, e per questo ho bisogno di fare join con un paio di tabelle. Non è possibile incollare tutta la mia interrogazione, ma ciò che segue è la struttura di base:Calcola la quantità in un modo più veloce rispetto a questa query
select sum(qty) as qty, field
from
(
(
select SUM(table1.qty) as qty , field
from
table1
left join table2 on table1.field = table2.field
left join table3 on table3.field = table2.field
where condition
group by fieldname
)
UNION ALL
(
selecy SUM(table1.qty) as qty,field
from
table1
left join table2 on table1.field = table2.field
left join table3 on table3.field = table2.field
where condition
group by fieldname
)
UNION ALL
(
select SUM(table1.qty) as qty, field
from
table1
left join table2 on table1.field = table2.field
left join table3 on table3.field = table2.field
where condition
group by fieldname
)
...
..
12 times
) as temp
LEFT JOIN another_main_table ON another_main_table.field = temp.field
Ho preso cura di indici di ogni tabella, ma ci sono alcuni sindacati che stanno prendendo più tempo del previsto. Ci sono circa 45 tabelle utilizzate in questa query e tutte sono esaminate completamente. Alcune tabelle hanno circa 2,6 milioni di record. Puoi per favore suggerirmi come posso ottenere il risultato in 1/2 secondi? A partire da ora sto ottenendo il risultato in circa un minuto.
Non è chiaro cosa è necessario fare con questa query. Le tabelle1, tabella2, tabella3 sono le stesse in tutte le query? Se è così basta usare una query con 'WHERE Condition1 O Condition2 OR .....' – valex
Potrebbe essere una brutta query, ma potrebbe essere necessario pubblicare la query più completa. Potrebbe anche essere necessario postarlo in una posizione esterna al sito come pastebin.com se è troppo grande per essere accettato qui. – DRapp
hey .. Tutte le tabelle table1, table2, table3 sono diverse. Io so se potrei incollare la query qui sarebbe più facile guidarmi..ma non posso pubblicare query qui perché .. Sono limitato a non rivelare informazioni su database e tabelle :(. Scusa per quello. –