Prima di iniziare il lavoro effettivo per rispondere a una query, Oracle si guarda intorno e prende una decisione su quello che pensa sia il modo migliore per eseguire la query. Questa è l'ottimizzatore . Determina il modo più efficiente per eseguire un'istruzione SQL dopo aver esaminato molti tratti relativi agli oggetti di riferimento e le circostanze specificate nella query .
Anche se si progetta l'applicazione utilizzando il codice artigianale intelligente , si trovano ancora che ci sono indizi necessari per le dichiarazioni prima che l'ottimizzatore segue il percorso di esecuzione " ottimale " . A volte l'ottimizzatore può chiedere aiuto a causa di difetti di 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 il deficit . Tuttavia, suggerendo accenni alla ottimizzatore deve essere eseguita solo quando è assolutamente necessario e se sei uno sviluppatore esperto .
Tipi Hint
Oracle ha tre tipi di suggerimenti.
Registrato HintThe join suggerimento viene utilizzato quando più di una tabella è utilizzata in una query . Questo suggerimento costringe il tipo di procedura di join che viene utilizzata . Si unisce può essere utilizzato in SELECT, UPDATE e DELETE . Il seguente suggerimento LEADING suggerisce unirsi ordini :
/* + LEADING ( [ @ queryblock ] tablespec [ tablespec ] ... ) * /
Query hinta hint per la query viene utilizzata quando la logica specifica deve essere funzionale a una query insieme, al contrario di parte di esso . D'altra parte , non vi è alcun modo per determinare quale parte di una query deve essere usato con il suggerimento . Una query ha sempre la SELECT, UPDATE, DELETE , INSERT o MERGE . Il seguente suggerimento può essere utilizzato con tutti loro :
select /* + * SUGGERIMENTO /namefrom empwhere id = 1;
HintHints tavolo che specificano un tavolo di solito si riferiscono alle tabelle del DELETE , SELECT o UPDATE di una query in cui si verifica il suggerimento , non per tavoli all'interno eventuali pareri trasmessi dalla dichiarazione. Query Optimizer sceglie generalmente il miglior metodo di ottimizzazione senza accenni di essere specificati . Tuttavia, anche se si specifica un hint di tabella nel codice, Query Optimizer può ignorare il suggerimento. Gli hint di tabella vengono ignorati se la tabella non è scelto da Query Optimizer e utilizzato nel piano di query riuscendo
select /* + * ALL_ROWS /employee_id , cognome , stipendio , job_idfrom empwhere employee_id = 4689 ; .
Programmazione © www.354353.com