Domanda

Abbiamo 15 tavoli di audit trail che devono essere combinati per cercare di correzione delle scorte con determinati criteri solo.

E 'meglio fare un UNION ALL con tutti i tavoli, e quindi filtrare i criteri, o gettare i criteri nel mix su ogni tavolo prima di fare un UNION ALL?

Ogni tabella è solo qualche migliaio di record e l'elenco filtrato finale è in genere meno di mille, che viene uscita per la segnalazione.

Un'applicazione di FoxPro genera le tabelle e abbiamo poco controllo della progettazione di database in questa fine.

È stato utile?

Soluzione

E 'generalmente buona norma ridurre la riga contare il più presto possibile nella query, il che significa filtrare ogni query anziché filtro del risultato uniti. Ci sono possibilità tuo UNION ALL set si tradurrà in una tabella temporanea essere creato se si filtra dopo che unisce, e questo non è il migliore, se le tabelle sono grandi (voglio dire ... grande ).

Credo che possiamo accettare un'eccezione alla "buona prassi generale" di cui sopra ... Nei casi in cui avere i filtri in un unico punto migliora notevolmente la leggibilità / manutenibilità della query. (E i benefici superano la perdita potenziale).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top