Suggerimenti SQL Oracle

May 4

I suggerimenti sono Oracle funzionalità di database che permettono ai programmatori di dire Oracle che già conoscono il percorso migliore esecuzione per una query SQL e fornire informazioni per questo percorso in modo che Oracle acquisirà esso. I suggerimenti sono semplici comandi che raccontano l'ottimizzatore di fare ciò che viene detto.

suggerendo Suggerimenti

Prima di iniziare il lavoro effettivo per rispondere a una query, Oracle si guarda intorno e prende una decisione su quello che pensa è il modo migliore per eseguire la query. Questo è l'ottimizzatore. Esso determina il modo più efficiente per eseguire un'istruzione SQL dopo aver esaminato molti tratti legati agli oggetti di riferimento e le circostanze specificate nella query.

Anche se si progetta l'applicazione utilizzando codice predisposto intelligente, si continua a scoprire che ci sono i suggerimenti necessari per le dichiarazioni prima che l'ottimizzatore segue la "ottimale" percorso di esecuzione. A volte l'ottimizzatore può richiedere aiuto a causa di difetti nel suo modello o problemi nativi durante la raccolta, l'archiviazione e l'elaborazione di dati complessi. Suggerimenti possono forzare l'ottimizzatore di fare il miglior percorso di esecuzione per una query, non importa quale sia la carenza. Tuttavia, suggerendo suggerimenti per l'ottimizzatore dovrebbe essere tentata solo se strettamente necessario e se sei uno sviluppatore esperto.

Tipi suggerimento

Oracle ha tre tipi di suggerimenti.

Partecipa Suggerimento
Il suggerimento join viene utilizzato quando più di una tabella viene utilizzato in una query. Questo suggerimento costringe il tipo di unione procedura che viene utilizzata. I join può essere utilizzato in SELECT, UPDATE e DELETE. Il seguente suggerimento LEADER suggerisce unirsi ordini:

/ + LEADING ([@queryblock] tablespec [tablespec] ...) /

Suggerimento Query
Un suggerimento query viene utilizzata quando la logica specifica deve essere funzionale a tutta una interrogazione, al contrario di parte di esso. D'altra parte, non vi è alcun modo per determinare quale parte di una query da utilizzare con il suggerimento. Una query ha sempre la SELECT, UPDATE, DELETE, INSERT o MERGE. Il seguente suggerimento può essere utilizzato con tutti loro:

selezionare / + SUGGERIMENTO / nome
da emp
dove id = 1
ANDARE

table_hint
Suggerimenti che specificano un tavolo di solito si riferiscono a tabelle nella DELETE, SELECT, o UPDATE di una query in cui si verifica il suggerimento, non tavoli all'interno eventuali pareri trasmessi dalla dichiarazione. Query Optimizer sceglie generalmente il miglior metodo di ottimizzazione senza essere specificati i suggerimenti. Tuttavia, anche se si specifica un hint di tabella nel codice, query optimizer può ignorare il suggerimento. hint di tabella verranno ignorati se la tabella non è scelto da Query Optimizer e utilizzato nel piano di query successiva.

selezionare / + ALL_ROWS / employee_id, cognome, stipendio, job_id
da emp
dove employee_id = 4689;