Enable Join Spill
Hi, As far as I know, by default the join spill is enabled. I am using Vertica 6.1.2. But still I get the error " Join doesn't fit in memory". My question is if it doesn't fit in the memory then it should spill to disk automatically. But when I explicitly define the enable then the query runs: select /* add_vertica_options('EE','Enable_Join_Spill')*/ (Query)..... How to set the Join Spill globally so that if the query doesn't fit in the memory, it should spill to disk? Regards, Abhi
0
Comments
I want to know resource pool memory allocation behaviour.
Lets say I have three users A, Band C. I have created three user defined pools and allocated maxmemory 80% to each. Now what happens when users A and B are executing their task but C is idle. Does the memory allocated to C is reserved or it will be used by A and B if required.
Is it a good approach to define separate pool for every users? If not, then how to overcome this?
Suppose the query run by ETL sometimes fail with the error "Insufficient resource to execute on general pool". Next time they run, it gets executed. So I am bit surprised and confused.
Thanks in advance !!!!
Regards,
Abhishek
Thanks, this option is great but how to turn it off globaly?
SELECT set_config_parameter('EEVerticaOptions','ENABLE_JOIN_SPILL');
select /*+add_vertica_options('EE','Enable_Join_Spill')*/ (Query)...
=> SELECT set_config_parameter('EEVerticaOptions','ENABLE_JOIN_SPILL');
This isn't usually a desirable thing to do - if you do this, then every single hash join will be forced into using the often-slower join spill method. It would be far better to enable join spill on a specific query using a hint or session-specific option setting.
--Sharon
My 5 cents: its very important to install last fixes of Vertica:
Can we query any of the system tables to see if join spills are occurring? And how much it spills to disk?
How to profile a single statement
Unless you have specified a resource pool parameter "MEMORYSIZE", none of those 3 users will hog up the memory.
I'm not entirely sure if it is a good approach to define separate pool for each user since I have no context. But, it is going to become more and more tedious to manage so many users. I recommend looking into HP Vertica Resource Manager documentation to find what your needs are.
-Bohyun