1- اگر در محیط عملیاتی اقدام به ساخت ایندکس میکنید حتما از حالت Online استفاده کنید تا کاربران دچار Lock Conflict نشوند . همچنین جهت تسریع در ساخت ایندکس میتوان درجه Parallel را تنظیم نمود(معمولاً بیش از 8 توصیه نمیشود).دقت شود که پس از ساخت ایندکس حتما Degree آن برداشته شود .
2- سعی کنید TBS محل ذخیره ایندکس ها جدا از TBS دیتاها باشد.
3- در صورت امکان دیتافایلهای محل ذخیره ایندکس ها را بر روی هارد های SSD قرار دهید . تا
کمترین Latency را در I/O داشته باشید.
4- درصورتی که اطلاعات جدول زیاد است و ساخت ایندکس منجر به تولید Redo زیاد میگردد ،
میتوان در هنگام ساخت گزینه NOLOGGING را فعال کرد . NOLOGGING
به این معنی است که برای
عملیات Rebuild دیتای Redo تولید نشود، لذا در
صورت Crash شدن سرور پیش از نهایی
شدن تغییر روی دیتافایل ها، این عملیات از دست می رود و باید مجددا اجرا شود.
5- سعی کنید بر روی فیلدهایی که در Join ها شرکت میکنند ایندکس قرار دهید . مگر اینکه دیتای خروجی Join بیشتر رکوردهای
جدول ها باشد که در این صورت نبودن ایندکس بهتر است.
6- ترتیب ساخت ایندکسهای ترکیبی (Composite) بر روی عبارات شرطی در Where بسیار مهم است.
7- ایندکس
ترکیبی به شرطی مورد استفاده قرار میگیرد که اولین ستون ایندکس حتماً در دستور Where وجود داشته
باشد . ولی برای ستونهای بعدی موجود در ایندکس از Skip Scan استفاده
میگردد.
8- میتوان در هنگام Bulk Insert ها به شرطی که محیط عملیاتی نباشد ، جهت تسریع در عملیات ، ایندکس
ها را حذف و پس از insert مجدداً ایجاد نمود.
9- در صورتی که از توابع در Where استفاده شود ،
ایندکس های مربوطه نیز باید بصورت تابعی ساخته شوند . در غیر اینصورت از ایندکس
استفاده نمیشود.
10- ایجاد و یا خذف ایندکس در دیتابیس ها نیازمند داشتن درک عمیق از سیستم نرم
افزاری میباشد . ایجاد و یا حذف ایندکس ها میتواند منجر به تغییر Execution Plan بسیاری از کوئری ها گردد .
11- زمانی که کمتر با معماری سیستم آشنا هستیم میتوان برای چند رو Index Monitoring را فعال نمود(مثلاً 1 ماه) و پس از آن اقدام به حذف
(یا غیرفعالسازی) و اضافه ایندکس ها نمود .
12- حتما Plan کوئری را قبل و
بعد از ساخت ایندکس بررسی نمایید تا از عملکرد صحیح ایندکس ایجاد شده اطمینان حاصل
نمایید.
13- در صورتی که ارتفاع (Height) ایندکس بیش از
3 باشد و یا تعداد رکوردهای حذفی زیاد باشد میبایست اقدام به Rebuild Index نمود . کوئری های برای تشخیص کاندیدهای Rebuild در اینترنت
وجود دارد.
14- حتما بر روی FK ها ایندکس قرار
دهید . در بسیاری مواقع نبودن ایندکس بر روی این فیلدها میتواند منجر به Table Lock و در نهایت اختلال در سیستم گردد.
15- در اوراکل CBO- Cost-Based Optimizer بصورت اتومات تشخیص می دهد که کجا و چه موقع از Index استفاده نماید. حال در
بعضی اوقات در شرایط خاص می خواهید که این عمل را شما مدیریت کنید و می توانید از hint ها استفاده نمایید.
16- اگر جدول شما از ایندکس استفاده نکرد با اینکه ایندکس گذاری شده است:
📌ابتدا این دستور را
اجرا کنید:
analyze TABLE yourtablename compute statistics FOR COLUMNS yourfieldname;
📌سپس اگر باز هنوز از
ایندکس استفاده نکرد. مقدار PGA خود را تغییر دهید.
17- استفاده از [Invisible]
👈یکی از ویژگی های آن برای تست می باشد. بدین صورت که بهینه
ساز دیگر از این ایندکس استفاده نمی کند.معمولا قبل از اینکه بخواهید آنرا کلاً
حذف کنید میتوانید از این حالت استفاده کنید. 👉ALTER INDEX emp_idx INVISIBLE;
18- استفاده از [Local/Global]
وقتی از پارتیشن بندی
اوراکل استفاده می کنید. تعیین می کنید که ایندکس روی آن به چه صورت می باشد.
حالت Global برای رابطه های یک به چند (one-to-many) استفاده می شود و اجازه میدهد
که یک ایندکس پارتیشن Map شود به چندین table partition
حالت Local برای رابطه های یک به یک (one-to-one)
mapping بین ایندکس پارتیشن و table partition مورد استفاده قرار می
گیرد.
19- استفاده از [NOSORT]
👈وقتی شما یک ایندکس را ایجاد می کنید بصورت پیش فرض
روی همان ستونی که ایجاد کرده بصورت مرتب شده ایجاد می شود که خود همین مسئله زمان
زیادی را در صورت داشتن رکوردهای زیاد مصرف می کند که شما با استفاده از کلمه
کلیدی می توانید جلوی اینکار را بگیرد. حال اگر فیلد شما بصورت مرتب شده می باشد
از این کلمه کلیدی استفاده کنید.
20- استفاده از [DOMAIN/TEXT]
👈در خصوص : domain indexبدین گونه می باشد که به توسعه دهنده این اجازه را
میدهد که بتواند ساختار ایندکس خودش را ایجاد و هدف آن پیاده سازی یکسری index type های جدیدی که بصورت
استاندارد وجودندارد .خیلی از مواقع ما برای سیستم های خاص پردازش های خاصی نیاز
داریم مثلا وقتی بخواهیم بر روی نوعی ازدیتاهای Special و video clip ها را استفاده کنیم.
👈نمونه خوب آن برای پیاده سازی text indexes می باشد که می خواهیم
امکانات جستجو بر روی آیتم های که دارای متن های طولانی می باشد را فراهم کنیم
- ۹۶/۱۰/۱۳
- ۷۹۴ نمایش