بررسی هینت ORDERED و LEADING

زمانی که یک دستور با چندین شرط join اجرا می شود، عمل join در هر لحظه تنها بین دو جدول آن دستور انجام خواهد شد به عبارت دیگر، عمل join یک عمل باینری می باشد و ترتیب انجام آن، می تواند به لحاظ پرفورمنسی، کارساز باشد.

برای تعیین ترتیب join بین جداول، باید حالات مختلفی توسط اوراکل بررسی شود که این کار می تواند وقت زیادی را از سیستم بگیرد برای جلوگیری از این اتلاف وقت، می توان ترتیب پیوند را با استفاده از هینت ORDERED تعیین کرد.

در قسمت زیر خواهیم دید که با کمک این هینت دریک دستور، ترتیب پیوندها بر اساس ترتیب جداول در عبارت from تعیین خواهند شد.

(بیشتر…)

cascaded standby

در صورتی که قصد داشته باشیم برای یک بانک اطلاعاتی چند استندبای داشته باشیم ولی از طرفی با محدودیتهایی همانند شبکه روبرو باشیم، می توانیم از ویژگی cascaded standby استفاده کنیم یعنی از استندبای موجود یک استندبای جدید ایجاد کنیم به طوری که استندبای جدید هیچ ارتباط مستقیمی با بانک اصلی نداشته باشد و همه اطلاعات از استندبای اول به آن منتقل می شود. برای انجام این کار، می توانیم از active duplicate استندبای اول بهره مند شویم.

(بیشتر…)

data pump و RAC

در محیط RAC، این امکان وجود دارد تا از چند instance برای اجرای data pump بهره گرفته شود. برای این کار باید شرایط زیر رعایت شود:

  1. دایرکتوری که فایل دامپ قرار است در آنجا قرار گیرد، در فضای مشترک بین نودها ایجاد شود.
  2. پارامتر cluster به y و پارامتر parallel به مقداری بیشتر از یک تنظیم شود.
  3. Logها در مسیر local مربوط به نودها ایجاد شوند.

(بیشتر…)

بازیابی دیتافایل با آرشیولاگ

فرض کنید دیتافایلی که جدیدا به بانک اضافه شده بنا به دلایلی از بین رفته باشد در این صورت اگر آرشیوها اززمان ایجاد دیتافایل موجود باشند، این امکان وجود دارد که این دیتافایل را بازیابی کرد.

(بیشتر…)

انتقال دیتابیس فایلها از محیط non-ASM به ASM

برای انتقال فایلهای دیتابیس(اعم از دیتافایل، کنترل فایل، redo log و …) از محیط non-ASM به محیط ASM روشهای مختلفی وجود دارد که در این قسمت سعی داریم این کار را با کمک ابزار RMAN انجام دهیم.

در ادامه متن، این کار با طی چند مرحله، انجام خواهد شد.

(بیشتر…)

واقعی کردن شماره آرشیوها در ویوی v$archived_log

در صورتی که ویوی مربوط به حداکثر شماره آرشیو، یک عدد غیرمرتبط یا عددی مربوط به آرشیولاگ old incarnation را نشان می دهد، برای اینکه عدد واقعی را به ما نشان دهد و اعداد قدیمی را پاک کند، سه روش ممکن می باشد:

(بیشتر…)

cursor_shring و bind variable

وقتی که اوراکل دستوری را اجرا می کند، سعی دارد تا فرم قابل اجرای دستور اجرا شده(که plan آن مشخص شده) را در library cache نگهدارد تا در صورت امکان از آن استفاده مجدد کند حال اگر این فرم پارس شده برای دستور دیگری مورد استفاده قرار بگیرد می گویند یک soft parse انجام شده است و در صورتی که اوراکل مجبور شود یک فرم جدید قابل اجرا(که در library cache موجود نیست) برای دستور وارده بسازد، hard parse صورت گرفته است.

(بیشتر…)

enq: TM – contention

Enqueue ها کنترل دسترسی همزمان به یک شی واحد توسط چند نفر را بر عهده دارند تا به شی مورد نظر آسیبی وارد نشود و یکپارچگی آن حفظ شود پس از این نظر یک قابلیت مفید برای پیشبرد کار ما هستند ولی باید ساختار بانک اطلاعاتی طوری باشد که رقابت دو فرد برای دسترسی به یک شی به حداقل ممکن برسد تا wait هم کمتر رخ دهد. نمونه ای از waitای که بواسطه مدیریت Enqueue ایجاد می شود، enq: TM – contention می باشد که در اینجا سعی داریم تا علل رخ دادن آن و نحوه جلوگیری از آنرا به طور مختصر بیان کنیم.

(بیشتر…)