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

Index ها

index چیست؟

با یک مثال index را توضیح می‌دهم، فرض کنید یک کتاب ۴ هزار صفحه‌ای را باز کرده‌اید، وقتی می‌خواهید به مطلبی رجوع کنید قطعاً شما تمام کتاب را نمی‌خوانید تا به مطلب مورد نظر برسید. در این حالت شما به فهرست رجوع می‌کنید و به صفحه مورد نظر می‌روید. دقیقاً تعریف index همان فهرست در کتاب است.

در حقیقت یعنی از روی اون شاخصی به صفحه موردنظر می‌رسید. 

اوراکل روش‌های مختلفی را برای indexing به کار می‌برد که در ادامه با آنها آشنا خواهیم شد.

در چه شرایطی index گذاری می‌کنیم؟

کوئری ما کمتر از ۵ درصد کل رکورد را بر گرداند.

زمانی index گذاری می‌کنیم که عموم کوئری‌هایی که از اون جدول می‌گیرید کمتر از ۵ درصد از کل رکوردها رو برگرداند. توی این شرایط ما index گذاری انجام می‌دهیم. 

یادتان باشد در شرایطی اگر اصلاً index گذاری نشود بهتر است.

مثال: جدولی حاوی ۱۰۰ رکورد است کوئری وارد شده برای گزارش‌گیری توسط ما ۵۰ رکورد آن را بیشتر برنمی‌گرداند، آیا index گذاری باید انجام شود؟

ج: خیر - چون با ایندکس‌گذاری روی همچین جدولی برای همچین کوئری‌هایی سرعت دیتابیس ما به شدت افت پیدا خواهد کرد.

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

ساخت TableSpace با رشد خودکار فضا

فضایی بسازید که تا 200mb به طور خودکار 10m 10m رشد می کند: (در صورتی که maxsize مشخص نشود فضا می‌گیرد)

SQL> create tablespace ts datafile 'd:\root\a.dbf' size 100m reuse autoextend on
next 10m  maxsize 200m;

در دستور بالا 100mb سایز اولیه TableSpaceامون است اگر این مقدار فضای اولیه پر شود به طور خودکار 10m 10m به فضا اضافه می‌شود تا به 200m برسد. در صورتی که فضای maxsize مشخص نگردد تا جایی که مدیا ذخیره‌سازی اجازه دهد به DataFile ما 10m 10m اضافه می‌شود.

نکته: عددی که برای رشد DataFile مشخص می‌کنیم بسیار مهم است. اگر این عدد را زیاد بگیریم فضای مدیای‌ذخیره‌سازی ما از بین می‌رود چون این فضا به طور کامل اشغال و توسط اوراکل رزرو می‌شود و ممکن است دیتای ما آنقدر فضا نیاز نداشته باشد. اگر این عدد را کم بگیریم (مثلا ۱ کیلوبایت) اینجوری مدیای ذخیره‌سازی ما فضای هدر شده ندارد ولی تو این مدت که بخواد به 200m برسه بار بسیار وحشتناکی رو CPU سرور ما داره چون به ازای هر کیلوبایت می‌خواد فایل رو extend کنه پس performance سیستم به شدت پایین می‌آید.

نکته: من ترجیح می‌دم فضای از دست رفته‌ام زیاد باشه نه اینکه بار CPU ام زیاد بشه و performance سیستم پایین بیاد

س: آیا با اضافه کردن به دیتا‌فایل در مدیای ذخیره‌سازی ما Gap ایجاد می‌شود؟

ج: این بستگی به سیستم‌عامل و سیستم‌فایلتان دارد و به اوراکل به صورت معمولی در حالت FileSystem ربطی ندارد. مگر در حالت ASM باشید که در این حالت اوراکل هیچ Gap ای در مدیای ذخیره‌سازی شما ایجاد نمی‌کند.

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

تغییر فضای 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

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