I would like to clarify a little the definition of a bucket in a SAS hash table. The question is exactly about the hashexp parameter.
According to the SAS DOC, hashexp:
The internal size of the hash table, where the size of the hash table is 2n.
The HASHEXP value is used as an exponent of two to create the size of the hash table. For example, a value of 4 for HASHEXP is equal to a hash table of size 24 or 16. The maximum value for HASHEXP is 20.
The size of the hash table is not equal to the number of elements that can be saved. Think of a hash table as an array of buckets. A 16-hash table will have 16-inch buckets. Each bucket can contain an infinite number of elements. The effectiveness of the hash table lies in the ability of the hash function to display elements and retrieve elements from buckets.
You must set the size of the hash table relative to the amount of data in the hash object in order to maximize the efficiency of the hash search procedures. Try using different HASHEXP values โโuntil you get the best result. For example, if the hash object contains one million elements, the size of the hash table 16 (HASHEXP = 4) will work, but not very efficiently. Hash table sizes of 512 or 1024 (HASHEXP = 9 or 10) will result in better performance.
: -, -?
, , , , . , . , , , , ?
( ) 10 :
http://www2.sas.com/proceedings/forum2008/037-2008.pdf
, - . , hashexp, , . 0 , hashexp 8 256 . -, , ( ). . , 256 (), 8 (2 ^ 8) .
, , , .
, SAS Hash Object Guru. Hashexp -, , .
100obs 10 , -, - - 100obs * 10vars * 8bytes ( , 8- ) 7.8KB 10%.
, SAS , Hash , , . [ -, , ].
: , , , , " " " ", , . , .