Dicas para maximizar o pushback do SQL
Para obter o melhor aumento de desempenho com a otimização do SQL, preste atenção aos itens desta seção.
Ordem de fluxo. A geração SQL pode ser interrompida quando a função do nó não tem equivalente semântico em SQL porque a funcionalidade de mineração de dados do SPSS Modeleré mais rica do que as operações tradicionais de processamento de dados suportadas pelo SQL padrão. Quando isso acontece, a geração de SQL também é suprimida para todos os nós downstream. Portanto, você pode melhorar significativamente o desempenho reordenando os nós para colocar as operações que interrompem o SQL o mais a jusante possível. O otimizador SQL pode fazer uma determinada quantidade de reordenação automaticamente, mas melhorias adicionais podem ser possíveis. Um bom candidato para isso é o nó Select, que muitas vezes pode ser antecipado. Veja Nodes suportando a pushback SQL para obter mais informações.
Expressões do CLEM. Se um fluxo não puder ser reordenado, você poderá alterar as opções de nó ou as expressões CLEM ou, de outra forma, reformular a maneira como a operação é executada, para que ela não iniba mais a geração de SQL. Os nós Derive, Select e similares geralmente podem ser renderizados em SQL, desde que todos os operadores de expressão do CLEM tenham equivalentes em SQL. A maioria dos operadores pode ser renderizada, mas há vários operadores que inibem a geração de SQL (em particular, as funções de sequência ["@funções"]). Às vezes, a geração é interrompida porque a consulta gerada se tornou muito complexa para o banco de dados manipular. Veja expressões CLEM e operadores suportando o SQL pushback para obter mais informações.
Vários nós de entrada. Quando um fluxo tem vários nós de importação de dados, a geração de SQL é aplicada a cada ramo de importação de forma independente. Se a geração for interrompida em um ramo, ela poderá continuar em outro. Quando duas ramificações se fundem (e ambas podem ser expressas em SQL até a fusão), a fusão em si pode ser substituída por uma união de banco de dados, e a geração pode ser continuada no sentido descendente.
Modelos de pontuação. A pontuação no banco de dados é suportada para alguns modelos, renderizando o modelo gerado em SQL. No entanto, alguns modelos geram expressões SQL extremamente complexas que nem sempre são avaliadas de forma eficaz no banco de dados. Por esse motivo, a geração de SQL deve ser ativada separadamente para cada nugget de modelo gerado. Se você achar que um nugget de modelo está inibindo a geração de SQL, abra as configurações do nugget de modelo e selecione Gerar SQL para este modelo (em alguns modelos, você pode ter opções adicionais que controlam a geração). Execute testes para confirmar que a opção é benéfica para seu aplicativo. Veja Nodes suportando a pushback SQL para obter mais informações.
Ao testar nós de modelagem para ver se a geração SQL para modelos funciona de forma eficaz, recomendamos primeiro salvar todos os fluxos do SPSS Modeler. Observe que alguns sistemas de banco de dados podem travar ao tentar processar o SQL gerado (potencialmente complexo).
Cache de banco de dados. Se estiver usando um cache de nó para salvar dados em pontos críticos do fluxo (por exemplo, após um nó Merge ou Aggregate), certifique-se de que o cache de banco de dados esteja ativado junto com a otimização de SQL. Isso permitirá que os dados sejam armazenados em cache em uma tabela temporária no banco de dados (em vez de no sistema de arquivos) na maioria dos casos.
SQL específico do fornecedor. A maior parte do SQL gerado está em conformidade com os padrões ( SQL-92 ), mas alguns recursos não padronizados e específicos do fornecedor são explorados quando possível. O grau de otimização do SQL pode variar, dependendo da fonte do banco de dados.