Převzetí kontroly nad správcem mezipaměti

Automaticky přeloženo z Deepl

4D v16 představil nový plně optimalizovaný správce mezipaměti pro 64bitovou produktovou řadu. 4D v16 R2 dává moc našim pokročilým vývojářům 4D, aby sami převzali kontrolu!

Interní algoritmus správce mezipaměti je založen na konceptu priority přiřazené každému typu objektu, který se má uložit do paměti mezipaměti. Ve výchozím nastavení přiřazuje algoritmus správce mezipaměti indexu vyšší hodnotu priority než záznamům. A nedávno použité objekty (záznamy nebo indexy) mají vyšší prioritu zůstat ve vyrovnávací paměti než objekty, které nebyly použity v posledních dvou dnech atd…

Z adresy 4D v16 R2, 4D může vývojář převzít kontrolu. Při spuštění můžete jemně doladit priority ve vyrovnávací paměti pro tabulky, indexy a „velké objekty “ v závislosti na potřebách vaší aplikace. Kromě toho můžete dokonce definovat výjimky pro jeden proces. Když je třeba spustit nějaké specifické operace, jako například velký import, vývojář 4D nejlépe rozhodne, která tabulka nebo index má mít v cache vyšší prioritu pro určitý časový úsek.

Nové příkazy pro řízení priority

Sada nových příkazů umožňuje velmi jemné nastavení: pro každý index, každou tabulku, dokonce s rozdíly pro hlavní záznam a „velké části“ ( bloby / text / obrázky / objekty).

Definovat při spuštění prioritu pro všechny procesy

SET TABLE CACHE PRIORITY
SET INDEX CACHE PRIORITY
SET BLOBS CACHE PRIORITY

Zvýšit nebo snížit prioritu definovanou při spuštění pro aktuální proces.

ADJUST TABLE CACHE PRIORITY
ADJUST INDEX CACHE PRIORITY
ADJUST BLOBS CACHE PRIORITY

Čtení interní hodnoty priority (pouze pro účely ladění)

Get adjusted table cache priority
Get adjusted index cache priority
Get adjusted blobs cache priority

beware Tyto příkazy je třeba používat opatrně, protože mohou ovlivnit výkon databáze.

Příklady:

V On Startup databázové metodě chcete nastavit vysokou prioritu pro [Customer]LastName indexy polí:
SET INDEX CACHE PRIORITY([Customer]LastName;Priorita mezipaměti velmi vysoká)

Chcete dočasně změnit prioritu mezipaměti pro textová pole [Docs] table uložená v datovém souboru při provádění sekvenčního vyhledávání:
ADJUST BLOBS CACHE PRIORITY([Docs];Cache priority very high)
QUERY ([Docs];[Docs]Author#"A@") // sekvenční vyhledávání na neindexovaném poli
// spustit několik dalších dotazů nebo příkazů na stejné tabulce
// po dokončení nastavit zpět normální prioritu mezipaměti
ADJUST BLOBS CACHE PRIORITY ([Docs];Cache priority normal)

Pro podrobnější informace vás zveme k nahlédnutí do následujícího článku v dokumentaci 4D v16 R2.