2010-03-23 3 views
6

Accedo a più tabelle da remoto tramite DB Link. Sono molto normalizzati e i dati di ciascuno sono efficaci. Dei milioni di record in ogni tabella, solo un sottoinsieme di ~ 50k sono record correnti.Come posso accelerare le query con le tabelle a cui non posso aggiungere indici?

Le tabelle sono gestite internamente da un prodotto commerciale che genererà un grande adattamento se aggiungo indici o apporto modifiche alle sue tabelle in alcun modo.

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

+1

Questo programma blocca anche le tabelle partizionate? Perché se no, sarebbe un modo per andare. – kurast

risposta

9

Si potrebbe provare a creare un materialized view di alcuni sottoinsiemi delle tabelle sul collegamento DB e quindi eseguire una query da questi.

2

Dati di archivio non più aggiornati. (O se questo non è accettabile, i dati che supera qualche soglia di staleness adatta alle tue esigenze.)

4

Avrai bisogno di guardare i piani. Potresti essere in grado di modificare l'ordine del join, aggiungere criteri o fornire suggerimenti per renderlo più veloce, ma senza il piano di spiegazione, non sai perché è lento, quindi non sai nemmeno SE puoi farlo Più veloce.

2

È possibile eseguire una copia giornaliera dei record necessari nel proprio database/tabelle?

6

penso che sei bloccato tra l'incudine e il martello qui, ma in passato seguito ha lavorato per me:

Si può tirare giù un'istantanea dei dati attuali a intervalli specifici, ogni ora o di notte o qualsiasi altra cosa, e aggiungi i tuoi indici alle tue tabelle secondo necessità. Se hai bisogno di accesso in tempo reale ai dati, puoi provare a estrarre tutti i record correnti in una tabella temporanea e indicizzare se necessario.

L'ulteriore sovraccarico di copia da un database nel proprio potrebbe minare l'effettivo vantaggio, ma vale la pena provare.

1

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

+1

Una vista indicizzata è la terminologia di SQL Server - in Oracle si chiamano viste materializzate. –