روشی برای تسریع در “حذف حجم بالای از اطلاعات یک جدول”

شرایط جدول mtbl را در نظر بگیرید:

SQL>  select count(*) from mtbl;

16777216

SQL>  select to_char(creation_time,’YYYY’,’nls_calendar=persian’),count(*) from mtbl group by to_char(creation_time,’YYYY’,’nls_calendar=persian’) order by 1 desc;

TO_CHAR(CREATION_TIME,’YYYY’,’   COUNT(*)

—————————— ———-

1399                               262144

1397                              3932160

1396                              4194304

1395                              4194304

1394                              4194304

Executed in 4.563 seconds

حجم جدول mtbl:

SQL> select bytes/1024/1024 SIZE_MB from user_segments p where p.segment_name=’MTBL’;

   SIZE_MB

———-

      4286

قصد داریم رکوردهایی از این جدول که creation_time آنها مربوط به سال 1399 بوده را در جدول حفظ کرده و مابقی اطلاعات را حذف کنیم.

(بیشتر…)

آموزش PL/SQL قسمت پانزدهم – پکیج های DBMS در دیتابیس اوراکل

در دیتابیس اوراکل تعدادی پکیج به صورت BUILT-IN تعریف شده اند که به آنها پکیج های DBMS می گویند. این پکیج ها کاربردهای مختلفی دارند و می توان از آنها در زمان ساخت برنامه ها بهره برد.

(بیشتر…)

چند مثال کاربردی از دستور sed در لینوکس

همانطور که می دانید، از دستور sed در سیستم عامل لینوکس، برای پردازش متن استفاده می شود این دستور، فیلتر کردن و تبدیل متن را با سرعت بسیار بالایی ممکن می سازد. در این متن سعی کردیم چند مثال کاربردی را برای این دستور ارائه کنیم.

1.اضافه کردن فضای خالی زیر هر خط:

[oracle@oLinux7 ~]$ sed G  pfile.ora

(بیشتر…)

سناریوی عملی برای مشاهده نقش CLUSTERING_FACTOR خوب و بد

در مبحث “آشنایی با Clustering Factor در اوراکل” مطالبی را در مورد CLUSTERING_FACTOR ارائه دادیم در این مطلب قصد داریم با چند مثال عملی را در این زمینه ارائه کرده و در پایان، هزینه استفاده از ایندکس را برای هر دو حالت با هم مقایسه خواهیم کرد.

 

مثال 1(CLUSTERING_FACTOR بد): قصد داریم با اجرای پرس و جوی زیر، اطلاعاتی از جدول badcftable را در خروجی نمایش دهیم:

SQL> Select * from badcftable where code=2;

(بیشتر…)

آشنایی با Clustering Factor در اوراکل

قصد داریم از طریق یکی از ایندکسهای جدول، به تک تک رکوردهای آن جدول دسترسی پیدا کنیم به این صورت که ابتدا آدرس فیزیکی یا همان rowid رکورد را از طریق ایندکس پیدا کرده و سپس با انتقال Data Block حاوی آن رکورد به حافظه، جدول را scan کنیم.

از آنجایی که اطلاعات در ایندکس به صورت “مرتب” ذخیره می شوند، هر چه ترتیب قرار گرفتن رکوردها در جدول مشابه ترتیب قرارگیری keyها در ایندکس باشد، نیاز به I/O کمتری خواهیم داشت و SCAN جدول از طریق ایندکس می تواند با سرعت بیشتری انجام شود.

به عبارتی دیگر اگر در یک Leaf Block پنج index entry موجود باشد، در بهترین حالت هر پنج رکورد متناظر با index entryها، در یک Data Block قرار می گیرند و در بدترین حالت، هرکدام از این رکوردها در یک بلاک مجزا در جدول ذخیره شده اند.

(بیشتر…)

مروری کوتاه بر چند نکته در مورد Interval Partitioning

با ارائه قابلیت Interval partitioning در اوراکل نسخه 11g، نیاز به اضافه کردن دستی پارتیشن، در هنگام درج اطلاعات خارج از محدوده از بین رفته است. در این متن به صورت خلاصه نکاتی را در مورد Interval Partitioning مرور خواهیم کرد.

(بیشتر…)

آموزش PL/SQL قسمت چهاردهم – COLLECTION در اوراکل PL/SQL

در این قسمت انواع COLLECTION در PL/SQL را توضیح می دهیم. COLLECTION یک مجموعه ترتیبی از اجزای مختلف است که نوع داده یکسان دارند. سه مدل COLLECTION قابل تعریف و استفاده هستند که یکی از آنها Varray یا آرایه است که قبلا آن را توضیح دادیم.

(بیشتر…)

تغییر مسیر logs directory در لینوکس

پرسش: چگونه می توان مسیر فایلهای Logی که در var/log/ قرار دارند را به مسیر دیگری تغییر داد؟

پاسخ: مسیر فایلهای Log در لینوکس 8,RHEL 6,7، در فایل پیکربندی سرویس Rsyslog تنظیم می شوند:

[root@node1 ~]# grep “/var/log” /etc/rsyslog.conf

*.info;mail.none;authpriv.none;cron.none      /var/log/messages

authpriv.*        /var/log/secure

mail.*            –/var/log/maillog

cron.*            /var/log/cron

uucp,news.crit    /var/log/spooler

local7.*          /var/log/boot.log

تغییر مسیر var/log/، با تعیین مسیر جدید در فایل rsyslog.conf قابل انجام است:

(بیشتر…)

نکاتی در مورد حداکثر طول کاراکتر ORACLE_SID

همانطور که می دانید، متغیر محیطی ORACLE_SID، نام instance اوراکل را مشخص می کند:

 [oracle@Primary ~]$ echo $ORACLE_SID

sid

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME

—————-

sid

در این متن نکاتی را در مورد حداکثر طول کاراکتر ORACLE_SID و نام instance ارائه خواهیم کرد.

در زمان کار با ابزار netmgr، امکان استفاده از sid با طول بیشتر از 8 کاراکتر وجود ندارد و در صورت تنظیم با خطای زیر مواجه خواهیم شد:

(بیشتر…)