Per ottenere un incremento significativo delle prestazioni dall'ottimizzazione SQL, leggere con attenzione questa sezione.
Ordine del flusso. La generazione SQL può essere interrotta quando la funzione del nodo non ha un equivalente semantico in SQL poiché la funzionalità di data mining di SPSS Modelerè più ricca delle tradizionali operazioni di elaborazione dati supportate da SQL standard. Quando si verifica tale situazione, la generazione SQL viene eliminata anche per tutti i nodi downstream. Pertanto, è possibile migliorare in modo significativo le prestazioni riordinando i nodi in modo da mettere le operazioni che interrompono SQL quanto più possibile downstream. L'ottimizzatore SQL può eseguire automaticamente una certa quantità di riordino, ma potrebbero essere possibili ulteriori miglioramenti. Un buon candidato a questo scopo è il nodo Seleziona, che spesso può essere spostato in avanti. Per ulteriori informazioni, consultare Nodi che supportano il push back SQL .
Espressioni CLEM. Se un flusso non può essere riordinato, è possibile modificare le opzioni del nodo o le espressioni CLEM oppure ricomporre diversamente il modo in cui viene eseguita l'operazione, in modo che la generazione SQL non venga più inibita. I nodi Ricava, Seleziona e simili possono essere interpretati in codice SQL, purché tutti gli operatori delle espressioni CLEM abbiano equivalenti SQL. La maggior parte degli operatori può essere interpretata, ma vi sono numerosi operatori che inibiscono la generazione SQL (in particolare, le funzioni di sequenza [“funzioni @”]). Talvolta, la generazione viene interrotta perché la query generata è diventata troppo complessa per essere gestita dal database. Per ulteriori informazioni, consultare Operatori ed espressioni CLEM che supportano il push back SQL .
Più nodi di input. Quando un flusso ha più nodi di importazione dati, la generazione SQL viene applicata a ciascun ramo di importazione in modo indipendente. Se la generazione viene interrotta su un ramo, può proseguire su un altro. Se due rami si uniscono, e se entrambi possono essere espressi in codice SQL fino all'unione, l'unione stessa può essere sostituita con un'unione del database e la generazione può proseguire downstream.
Modelli di calcolo del punteggio. Per alcuni modelli, per il calcolo del punteggio in-database il modello generato viene interpretato in codice SQL. Tuttavia, alcuni modelli generano espressioni SQL estremamente complesse che non sempre vengono valutate in modo efficiente nel database. Per questo motivo, la generazione SQL deve essere abilitata separatamente per ogni nugget di modello generato. Se si è rilevato che un nugget del modello inibisce la generazione SQL, andare alle impostazioni del nugget del modello e selezionare Genera SQL per questo modello (con alcuni modelli sono disponibili ulteriori opzioni per il controllo della generazione). Eseguire dei test per confermare l'utilità dell'opzione per l'applicazione in uso. Per ulteriori informazioni, consultare Nodi che supportano il push back SQL .
Quando si eseguono test dei nodi Modelli per verificare se la generazione SQL per i modelli funziona in modo efficace, si consiglia di salvare prima tutti i flussi da SPSS Modeler. Si noti che alcuni sistemi di database possono rimanere in attesa durante il tentativo di elaborare l'SQL generato (potenzialmente complesso).
Memorizzazione nella cache del database. Se si sta utilizzando una cache del nodo per salvare i dati in punti critici del flusso (per esempio, dopo un nodo Unione o Aggregazione), assicurarsi che siano attivate sia la cache del database che l'ottimizzazione SQL. In questo modo, nella maggior parte dei casi i dati possono essere memorizzati nella cache in una tabella temporanea nel database anziché nel file system.
SQL specifici dei fornitori. La maggior parte del codice SQL generato è conforme agli standard (SQL-92), ma talvolta, se utili, vengono sfruttate alcune funzioni non standard specifiche dei fornitori. Il grado di ottimizzazione SQL può variare a seconda dell'origine del database.