اوراکل؛پستگرس – نمایش حجم جداول و دیتابیس بصورت Human-Readable

خرید بک لینک

در سیستم عامل لینوکس به همراه دستوراتی که فضای مصرفی فایلها، دایرکتوریها و پارتیشنها را نمایش نیلوبلاگ می دهند (نظیر df و du) می توان از سوییچ h برای نمایش خواناتر خروجی استفاده کرد که کلمه h مخفف عبارت Human-Readable می باشد.

مثال:

[oracle@host ~]$ df

Filesystem 1K-blocks Used Available Use% Mounted on

/dev/sda3 543928992 169894132 346381740 33% /

tmpfs 178257920 351512 177906408 1% /dev/shm

/dev/sda1 499656 144960 318000 32% /boot

[oracle@host ~]$ df -h

Filesystem Size Used Avail Use% Mounted on

/dev/sda3 519G 163G 331G 33% /

tmpfs 170G 344M 170G 1% /dev/shm

/dev/sda1 488M 142M 311M 32% /boot

در محیط دیتابیس نیلوبلاگ هم توابعی وجود دارند که بتوان از طریق آنها حجم نیلوبلاگ مصرفی segmentها و دیتابیس را به صورت خوانا نمایش داد.

برای مثال در دیتابیس اوراکل، برای نمایش حجم segmentها به صورت Human-Readable می توان از بسته dbms_xplan استفاده کرد.

البته می دانیم که کاربرد عمده این package به نمایش execution plan دستورات برمی گردد اما این پکیج در کنار نمایش execution plan، توابع دیگری نظیر format_size، format_number و format_time_s هم دارد که می توان از انها برای نمایش خواناتر خروجی استفاده کرد.

برای مثال، دستور زیر با کمک تابع format_size، حجم segmentهای موجود در دیتابیس را بصورت نیلوبلاگ خوانا نمایش خواهد داد:

select owner,segment_name,dbms_xplan.format_size(bytes) TBL_SIZE from dba_segments order by bytes desc;

همچنین با کمک دستور زیر، می توان حجم کلی دیتابیس را بصورت خوانا مشاهده کرد:

select dbms_xplan.format_size(sum(bytes)) as Oracle_DB_Size from dba_data_files;

4471G

در دیتابیس پستگرس، نمایش حجم کلی دیتابیسها، با استفاده از تابع pg_database_size قابل انجام است. برای مثال با دستور زیر می توان حجم دیتابیسی با نام postgres را بر اساس بایت مشاهده کرد:

postgres=# select pg_database_size(‘postgres’);

pg_database_size

——————

5580020871

(1 row)

برای نمایش این فضا بصورت Human-Readable می توان از تابع دیگری با نام pg_size_pretty کمک گرفت:

postgres=# select pg_size_pretty( pg_database_size(‘postgres’) );

pg_size_pretty

—————-

5322 MB

(1 row)

همچنین در محیط پستگرس برای نمایش حجم جداول نیلوبلاگ ، می توان از pg_relation_size استفاده کرد:

postgres=# select pg_relation_size(‘MYTBL’);

pg_relation_size

——————

2263605248

(1 row)

postgres=# select pg_size_pretty(pg_relation_size(‘MYTBL’));

pg_size_pretty

—————-

2159 MB

(1 row)

پ.ن 1: برای مشاهده سایز یک جدول به همراه سایز segmentهای وابسته به آن نظیر ایندکسها، می توان از تابع pg_total_relation_size استفاده کرد:

postgres=# select pg_size_pretty(pg_total_relation_size(‘MYTBL’));

pg_size_pretty

—————-

2964 MB

(1 row)

پ.ن 2: برای مشاهده پنج جدول حجیم موجود در دیتابیس، می توان از پرس و جوی زیر بهره گرفت:

SELECT

relname AS “relation”,

pg_size_pretty (

pg_total_relation_size (C .oid)

) AS “total_size”

FROM

pg_class C

LEFT JOIN pg_namespace N ON (N.oid = C .relnamespace)

WHERE

nspname NOT IN (

‘pg_catalog’,

‘information_schema’

)

AND C .relkind <> ‘i’

AND nspname !~ ‘^pg_toast’

ORDER BY

pg_total_relation_size (C .oid) DESC

LIMIT 5;

relation | total_size

———-+————

mytbl | 2964 MB

mytbl2 | 753 MB

mytbl5 | 24 kB

(3 rows)

تالار های تخصصی...

ما را در سایت تالار های تخصصی دنبال می‌کنید

برچسب: نویسنده: خنجی بازدید: 230 تاريخ: سه شنبه 18 آذر 1399 ساعت: 22:46

صفحه بندی