2012-02-21 18 views
5

Ho una tabella molto grande che contiene circa 20 milioni di righe. Devo recuperare circa 4 milioni di righe da questa tabella in base ad alcuni criteri di filtro. Tutte le colonne nei criteri di filtraggio sono coperte da un indice e le statistiche della tabella sono aggiornate.Dimensioni della riga ottimali da recuperare alla volta da un grande tavolo

Sono stato suggerito che invece di caricare tutte le righe in un unico passaggio, utilizzare una dimensione del lotto, ad es. Dì 80000 righe alla volta e sarà più veloce rispetto al caricamento di tutte le righe alla volta.

Puoi suggerire se questa idea ha senso?

Se ha senso, quale sarà la dimensione della riga ottimale da caricare alla volta.

+0

Che cosa stai cercando di fare con le righe selezionate? –

+0

Devo caricare queste righe db in memoria e mantenere un po 'di memoria nella cache di roba – ManojGumber

+0

Bene, oltre ad usare una clausola 'order by' (che può avere un impatto significativo sulla prestazione della query), non lo sono certo come sarai in grado di garantire che una riga non verrà visualizzata in più di un lotto. –

risposta

1
  1. Può essere molto più veloce del singolo sql.
  2. Dividi i dati utilizzando PK.
  3. Dimensioni batch. Dipende dalla lunghezza delle linee e dal tempo di elaborazione. Inizia con 10 000.
  4. Se possibile, inserire il processo.
0

Utilizzare SSIS per manipolare i dati ... fa tutto ciò che si desidera come threading e ottimizzazioni sul dimensionamento del carico e sulla cache.

Creare un cubo o esaminare gli strumenti del data warehouse di Business Intelligence ...

Problemi correlati