Pomalé zavádění modulů Varia na Windows server 2008 a Windows 7

V případě, že je Vario provozováno na systémech Windows 7 nebo Windows server 2008 a pro jeho běh je použit Access 2003 nebo 2007, dochází v polovině případů k tomu, že otevření prvního modulu po spuštění Varia trvá neúnosně dlouho.

Problém zapříčiňuje chyba ve spolupráci MS Jet 4.0 a OS, která se projevuje tím, že při spuštění dotazu je databázovému stroji přidělována paměť po velmi malých blocích, které jsou zároveň přidělovány velmi pomalu (mezi každým dalším přidělením bloku paměti je určitá uměle vyvolaná prodleva). Toto chování lze sledovat ve správci úloh systému Windows.

Problém je možno vyřešit změnou hodnoty MaxBufferSize v klíči HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4.0.

Výchozí hodnota 0 znamená, že se vellikost bufferu zvyšuje podle potřeby, díky čemuž dochází ke zpomalení. První volání do databáze totiž určí nastavení velikosti bufferu, které se má použít pro dané připojení a zároveň pro připojení následující. To znamená, že první nastavení je sice dostatečné, avšak již není dostatečné pro další dotazy. V tom okamžiku je potřeba požádat systém o přidělení dalších bloků paměti a tehdy dojde k výraznému zpomalení.

Aby se chyba eliminovala, je nutno nastavit hodnotu MaxBufferSize na nenulovou hodnotu, která však nesmí být příliš vysoká, neboť potom se může objevit nová chyba „Byl překročen limit systémových prostředků”. Jako rozumná experimentálně určená hodnota se zatím jeví 28672 desítkově. Záleží však na konkrétní situaci a je možné, že v některých případech bude i tato hodnota příliš vysoká.