4. Heštabulas izmēru mainīšana
Ar labu hešfunkciju parasti heštabula var saturēt 70% - 80% elementu vairāk cik tajā var ievietot ierakstus un vēl uzrādīt labu failu pieejas laiku. Atkarībā no izvēlētā kolīziju novēršanas veida šis laiks var strauji pasliktināties tiklīdz pievieno jaunus elementus. Lai to novērstu tiek izveidota jauna, lielāka tabula, kad noslodzes koeficients pārsniegts kādu slieksni, kurā ievieto arī vecās tabulas saturu.
Taču šī operācija var dārgi maksāt un tās nepieciešamība ir heštabulas mīnuss. Gadījumos, kad heštabula tiek palielināta par vienu ierakstu ik reizi pēc jauna elementa pievienošanas, ātrdarbība strauji samazinās un zūd heštabulas jēga. Taču, ja heštabulu palielina par kādu konstantu lielumu, piemēram, par 10% vai 100%, tiek iegūts, ka heštabulas palielināšanas notiek neregulāri un reti un rezultātā informācijas meklēšanai patērētais laiks paliek konstants.
Taču reāllaika sistēmās heštabulu palielināšana nevar tikt veikta uzreiz, jo tā varētu pārtraukt svarīgas sistēmas operācijas. Viena vienkārša pieeja ir sākotnēji iedalīt tabulai pietiekami daudz vietas nepieciešamajiem datiem un nepieļaut pārāk daudz elementu pievienošanu. Cita, bet vairāk atmiņu noslogojošs paņēmiens ir mainīt izmēru pakāpeniski:
• izvietot jauno heštabulu, bet atstāt arī veco heštabulu un pārbaudīt tās abas meklējot informāciju;
• ik reizi, kad realizē ievietošanu, pievieno šo elementu jaunajai tabulai un arī pārvieto k elementus no vecās uz jauno tabulu;
• kad visi elementi ir pārvietoti no vecās tabulas atbrīvojas;
Cits veids kā uzlabot heštabulas izmēra izmainīšanu ir izvēlēties hešfunkciju, kuras rezultāti daudz nemainās mainot heštabulas izmēru.
…