Comprensione del controllo del locus e degli eseguibili analitici

Gli AE possono essere eseguiti sia sulle SPU che sull'host. È preferibile eseguire un'operazione su più SPU rispetto a un singolo host, in modo da poter eseguire porzioni dell'operazione in modo simultaneo, sfruttando l'architettura massicciamente parallela dell'appliance Netezza. Tuttavia, ci sono situazioni in cui è auspicabile eseguire un'operazione solo sull'host. Ad esempio, quando è necessario visualizzare tutti i dati di tutte le fette di dati, è possibile utilizzare una funzione di tabella AE per eseguire un'operazione di tipo aggregativo. In una singola query, l'output delle AE eseguite sulle SPU diventa l'input di un'altra AE eseguita sull'host. L'AE sull'host esegue un'operazione di aggregazione e restituisce un risultato per la query. Il debug sull'host è molto più semplice di quello sulle SPU.

Gli AE vengono richiamati da un sistema di database che esegue l'ottimizzazione delle query. A volte l'ottimizzatore del database sceglie di eseguire una funzione in un particolare locus (SPU o host), il che significa che anche l'AE viene eseguito in quel locus. Le AE e le UDX sono soggette alle stesse regole di localizzazione, ma per le AE l'esito può essere più problematico, soprattutto per le AE remote. Gli AE possono essere utilizzati come estensioni del database, ma anche come meccanismo di elaborazione concorrente, poiché vengono eseguiti solo sulle SPU. Se un AE remoto è in esecuzione solo sulle SPU e una query o una parte di essa viene eseguita inaspettatamente sull'host, la query si blocca. Pertanto, è utile comprendere il controllo del locus prima di scrivere un AE. Le sezioni successive descrivono il comportamento delle funzioni SQL scalari, tabellari e aggregate.