Domanda

accedo diversi tavoli a distanza tramite DB Link. Sono molto normalizzati ei dati in ciascuno è efficace-datato. Dei milioni di record in ogni tabella, solo un sottoinsieme di ~ 50k sono record attuali.

I tavoli sono internamente gestite da un prodotto commerciale che getterà una misura enorme se aggiungo indici o apportare modifiche ai suoi tavoli in alcun modo.

Quali sono le opzioni per accelerare l'accesso a queste tabelle?

È stato utile?

Soluzione

Si potrebbe provare a creare un vista materializzata di un sottoinsieme delle tabelle sopra il DB link e poi query da quelli.

Altri suggerimenti

Credo che sei bloccato tra l'incudine e il martello qui, ma in passato la seguente ha funzionato per me:

Si può tirare giù un'istantanea dei dati attuali a determinati intervalli, ogni ora o in ore notturne o quello che funziona, e aggiungere gli indici per le proprie tabelle, se necessario. Se avete bisogno di accesso in tempo reale i dati, allora si può provare a tirare tutti i record attuali in una tabella temporanea e l'indicizzazione in base alle esigenze.

L'overhead aggiuntivo di copia da un database nel vostro potrebbe impallidire il beneficio reale, ma vale la pena un colpo.

Sarà necessario guardare ai piani. Si può essere in grado di cambiare l'ordine dei unire, aggiungere criteri, o fornire suggerimenti per renderlo più veloce, ma senza il piano di spiegare, non si sa perché è lento, in modo da non so nemmeno se si può fare più veloce.

Potrebbe prendere una discarica quotidiana dei record è necessario in un database / tabelle?

I dati di archivio che non è più attuale. (O se questo non è accettabile, i dati che superano una certa soglia di stantio adatto alle vostre esigenze.)

Che dire di creare una vista materializzata / indicizzato? Questo potrebbe aiutare un po '.

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