When you view the query plan for an SQL data service, you view the graphical representation of the original query and the graphical representation of the optimized query. The graphical representation describes how the Data Integration Service processes the query. It includes the transformations and the order which the Data Integration Services processes each transformation.
The Developer tool uses the optimizer level that you set in the Developer tool to generate the optimized query. The optimized query displays the query as the Data Integration Service runs it.
For example, you want to query the CUSTOMERS virtual table in an SQL data service. In the
Data Viewer
view, you choose the default data viewer configuration settings, which sets the optimizer level for the query to normal.
You enter the following query in the
Data Viewer
view:
select * from CUSTOMERS where CUSTOMER_ID > 150000 order by LAST_NAME
When you view the SQL query plan, the Developer tool displays the following graphical representation of the query:
The non-optimized view displays the query that you enter. The Developer tool displays the WHERE clause as a Filter transformation and the ORDER BY clause as a Sorter transformation. The Developer tool uses the pass-through Expression transformation to rename ports.
When you view the optimized query, the Developer tool displays the following graphical representation of the query:
The optimized view displays the query that the Data Integration Service runs. Because the optimizer level is normal, the Data Integration Service pushes the filter condition to the source data object. Pushing the filter condition increases query performance because it reduces the number of rows that the Data Integration Service reads from the source data object. Similar to the non-optimized query, the Developer tool displays the ORDER BY clause as a Sorter transformation. It uses pass-through Expression transformations to enforce the datatypes that you specify in the logical transformations.