Qual è la differenza tra i predicati di accesso e filtro nel piano di esecuzione Oracle? Se ho capito bene, "access" è usato per determinare quali blocchi di dati devono essere letti, e "filter" viene applicato dopo che i blocchi sono stati letti. Quindi, il filtraggio è "malvagio".predicati di accesso e filtro nel piano di esecuzione Oracle
Nell'esempio della sezione predicato informazioni del piano di esecuzione di seguito:
10 - access("DOMAIN_CODE"='BLCOLLSTS' AND "CURRENT_VERSION_IND"='Y')
filter("CURRENT_VERSION_IND"='Y')
perché "CURRENT_VERSION_IND" si ripete in entrambe le sezioni Accesso e filtro?
L'operazione corrispondente è la scansione INDEX RANGE sull'indice, che è definita sui campi (DOMAIN_CODE, CODE_VALUE, CURRENT_VERSION_IND, DECODE_DISPLAY).
La mia ipotesi è che poiché CURRENT_VERSION_IND non è la seconda colonna dell'indice, Oracle non può utilizzarlo durante la fase di accesso. Quindi, accede all'indice dalla colonna DOMAIN_CODE, recupera tutti i blocchi e quindi li filtra in base a CURRENT_VERSION_IND. Ho ragione?
Se un indice è definito su 1a, 2a e 3a colonna in una tabella, Oracle 10 sarà in grado di utilizzare l'indice se i predicati nella clausola WHERE sono sulla prima e terza colonna? Il 2 ° e il 3 °? Pensavo che la risposta fosse no. Inoltre, qual è in realtà la differenza tra i predicati di Accesso e Filtro? –
Dalla versione 9i in poi (da quando hanno introdotto il metodo di accesso all'indice Skip Scan) Oracle può usare l'indice per accedere a colonne 1, 2, 3 o qualsiasi combinazione di esse. –
I predicati di "accesso" sono quelli utilizzati per eseguire la scansione dell'indice: questi predicati vengono utilizzati per selezionare i blocchi di ramo e foglia da recuperare dall'indice e sono più importanti per le prestazioni della query. I predicati "Filtro" sono quelli applicati alle righe restituite dall'indice; determinano quali righe vengono infine inviate al passaggio successivo nel piano di esecuzione della query. Vedere la documentazione per ACCESS_PREDICATES e FILTER_PREDICATES della tabella del piano: http://download.oracle.com/docs/cd/E11882_01/server.112/e10821/ex_plan.htm#PFGRF94708 –