Partitioning تو ۹۰ درصد مواقع به درد ما نمیخوره ولی زمانی که روی (Very Large Database (VLDB کار میکنیم که یک جدول ممکنه ۱ گیگ باشه اونوقت باید از تکه تکه کردن یا همون Partitioning استفاده کنیم.
چرا از Partitioning استفاده میکنیم؟
یه جدول ۱۰۰ گیگی رو در نظر بگیرید برای کش جدولی که به صورت فیزیکی ۱۰۰ گیگه تقریباً حداقل ۱۶ گیگ رم نیاز داریم، اما وقتی ما ۲ گیگ بیشتر رم نداریم باید چی کار کنیم؟ تو این شرایط اوراکل نمیتونه کش رو یکجا انجام بده پس به صورت پیشفرض اوراکل کش را تکه تکه انجام میده یعنی قسمتی را وارد SGA میکند و پردازش میکند و بعد از پردازش قسمتی دیگر را وارد SGA میکند و پردازش میکند. حتی اگر where هم گذاشته باشید این اتفاق بازهم میافته کل جدول رو تیکه تیکه میاره تو فضای SGA و توسط PGA پردازش میکنه و به همین ترتیب تا پایان پردازش کل جدول ادامه میده.
توی ۹۰ درصد مواقع شاید من لازم داشته باشم به این روش عمل کنم: