Thread: SortMem...

SortMem...

From
mchron@aueb.gr
Date:
Hi
in the function ExecChooseHashTableSize() 
(~/src/backend/executor/nodeHash.c)
are determined the bytes of the hash table. The correspondent code is: 

/*
* Target in-memory hashtablesize in SortMem kilobytes
*/ hash_table_bytes = SortMem *1024L 

(~/src/include/miscadmin.h)
extern DLLIMPORT int SortMem; 

What SortMem represents? Where is evaluated and what is its value? 

I want to create 2 hash tables. One for the inner and one for the outer rel. 
What should be the hash_table_bytes in that case? 

Thanks in advance!-martha


Re: SortMem...

From
Bruce Momjian
Date:
mchron@aueb.gr wrote:
> Hi
> in the function ExecChooseHashTableSize() 
> (~/src/backend/executor/nodeHash.c)
> are determined the bytes of the hash table. The correspondent code is: 
> 
> /*
> * Target in-memory hashtablesize in SortMem kilobytes
> */
>   hash_table_bytes = SortMem *1024L 
> 
> (~/src/include/miscadmin.h)
> extern DLLIMPORT int SortMem; 
> 
> What SortMem represents? Where is evaluated and what is its value? 
> 
> I want to create 2 hash tables. One for the inner and one for the outer rel. 
> What should be the hash_table_bytes in that case? 

SortMem is a config value found in your postgresql.conf or using SHOW
SORTMEM.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073