Me gustaría aclarar un poco sobre la definición de un cubo en la tabla hash SAS. La pregunta es exactamente sobre el parámetro hashexp.¿Cuál es exactamente el tamaño de tabla en SAS HashTable especificado por hashexp?
Según el SAS Docs, hashexp es:
tamaño de la tabla interna del objeto hash, donde el tamaño de la tabla hash es 2n.
El valor de HASHEXP se utiliza como un exponente de potencia de dos para crear el tamaño de la tabla hash. Por ejemplo, un valor de 4 para HASHEXP equivale a un tamaño de la tabla hash del 24, o 16. El valor máximo para HASHEXP es 20.
El tamaño tabla hash no es igual a la cantidad de artículos que pueden ser almacenado Imagine la tabla hash como una serie de 'cubos'. Un tamaño de tabla hash de 16 tendría 16 'cubos'. Cada cubo puede contener un número infinito de elementos. La eficacia de la tabla hash reside en la capacidad de la función hashing para asignar elementos a los elementos y recuperarlos de los depósitos.
Debe establecer el tamaño de la tabla hash en relación con la cantidad de datos en el objeto hash para maximizar la eficacia de las rutinas de búsqueda de objetos hash. Pruebe diferentes valores de HASHEXP hasta que obtenga el mejor resultado. Por ejemplo, si el objeto hash contiene un millón de elementos, un tamaño de tabla hash de 16 (HASHEXP = 4) funcionaría, pero no de manera muy eficiente. Un tamaño de tabla hash de 512 o 1024 (HASHEXP = 9 o 10) daría como resultado el mejor rendimiento.
La pregunta es ¿qué es exactamente un tamaño de la tabla hash de , si bien no es una cantidad de datos en el objeto hash?
Debería entenderse como si quisiéramos asignar tanta memoria como sea necesario pero no menos, no más. Es un poder de dos para que las cosas funcionen rápido. Pero no limita la cantidad de datos posiblemente utilizados, solo indica cuánto se va a usar, ¿no?