| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| <!DOCTYPE concept PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd"> |
| <concept id="scan_node_codegen_threshold" rev="2.5.0 IMPALA-1755"> |
| |
| <title>SCAN_NODE_CODEGEN_THRESHOLD Query Option (<keyword keyref="impala25"/> or higher only)</title> |
| <titlealts audience="PDF"><navtitle>SCAN_NODE_CODEGEN_THRESHOLD</navtitle></titlealts> |
| <prolog> |
| <metadata> |
| <data name="Category" value="Impala"/> |
| <data name="Category" value="Impala Query Options"/> |
| <data name="Category" value="Performance"/> |
| <data name="Category" value="Developers"/> |
| <data name="Category" value="Data Analysts"/> |
| </metadata> |
| </prolog> |
| |
| <conbody> |
| |
| <p rev="2.5.0 IMPALA-1755"> |
| <indexterm audience="hidden">SCAN_NODE_CODEGEN_THRESHOLD query option</indexterm> |
| The <codeph>SCAN_NODE_CODEGEN_THRESHOLD</codeph> query option |
| adjusts the aggressiveness of the code generation optimization process |
| when performing I/O read operations. It can help to work around performance problems |
| for queries where the table is small and the <codeph>WHERE</codeph> clause is complicated. |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/type_integer"/> |
| |
| <p> |
| <b>Default:</b> 1800000 (1.8 million) |
| </p> |
| |
| <p conref="../shared/impala_common.xml#common/added_in_250"/> |
| |
| <p conref="../shared/impala_common.xml#common/usage_notes_blurb"/> |
| |
| <p> |
| This query option is intended mainly for the case where a query with a very complicated |
| <codeph>WHERE</codeph> clause, such as an <codeph>IN</codeph> operator with thousands |
| of entries, is run against a small table, especially a small table using Parquet format. |
| The code generation phase can become the dominant factor in the query response time, |
| making the query take several seconds even though there is relatively little work to do. |
| In this case, increase the value of this option to a much larger amount, anything up to |
| the maximum for a 32-bit integer. |
| </p> |
| |
| <p> |
| Because this option only affects the code generation phase for the portion of the |
| query that performs I/O (the <term>scan nodes</term> within the query plan), it |
| lets you continue to keep code generation enabled for other queries, and other parts |
| of the same query, that can benefit from it. In contrast, the |
| <codeph>IMPALA_DISABLE_CODEGEN</codeph> query option turns off code generation entirely. |
| </p> |
| |
| <p> |
| Because of the way the work for queries is divided internally, this option might not |
| affect code generation for all kinds of queries. If a plan fragment contains a scan |
| node and some other kind of plan node, code generation still occurs regardless of |
| this option setting. |
| </p> |
| |
| <p> |
| To use this option effectively, you should be familiar with reading query profile output |
| to determine the proportion of time spent in the code generation phase, and whether |
| code generation is enabled or not for specific plan fragments. |
| </p> |
| |
| <!-- |
| <p conref="../shared/impala_common.xml#common/related_info"/> |
| <p> |
| </p> |
| --> |
| |
| </conbody> |
| </concept> |