What is the "SQL size" mentioned in the query engine error displayed when attempting to achieve semi-join algorithm in TIBCO Data Virtualization?

What is the "SQL size" mentioned in the query engine error displayed when attempting to achieve semi-join algorithm in TIBCO Data Virtualization?

book

Article ID: KB0075255

calendar_today

Updated On:

Products Versions
TIBCO Data Virtualization 7.0 and later

Description

An attempt to achieve a semi-join algorithm in TIBCO Data Virtualization (TDV) fails and falls back to another join algorithm.

Example error message:    "Cannot perform semi-join optimization on <your data source type> because the semi-join SQL size exceeds the size limit '8000'"

Issue/Introduction

This concerns query engine errors.

Resolution

The "SQL size" is referring to the actual total length of the characters that comprise the sql string that was generated by our query engine.  The resulting sql that the query engine attempted to push down into a data source exceeded our knowledge of the data source's current jdbcds.max_sql_length limit. 

In the example above, we had set a 8000 character limit on a single sql statement that we could push into a particular data source.  This is to protect the external data source from receiving a sql statement that could be longer than the source is capable of processing. However, the setting in TDV may not be current with the data source's actual capability, thus unnecessarily preventing TDV from pushing the full sql statement to the data source.

You can increase this limit by altering or adding these entries to your
/conf/adapters/system/<adapter name>/<adapter name>_values.xml
or
/conf/adapters/custom/<adapter name>/<adapter name>_values.xml


EXAMPLE-  (Your actual max length setting should comply to your data source's ability. The namespace label used here is an arbitrary example)

<ns171:attribute xmlns:ns171="http://www.compositesw.com/services/system/util/common">
  <ns171:name>/custom/jdbcds.max_sql_length</ns171:name>
  <ns171:type>STRING</ns171:type>
  <ns171:value>32000</ns171:value>
  <ns171:configID>jdbcds.max_sql_length</ns171:configID>
</ns171:attribute>

This example will set the sql statement length to thirty two thousand characters.