منبع اصلی نوشتار زیر در این لینک قرار دارد

نگاهی بر معماری 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 استفاده بشه (این محصول دیتا رو کلاً میخونه میذاره تو حافظه بعد خودش دیتابیس رو مدیریت میکنه که اگه دیتا تغییر کرد دیتای حافظه هم تغییر کنه و ...)

ادامه مطلب