همانطور که می دانید در دیتابیس اوراکل OBJECT های مختلفی وجود دارند که یکی از این OBJECT ها SEQUENCE است که در این متن معرفی می شود و روش ساخت و بکارگیری آن را به همراه مثال توضیح می دهیم.
ADO و مدیریت in-memory
همانطور که می دانید، objectهای که خصیصه inmemory برای انها تنظیم شده متناسب با اولویتی که دارند، در in-memory قرار خواهند گرفت برای مثال، اگر خصیصه inmemory برای جدولی با اولویت critical تعریف شده باشد، این جدول صرف نظر از تعداد دفعات رجوع، در زمان استارت دیتابیس در in memory قرار خواهد گرفت.
در این متن به این سوال پاسخ خواهیم داد که چگونه می توان از قرار گرفتن جدول و یا به صورت کلی objectای که مدت زمان زیادی از آخرین زمان دستیابی و یا اصلاح آن گذشته، به in-memory جلوگیری کرد(آن هم به صورت خودکار)؟
این کار در نسخه 12cR2 با کمک ویژگی (Automatic Data Optimization(ADO قابل انجام است همانطور که می دانید ADO که در نسخه 12cR1 ارائه شد، امکان جابجایی و فشرده سازی objectها را متناسب با آمارهای heat map فراهم می سازد. به عنوان بهبودی جدید در نسخه 12cR2، امکان ایجاد ADO policy برای خصیصه inmemory جداول هم امکان پذیر می باشد(در سطح segment).
ابزارهای گرافیکی برای کار با دیتابیس اوراکل
زمانی که برخی از بانک های اطلاعاتی مانند SQL SERVER را نصب می کنیم، همراه با دیتابیس یک ابزار گرافیکی مناسب نصب می شود که می توانیم با استفاده از آن به بانک اطلاعاتی مقصد متصل شویم و دستورات مختلف را اجرا کنیم. اما در پکیج نصب دیتابیس اوراکل ابزار گرافیکی مناسب وجود ندارد و باید به صورت مجزا این ابزار را تهیه و نصب کنیم. علاوه بر مدیران دیتابیس، برنامه نویسان و توسعه دهندگان هم نیازمند یک ابزار گرافیکی جهت پیش برد پروژه های خود هستند.
در ادامه سه مورد از ابزارهای گرافیکی پرکاربرد را معرفی می کنیم. همچنین روش پیکربندی آنها و نحوه اتصال این ابزار به دیتابیس اوراکل توضیح داده می شود. برای مشاهده کاراکترها و متن های فارسی در دیتابیس اوراکل بهتر است تنظیماتی در سطح سیستم عامل و ابزار گرافیکی انجام شود که آنها را در این متن عنوان می کنیم.
مروری بر ویژگی IM Expressions
اوراکل از نسخه 12cR2 قابلیت expression tracking را ارائه کرد که بر اساس آن، توابع(اعم از سیستمی و pl/sqlای)، عملگرهای محاسباتی و بصورت کلی عبارتهای استفاده شده در متن پرس و جو ها در دیتابیس ذخیره می شوند مسئولیت این کار بر عهده optimizer است و optimizer در زمان انجام عملیات hard pars، این عبارات را در مخزنی بنام (Expression Statistics Store(ESS قرار می دهد که از طریق ویوی دیتا دیکشنری DBA_EXPRESSION_STATISTICS می توان لیستی از این عبارتها را مشاهده کرد.
دستورات DDL و CONSTRAINT ها
در این فصل دستورات از نوع DDL(DATA DEFINITION LANGUAGE) معرفی می شوند. مفهوم OBJECT و برخی از نوع داده هایی که در دیتابیس اوراکل استفاده می شوند را توضیح می دهیم. همچنین انواع CONSTRAINTها توضیح داده می شوند و خطاهایی که با رعایت نکردن آنها رخ می دهند را معرفی می کنیم.
ویژگی In-Memory FastStart در اوراکل 12cR2
یکی از چالشهای قابلیت in-memory در نسخه 12cR1 به هزینه بر بودن load اولیه اطلاعات(در in-memory) بعد از restart شدن دیتابیس برمی گردد چرا که اطلاعات در دیسک به صورت row format ذخیره شده و در زمان بارگذاری باید به فرمت ستونی و (عمدتا) به شکل فشرده در حافظه(in-memory) قرار بگیرند که این کار می تواند مصرف بالای منابع(مخصوصا cpu) را به همراه داشته باشد.
اوراکل در نسخه 12cR2، برای حل این مسئله، قابلیت جدیدی به نام In-Memory FastStart را ارائه کرد که بر اساس آن، اطلاعات موجود در in-memory با همان فرمتی که در حافظه قرار دارند، در دیسک و در یک tablespace مجزا ذخیره می شوند.
دستورات DML و کنترل تراکنش ها
در این فصل انواع دستورات DML(Data Manipulation Language) توضیح داده می شوند. دستورهای INSERT، DELETE، UPDATE از نوع DML هستند که باعث می شوند اطلاعات جدول های دیتابیس تغییر یابند. همچنین در ادامه، روش کنترل تراکنش ها بر اساس مفهوم READ CONSISTENCY و عملیات COMMIT، ROLLBACK و SAVEPOINT توضیح داده می شوند.
زمانی که یک دستور از نوع DML اجرا می شود یکی از حالت های زیر رخ می دهد:
1.اطلاعات جدید به یک جدول اضافه می شوند(توسط دستور INSERT).
2.اطلاعات قبلی تغییر می کند(توسط دستور UPDATE).
3.اطلاعات قبلی حذف می شوند(توسط دستور DELETE).
نگاهی به استثنائاتی در مورد پارامترهای PGA
در مطلب “بررسی پارامترهای PGA” با پارامترهایی آشنا شدیم که قرار است محدودیتی را برای مصرف PGA در سطح پروسس و یا instance ایجاد کنند. در این مطلب خواهیم دید که در بعضی از شرایط مقدار در نظر گرفته شده برای پارامترهای pga_max_size، pga_aggrigate_target_ و حتی پارامتر PGA_AGGREGATE_LIMIT، نمی تواند PGA مصرف شده توسط پروسسها را محدود کند و پروسسها تا جایی که سرور و محدودیتهای سیستم عاملی اجازه می دهد، از RAM و SWAP استفاده می کنند.
به عنوان نمونه، مطابق با داکیومنتهای اوراکل، حداکثر PGA مورد استفاده یک پروسس توسط پارامتر مخفی pga_max_size_ کنترل می شود و علاوه بر این پارامتر، مقدار PGA استفاده شده برای یک پروسس به تنهایی نمی تواند بزرگتر از مقدار تنظیم شده برای پارامتر pga_aggrigate_target باشد.
بررسی پارامترهای رسمی و مخفی مربوط به PGA
همانطور که می دانید PGA متشکل از قسمتهای مختلفی می باشد که میزان استفاده هر پروسس از هر کدام از این قسمتها را می توان با کمک پارامترهای نظیر sort_area_size، hash_area_size، bitmap_merge_area_size و… کنترل کرد.
با این حال از اوراکل 9i، پارامتر دیگری به نام PGA_AGGREGATE_TARGET اضافه شد که با مقداردهی آن، اندازه هر یک از قسمتهای PGA توسط خود اوراکل مدیریت می شود.
اوراکل تلاش می کند مجموع فضای PGA تخصیص داده شده(pga1+pga2+pga3+…) به پروسسها را به مقدار در نظر گرفته شده برای پارامتر PGA_AGGREGATE_TARGET محدود کند اما در مواقعی، به خصوص در زمان بالا رفتن بارکاری سیستم و یا پایین بودن مقدار پارامتر PGA_AGGREGATE_TARGET، ممکن است مجموع فضای PGA تخصیص داده شده، از مقدار تنظیم شده برای این پارامتر بیشتر شود.
از این رو، مقدار تعیین شده برای پارامتر PGA_AGGREGATE_TARGET صرفا به عنوان یک soft limit در نظر گرفته خواهد شد و حتی در شرایطی ممکن است فضای PGA تخصیص داده شده به یک پروسس، از مقدار تنظیم شده برای این پارامتر تجاوز کند!(مطلب “نگاهی به استثنائاتی در مورد پارامترهای PGA” را مطالعه کنید)
عملگرهای SET در SQL
در دستورات SQL عملگرهای SET سطرهای چندین دستور SELECT را ترکیب کرده و ترتیب نمایش آنها را مشخص می کند. در این متن انواع روش های استفاده از عملگرهای SET توضیح داده می شود.
دستوراتی که در آنها از عملگر SET استفاده می شوند COMPOUND QUERY نام دارند. اولویت اجرای تمام روش های عملگر SET یکسان است. اگر در یک دستور SQL از چند عملگر SET استفاده شود ترتیب اجرای آنها از سمت چپ به راست خواهد بود مگر اینکه از علامت پرانتز استفاده شده باشد.