۵ مطلب با کلمه‌ی کلیدی «PGA» ثبت شده است

Partitioning

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

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

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

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

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

فایل‌های راه انداز

در این فایل‌ها اطلاعاتی نگهداری می‌شوند که اوراکل از آن‌ها برای پیکربندی بانک اطلاعاتی استفاده می‌کند.
از جمله نام بانک اطلاعاتی، اندازه حافظه ای که Instance از آن استفاده می‌کند، محل Control File ها، تنظیمات سایر زبان‌هایی که پشتیبانی می‌شوند و غیره. هنگامی که Instance راه اندازی می‌شود از این فایل برای پیکربندی حافظه SGA و فرایندهای پس زمینه استفاده می‌گردد.

علاوه بر این، در این فایل صدها پارامتر دیگر نیز وجو دارد که اوراکل از آن ها در مواقع مورد نیاز استفاده می‌کند. به هنگام ایجاد بانک اطلاعاتی و با تغییر مقادیر پیکربندی اطلاعات، این فایل نیز بروز می‌شود. ترتیب پارامتر ها و کوچک و بزرگ بودن حروف هیچ تاثیری در این فایل ندارد.

انواع فایل های پیکربندی

  • PFILE

از اوراکل 8i به بعد، پارامترهای مربوط به بانک اطلاعاتی از قبیل نام بانک اطلاعاتی، پارامترهای مرتبط با حافظه، محل Control Fileها و غیره، در فایلی به نام PFILE که مخفف Parameter File می باشد، ذخیره می شوند.
این فایل یک فایل استاتیک بوده و توسط هر ویرایشگری مانند Notepad قابل ویرایش است.
این فایل تنها به هنگام راه اندازی بانک اطلاعاتی خوانده شده و پس از آن در صورتی که تغییری در این فایل ایجاد شود، تا زمانی که Instance مجدداً راه اندازی نشود، تغییرات در آن اعمال نخواهد شد.
همچنین در صورتی که به هنگام راه اندازی بانک اطلاعاتی تغییری در پارامترهای راه اندازی ایجاد شود، این تغییرات در PFILE ثبت نمی شوند.

  • SPFILE

با توجه به محدودیت های فوق، از اوراکل 9i و به بعد، فایلی به نام SPFILE که مخفف Server Parameter File می باشد، معرفی شد.
این فایل توسط هیچ ویرایشگری قابل ویرایش نبوده و تنها با استفاده از دستور ALTER SYSTEM می‌توان مقادیر پارامترهای آن را تغییر داد.

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

تغییر فضای SGA و PGA بعد از نصب اوراکل

فایل SPFILEORCL.ORA مخزن خود را از مسیر زیر باز کنید:

$Oracle_home/DataBase/product/11.2.0/dbhome_1/database/SPFILEORCL.ORA

با مقداردهی دوباره متغیرهای این فایل می‌توان فضای SGA و PGA را تغییر داد. از اونجایی که این فایل یک فایل باینری است تغییر آن ابزار مناسب آن را می‌خواد که آن را در اختیار نداریم.

نکته: از اونجایی که اسم دیتابیس ما ORCL است این فایل به اسم SPFILEORCL نشان داده شده است.

برای تغییر این فایل از اوراکل خواهش می‌کنیم بی‌خیال SPFILE بشه و از روی SPFILE برای ما یک PFILE ایجاد کند:

CREATE PFILE FROM SPFILE;

زمانی که این دستور را اجرا می‌کنیم یک فایل جدید در همان مسیر SPFILE برای ما ساخته می‌شود به نام INITorcl.ORA با بازکردن این فیال با یک ادیتور متن خواهید دید که این فایل دیگر یک فایل باینری نیست. برای تغییر فضای SGA و PGA دنبال ۲ متغیر sga_target, pga_aggregate_target بگردید و آنها را مجدد مقداردهی کنید.

  • sga_target
  • pga_aggregate_target

ادامه مطلب...
۱۸ فروردين ۹۴ ، ۱۸:۵۰ ۱ نظر
مهدی غفاری

پرسش و پاسخ

س: آیا ساختار کش ساختاری منسجم است؟

ج: بله - ولی به طور دستی قابلیت ویرایش توسط DBA را ندارد مگر با برنامه‌نویسی از طریق SQLJ

