0 / 0
Go back to the English version of the documentation
最大化 SQL 回送的提示
Last updated: 2024年10月07日
SQL 优化 (SPSS Modeler)

要从 SQL 优化获取最佳的性能改善,请注意此部分中的以下几点。

流顺序。 当节点的函数在 SQL 中没有等效语义时,可能会停止 SQL 生成,因为 SPSS Modeler的数据挖掘功能比标准 SQL 支持的传统数据处理操作更丰富。 发生这种情况时,任何下游节点的 SQL 生成也都会受抑制。 因此,通过对节点重新排序,使导致 SQL 停止的操作尽可能放在下流,或许能够显著改善性能。 SQL 优化器可以自动执行一定数量的重新排序,但可能需要进一步改进。 “选择”节点就是一个很好的备选,此节点通常可以前移。 有关更多信息,请参阅 支持 SQL 回送的节点

CLEM 表达式。 如果流无法重新排序,您或许可以更改节点选项或 CLEM 表达式,或者重新设计操作的执行方式,以使其不再阻止 SQL 生成。 “派生”节点、“选择”节点以及类似的节点通常可以呈现为 SQL,条件是所有 CLEM 表达式运算符都具有对等 SQL。 大多数运算符都可以呈现,但有许多运算符会阻止 SQL 生成(尤其是序列函数 ["@ functions"])。 有时,生成会因为生成的查询变得太复杂,以至于数据库无法处理而停止。 有关更多信息,请参阅 CLEM 表达式和支持 SQL 回送的运算符

多个输入节点。 对于流具有多个数据导入节点的情况,SQL 生成将独立应用于每个导入分支。 即使生成在某个分支中停止,也可以在另一个分支中继续。 对于两个分支合并的情况(并且两个分支在合并前都可以表示为 SQL),合并本身通常可以替换为数据库连接,生成可以在下游继续。

评分模型。 通过将生成的模型呈现为 SQL,支持对某些模型进行数据库内评分。 但是,一些模型会生成极其复杂的 SQL 表达式,而这些表达式在数据库中并非始终都能有效地进行求值。 因此,必须对各个生成的模型块分别启用 SQL 生成。 如果您发现某个模型块正在阻止 SQL 生成,请打开该模型块的设置,然后选择生成此模型的 SQL(对于某些模型,可能还有一些其他选项可控制生成)。 运行测试,确认此选项是否有益于您的应用程序。 有关更多信息,请参阅 支持 SQL 回送的节点

在测试建模节点以查看模型的 SQL 生成是否有效工作时,建议首先保存 SPSS Modeler中的所有流。 请注意,一些数据库系统在尝试处理(潜在复杂)生成的 SQL 时可能会挂起。

数据库高速缓存。 如果要使用节点缓存以在流中的某些重要点(例如,在“合并”或“汇总”节点之后)保存数据,请确保启用数据库缓存和 SQL 优化。 这样将使数据在大多数情况下都能够缓存到数据库中的临时表(而不是缓存到文件系统)。

特定于供应商的 SQL。 生成的大部分 SQL 都符合标准 (SQL-92),但在实际应用中,会利用一些特定于供应商的非标准功能。 根据数据库源不同,SQL 优化程度可能有所变化。

Generative AI search and answer
These answers are generated by a large language model in watsonx.ai based on content from the product documentation. Learn more