۲ مطلب با کلمه‌ی کلیدی «Very Large Database» ثبت شده است

جداول بسیار حجیم در Very Large Databaseها (انواع پارتیشن‌بندی)

به index گذاری که روی سطح لایه فیزیکی دیتابیس باشه اصطلاحاً پارتیشن‌بندی گفته می‌شود.

partition by range

به مثال زیر دقت کنید، در این مثال جدولی با پارتیشن بر مبنای فیلدهای id, age ساخته‌ایم:

SQL> create table sal (id number,age number,name varchar2(20))
partition by range(id,age)
(partition s1 values less than (10,20) tablespace ts1,
partition s2 values less than(20,30) tablespace ts2,
partition s3 VALUES LESS THAN (MAXVALUE) tablespace ts3);

در ادامه گفته‌ایم که مقدارهای ورودی در پارتیشن s1 باید کمتر از 10,20 باشند و این پارتیشن در tablespace ts1 قرار دارد(یعنی idهای کمتر از ۱۰ و ageهای کمتر از ۲۰)

در ادامه پارتیشن s2 را داریم که مقدارهای کمتر از 20,30 را در خود می‌گیرد و در tablespace ts2 قرار دارد.

و در ادامه پارتیشن s3 را داریم که اگر رکوردی وارد شد که تو بازه‌ی پارتیشن‌بندی ما نبود اون رکورد که حالا معلوم نیست بزرگه یا کوچیکه وارد tablespace ts3 شود.

نکته: اسم پارتیشن‌ها زیاد اهمیتی برای ما ندارند.

نکته: اگر عملیات update انجام شود و مقدار عوض شود جابه‌جایی در پارتیشن نیز رخ خواهد داد.

نکته: تو partition by range بهتره که تمام فیلدها مشخص شوند، یعنی چیز نامعلومی که کاربر بخواد وارد کنه و به مشکل بخوره نباشه

ادامه مطلب...
۱۴ ارديبهشت ۹۴ ، ۱۷:۴۰ ۳ نظر
مهدی غفاری

Partitioning

Partitioning تو ۹۰ درصد مواقع به درد ما نمی‌خوره ولی زمانی که روی (Very Large Database (VLDB کار می‌کنیم که یک جدول ممکنه ۱ گیگ باشه اونوقت باید از تکه تکه کردن یا همون Partitioning استفاده کنیم.

چرا از Partitioning استفاده می‌کنیم؟

یه جدول ۱۰۰ گیگی رو در نظر بگیرید برای کش جدولی که به صورت فیزیکی ۱۰۰ گیگه تقریباً حداقل ۱۶ گیگ رم نیاز داریم، اما وقتی ما ۲ گیگ بیشتر رم نداریم باید چی کار کنیم؟ تو این شرایط اوراکل نمی‌تونه کش رو یکجا انجام بده پس به صورت پیش‌فرض اوراکل کش را تکه تکه انجام میده یعنی قسمتی را وارد SGA می‌کند و پردازش می‌کند و بعد از پردازش قسمتی دیگر را وارد SGA می‌کند و پردازش می‌کند. حتی اگر where هم گذاشته باشید این اتفاق بازهم می‌افته کل جدول رو تیکه تیکه میاره تو فضای SGA و توسط PGA پردازش می‌کنه و به همین ترتیب تا پایان پردازش کل جدول ادامه میده.

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

ادامه مطلب...
۱۴ ارديبهشت ۹۴ ، ۱۳:۳۰ ۰ نظر
مهدی غفاری