نکته: با SQLJ حتی می‌توان روش رمزنگاری اوراکل را هم عوض کرد.

س: وقتی تعداد داده‌های جدول در دیتابیس زیاد باشد آیا موقع کوئری گرفتن تمام این جدول به یکباره کش می‌شود؟

ج: اگر تعداد داده‌های جدول شما خیلی زیاد باشد که امکان کش بصورت یکباره وجود نداشته باشد اوراکل جدول را تکه تکه کش می‌کند. و در این صورت سیستم کش اوراکل از بیس رفته است. به طور مثال اگه حدول شما بسیار بزرگ باشد و رم کافی نداشته باشید اوراکل تکه تکه جدول رو درون فضای SGA می‌آورد و روی PGA پردازش را انجام می‌دهد و اگر به داده مورد نظر خود نرسد تکه فعلی را از فضای SGA بیرونن می‌برد و تکه بعدی را وارد فضای SGA می‌کند تا پردازش آن صورت گیرد.

س: زمانی که اوراکل چند جدول را کش کرده است و برای کش کردن جدول جدید دیگر فضای رمی نداریم چه اتفاقی می‌افتد؟

ج: اوراکل جدولی را که کمتر بهش ارجاع شده است را از کش بیرون می‌برد و جدول جدید را کش می‌کند.

س: اگر ما ۱۰ میلیون رکورد داشته باشیم و بخوایم روی این ۱۰ میلیون رکورد کوئری بزنیم اوراکل تا چه مقدار توانایی انجام سریع این کوئری رو داره؟

ج: اگر شما ۱۰ میلیون رکورد داشته باشید و بخواین روی این ۱۰ میلیون رکورد کوئری بزنید و RAM کافی نداشته باشیم نه تنها اوراکل خوب عمل نمی‌کنه بلکه ضعیف هم عمل نمی‌کنه (این مطلب در مورد تمام دیتابیس‌ها صادقه، چون شما باید محفظه کش‌ات حداقل اندازه result هات باشه)

به خاطر همین موضوع ما از SI به محیط RAC سوییچ می‌کنیم چون هرچه قدر هم سرور ما قوی باشه جوابگو SGA نیست چون وقتی دیتای ما که تو هارده نزدیک 20exabyte باشه شما هیچ رمی رو نمی‌تونید روی یک سرور بذارید که فضای SGA بتونه این حجم اطلاعات رو بالا بیاره و کش کنه(البته ۲۰ اگزابایت ما وقتی میاد رو RAM میشه نزدیک ۵ اگزابایت ولی باز ما همچین رمی رو نمی‌تونیم برای یک سرور در حالت SI پیدا کنیم) برای همین ما ورود پیدا می‌کنیم به محیط RAC که در این محیط ما دیگر یک فضای SGA نداریم و مجموعه‌ای از کلاسترها رو داریم که مثلاً هر کلاستر ۶۴ گیگ RAM داره(حالا وقتی ما صحبت از ۲۰ اگزابایت می‌کنیم حتماً نیاز به ۱۰۰۰ کلاستر ۶۴ گیگ RAM داریم که بتونیم از اون کش استفاده کنیم)

س: فضای SGA و PGA چقدر است؟

ج: این فضا موقع نصب توسط DBA از درصدی از مقدار رم شما مشخص می‌شود. همچنین بعد از نصب در صورت نیاز به تغییر قابل تغییر است.

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

معماری بانک‌اطلاعاتی اوراکل - ساختار منطقی

همانطور که پیشتر به آن اشاره شد ساختار منطقی دسترسی کاربران را به ساختار فیزیکی ممکن می سازد. در حقیقت ساختار منطقی Data Base از دو واحد اساسی تشکیل شده است:

  • حافظه SGA  یا همان System Global Area
  • حافظه PGA یا همان Program Global Area

پردازشات خود بانک اطلاعاتی و Cashe کردن داده ها در حافظه SGA انجام می پذیرد، این حافظه بین تمام کاربران بانک اطلاعاتی مشترک می‌باشد.

نکته: اوراکل تنها یکبار اطلاعات رو از DataFile میخواند و در فضای SGA کش می‌کند.

ادامه مطلب...
۲۱ اسفند ۹۳ ، ۲۰:۰۲ ۰ نظر
مهدی غفاری