گاهی اوقات در اجرای دستورات پیچیده SQL نیاز به نگه داری موقت اطلاعات برای محاسبه نتایج نهایی می باشد که می توان در این مواقع از جدول های TEMPORARY در دیتابیس اوراکل کمک گرفت. استفاده از این جدول ها می تواند سبب افزایش سرعت اجرای دستورات SQL شود. این جداول با نام مخفف GTT(GLOBAL TEMPORARY TABLE) شناخته می شوند.
دو راهکار برای اجرای سریع تر shutdown immediate
همانطور که می دانید، در هنگام اجرای دستور shutdown immediate، بک گراند پروسس SMON باید تراکنشهای در حال اجرا را rollback کند و همچنین این بک گراند پروسس، Temporary segmentها را در صورت وجود پاکسازی کند.
برای تسریع در اجرای دستور shutdown immediate، می توان از طریق eventای؛ SMON را از انجام این دو وظیفه منصرف نمود و انجام آنها را به بعد از استارت بعدی دیتابیس موکول کرد.
نصب اوراکل 19c بر روی اوراکل لینوکس 6 با بروزرسانی GLIBC
همانطور که می دانید، اوراکل از نصب نسخه 19c بر روی سیستم عامل Oracle Linux 6.X پیشتیانی نمی کند این مسئله به پایین بودن نسخه GLIBC(GNU libc) موجود در این نسخه از سیستم عامل برمی گردد:
[root@ol6 ~]# cat /etc/issue
Oracle Linux Server release 6.7
[oracle@ol6 home]$ ./runInstaller
/19c/home/perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by /19c/home/perl/bin/perl)
در متن خطا می بینیم که این مشکل به دلیل نبود GLIBC نسخه 2.14 رخ داده است. برای حل این مسئله، می توان GLIBC_2.14(و یا نسخه های بالاتر) را به این نسخه از سیستم عامل اضافه کرد که در ادامه این کار را انجام خواهیم داد.
External Table و In-Memory – اوراکل 18c
تا قبل از اوراکل 18c، امکان استفاده از قابلیت in memory برای جداول از نوع external وجود نداشت:
SQL*Plus: Release 12.2.0.1.0 Production on Mon May 18 12:05:36 2020
SQL> alter table mytbl inmemory;
ORA-30657: operation not supported on external organized table
این قابلیت در اوراکل 18c برای محیط exadata ارائه شد.
Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0
SQL> alter table mytbl inmemory;
ORA-12755: Feature In-Memory External Tables is disabled due to unsupported capability.
SQL> alter system set “_exadata_feature_on”=true scope=spfile;
System altered.
SQL> startup force;
SQL> alter table mytbl inmemory;
Table altered
SQL> SELECT table_name, inmemory, inmemory_compression FROM user_external_tables;
TABLE_NAME INMEMORY INMEMORY_COMPRESSION
———– ——— ———————-
MYTBL ENABLED FOR QUERY LOW
SYNONYM در دیتابیس اوراکل
یکی از OBJECTهای دیتابیس اوراکل SYNONYM است که به عنوان یک نام جایگزین برای OBJECTهای دیگر دیتابیس ( جدول ها ، VIEW و …) عمل می کند. در این متن SYNONYM و روش استفاده از آن را توضیح می دهیم.
SEQUENCE در دیتابیس اوراکل
همانطور که می دانید در دیتابیس اوراکل OBJECT های مختلفی وجود دارند که یکی از این OBJECT ها SEQUENCE است که در این متن معرفی می شود و روش ساخت و بکارگیری آن را به همراه مثال توضیح می دهیم.
دستورات 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 باشد.