

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo di Spark ottimizzatore basato sui costi
<a name="using-the-spark-cbo"></a>

Sparkla versione 2.09 e successive possono utilizzare un ottimizzatore basato sui costi (CBO). Il CBO seleziona il piano di esecuzione più economico per una query in base a varie statistiche tabellari. CBO cerca di ottimizzare l'esecuzione della query rispetto all'utilizzo della CPU e I/O, quindi, di restituirla il più rapidamente possibile. Tuttavia, nella maggior parte dei casi, le statistiche sui dati sono generalmente assenti, soprattutto quando la raccolta delle statistiche è ancora più costosa dell'elaborazione dei dati. Anche se le statistiche sono disponibili, probabilmente non sono aggiornate. Di seguito sono riportate le migliori pratiche per l'utilizzo del CBO:
+ Raccogli statistiche su tutte le colonne utilizzate in operazioni quali join, filtri e raggruppamenti. Questo aiuta l'ottimizzatore a prendere decisioni migliori. Utilizzato `ANALYZE TABLE` per raccogliere statistiche.
+ Aumenta la frequenza della raccolta delle statistiche se i dati cambiano rapidamente. Le statistiche obsolete possono portare a piani non ottimizzati.
+ Inizia con i parametri CBO predefiniti e ottimizzali solo se necessario. Le ottimizzazioni aggressive possono aumentare i tempi di esecuzione.
+ Verifica se CBO sta scegliendo i piani ottimali forzando il piano ottimizzato e confrontando le prestazioni. Abilita la registrazione dell'ottimizzatore per confrontare i piani.
+ Per ottimizzazioni migliori, usa CBO in combinazione con suggerimenti per il partizionamento, il bucketing e la distorsione dei dati. Il partizionamento può aiutare CBO a scalare.
+ Per rilevare tempestivamente le regressioni del piano, monitora continuamente le prestazioni delle query dopo aver abilitato CBO.