Brian Moser created AIRFLOW-6445:
------------------------------------
Summary: Templating is not used on "parameters" field (but it
should)
Key: AIRFLOW-6445
URL: https://issues.apache.org/jira/browse/AIRFLOW-6445
Project: Apache Airflow
Issue Type: Improvement
Components: database, operators
Affects Versions: master
Reporter: Brian Moser
In several database related classes (SqlSensor, MySqlOperator, MsSqlOperator,
OracleOperator, PostgresOperator, JdbcOperator, SqliteOperator, ...) exists a
possibility to use parameters with a SQL statement, but templating is not
enabled on the parameters, only on the SQL statement itself.
Not using parameters has a performance impact on the database. The db has to
parse a SQL statement to find an optimized way to execute it. Because this
operation is a performance bottleneck the calculated execution plan is cached
and reused when the exact same statement is executed again. But the database
only caches a certain number of execution plans, if one application
unnecessarily litters the cache with a lot of similar statements, other
applications suffer. (More detailed explanation:
https://www.akadia.com/services/ora_bind_variables.html)
Therefore please add templating to the parameters so that the actual SQL
statement doesn't need to change between runs.
old:
template_fields = ('sql',) # type: Iterable[str]
new:
template_fields = ('sql', 'parameters',) # type: Iterable[str]
--
This message was sent by Atlassian Jira
(v8.3.4#803005)