نگاهی بر معماری Oracle Database 11g - قسمت اول

KEEP buffer pool

اگه جداول base ما در محاسباتمون زیاد استفاده میشه (موقع join ها) و گزارش‌گیری‌های زیادی ازشون انجام میشه برای اوراکل نمیصرفه هر دفعه اطلاعات شما رو بیاره تو database buffer cache پس اوراکل جدول رو KEEP میکنه یعنی جدول base رو میخونه میاره تو حافظه تو محفظه‌ی KEEP buffer pool پس دیتایی که دائما توی گزارش‌هامون مورد استفاده قرار میگیره و تغییراتی روش انجام نمیشه رو اوراکل به صورت KEEP نگه میداره مگر اینکه دیتابیس بیاد پایین یا برق سرور بره

همچنین این کار موقع ساختن جدول یا بعدش با دستور alter امکان پذیره همچنین می‌تونید برای اینکار اسکریپت هم بنویسید

 Alter table emp storage (buffer_pool Keep);

یه نمونه اسکریپت

Oracle Automating Script for KEEP Pool Caching Tables & Indexes db_keep_cache_size

BEST PRACTICE اینه که فقط جداول پایه با حجم کم رو KEEP‌ کنید در کل جداولی با داده کم و کاربرد زیاد مثل اطلاعات: شهرها، فرمولهای مالی، نرخ سود، نام دپارتمان‌ها و ...

 

نکته: هیچوقت یک جدول بالای 1 میلیون رکورد رو KEEP نکنید چون بی‌خودی حافظه رو میگیره

نکته: اگه دیتا زیاده و تغییرات داره بهتره از TimesTen استفاده بشه (این محصول دیتا رو کلاً میخونه میذاره تو حافظه بعد خودش دیتابیس رو مدیریت میکنه که اگه دیتا تغییر کرد دیتای حافظه هم تغییر کنه و ...)