در اوراکل 12c، با تنظیم پارامتر MAX_STRING_SIZE به مقدار EXTENDED، می توانیم ظرفیت نوع داده VARCHAR2 و NVARCHAR2 را از 4000 به 32767 افزایش دهیم.
(بیشتر…)ایجاد و مدیریت job با کمک بسته DBMS_JOB
برای انجام زمانبندی در سطح دیتابیس، دو بسته با نامهای dbms_job و dbms_scheduler موجود می باشند که بسته dbms_job از نسخه های قدیمی اوراکل ارائه شده و در نسخه های جدید هم کماکان مورد استفاده قرار می گیرد و بسته dbms_scheduler که در نسخه جدیدتر اوراکل عرضه شد، توانست تا حدود زیادی جایگزین مناسبی برای بسته dbms_job باشد.
دراین متن قصد داریم به بسته dbms_job بپردازیم.
(بیشتر…)ویژگی های جدید اوراکل در نسخه 12c
بانک اطلاعاتی اوراکل با هر نسخه جدیدی که ارائه می کند معمولا بسیاری از باگهای ایجاد شده در نسخه های قبلی را برطرف کرده و علاوه بر آن، ویژگی های جدیدی را هم عرضه می کند.
به همین منوال، اوراکل در نسخه 12c، بیش از 500 ویژگی جدید را ارائه کرده است که در این مقاله قصد داریم بعضی از این ویژگی ها را مورد بررسی قرار دهیم.
جابجایی و تغییر نام انلاین یک دیتافایل
تا قبل از اوراکل 12c، جابجایی و تغییر نام دیتافایل با کمک سیستم عامل و بصورت افلاین(در سطح دیتافایل) قابل انجام بود!
از اوراکل نسخه 12c، می توان بصورت انلاین عملیات تغییر نام و جابجایی دیتافایل را با کمک اوراکل و بدون مداخله dba انجام داد.
در مثال زیر، دیتافایل pdb1.dbf را از محیط non-ASM به محیط ASM منتقل می کنیم:
SQL> ALTER DATABASE MOVE DATAFILE ‘/u01/oracle/pdb1.dbf’ to ‘+DATA01’;
نکته: ویوی V$SESSION_LONGOPS، میزان پیشرفت انتقال دیتافایل را نمایش می دهد.
SESSION LEVEL SEQUENCES
یکی از ویژگی های اوراکل در نسخه 12c، ایجاد نوعی از sequence می باشد که در سطح session مقدار می گیرد.
CREATE SEQUENCE seq_new START WITH 1 INCREMENT BY 1 SESSION;
session 1:
select seq_new.nextval from dual;
1
session 2:
select seq_new.nextval from dual;
1
برای تغییر حالت این sequence از سطح session به سطح global و بالعکس، باید از دستور زیر استفاده کرد:
alter sequence seq_new global;
alter sequence seq_new session;
TRUNCATE TABLE CASCADE
تا قبل از اوراکل 12c، امکان truncate کردن جدول master وجود نداشت:
truncate table usef.tbl1;
ORA-02266: unique/primary keys in table referenced by enabled foreign keys
در اوراکل 12c،امکان truncate کردن این نوع از جداول هم امکان پذیر شد:
truncate table usef.tbl1 cascade;
select * from tbl2;
no row selected.
Online DDL در اوراکل 12c
در اوراکل 12c می توان همراه با اجرای دستورات DMLای بر روی رکوردهای یک جدول، دستورات DDLای زیر را به صورت انلاین بر روی جدول یا ابجکتهای مرتبط با آن، انجام داد:
ALTER INDEX UNUSABLE
SET COLUMN UNUSED
DROP INDEX
DROP CONSTRAINT
(بیشتر…)DDL LOGGING
پارامتر enable_ddl_logging که از اوراکل 12c اضافه شد قابلیت لاگ گیری از دستورات DDLای را در فایلی مجزا ارائه می دهد دستورات DDLای از قبیل:
CREATE|ALTER|DROP|TRUNCATE TABLE
DROP USER
CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNONYM|SEQUENCE
(بیشتر…)MATERIALIZED VIEW
همانطور که می دانید ویو(view) ذخیره پرس و جو در بانک اطلاعاتی به یک اسم خاص می باشد که عمده کاربرد آن در امنیت و استقلال منظقی داده ها می باشد ویوها هیچ فضایی را برای ذخیره داده مصرف نمی کنند و با هر بار اجرا، پرس وجو را هم اجرا می کنند. همانند ویو، شی دیگری نیز وجود دارد که شامل یک پروس و جو می باشد که برخلاف ویو، خروجی پرس و جو را هم در جایی ذخیره می کند و در مواقع ضروری می توان آن را بروز کرد این شی Materialized View نام دارد.
بروزرسانی کامل MV به صورت non-atomic
در صورتی که در زمان بروزرسانی mvها، نیازی به در دسترس بودن اطلاعات وجود ندارد، می توان در هنگام بروزرسانی کامل mv، از دستور truncate به جای delete استفاده کرد.
این تغییر سبب می شود تا هیچ فردی در زمان بروز رسانی mv، به اطلاعات آن دسترسی نداشته باشد پس این روش که اصطلاحا non-atomic هم نامیده می شود، خطراتی از قبیل لغو شدن بروزرسانی در حین درج اطلاعات را به همراه دارد که به همین دلیل استفاده کمتری نسبت به شیوه معمول دارد هر چند با استفاده از truncate به جای delete، سرعت بروزرسانی کامل(complete) بسیار افزایش خواهد یافت و کاهش حجم آرشیولاگ ایجاد شده دیتابیس هم از دیگر ثمرات آن می باشد.