ODBC: ERROR 3815: Join inner did not fit in memory
Hi,
When I run a query which joins via VARCHAR column that I run in isql ( ODBC ) then I am getting the error :
ERROR 3815: Join inner did not fit in memory
But if I run same query in vsql client it completes without an error. I am sure there is not any other query and I run the same query with same user. Is there any some memory configuration in ODBC connection?
Thanks.
When I run a query which joins via VARCHAR column that I run in isql ( ODBC ) then I am getting the error :
ERROR 3815: Join inner did not fit in memory
But if I run same query in vsql client it completes without an error. I am sure there is not any other query and I run the same query with same user. Is there any some memory configuration in ODBC connection?
Thanks.
0
Comments
2. Try for a mergejoin ( see the projection design and the join column)
3. If it is hash join,
A hash join to an inner relation could require additional memory than was initially allocated to the query. If memory is available, the hash join executes the query without needing to spill to disk. If memory is not available, the query automatically re-executes with join spill enabled (ENABLE_JOIN_SPILL), but query performance will be slower.
Two ways you can do this:
a. At the session level, Select add_vertica_options('EE','ENABLE_JOIN_SPILL');
b. At the statement level, select /*+ set_vertica_options(EE,ENABLE_JOIN_SPILL) */....
There are several ways of enabling hash join spill in Vertica:
c. Statement level: Select /*+ set_vertica_options('EE','ENABLE_JOIN_SPILL') */….
d. Session level: Select set_vertica_options('EE','ENABLE_JOIN_SPILL');
e. If using 7.1, then at the database level: select set_config_parameter('EEVerticaOptions','ENABLE_JOIN_SPILL');
I set the above parameters but it did not change anything. I am getting the same error again.
Define trace file and DEBUG mode in vertica.ini file, send query with ODBC driver and post a DEBUG info from log.
We have to see an ODBC query to understand a difference between vsql and ODBC. And also post your odbc.ini config (hide sensitive info like UID/PWD).
Example
vertica.ini Execute with pyODBC Trace file: Cheers.