中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle如何查看對象空間使用情況

發布時間:2021-11-09 10:22:46 來源:億速云 閱讀:141 作者:小新 欄目:關系型數據庫

這篇文章主要為大家展示了“Oracle如何查看對象空間使用情況”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Oracle如何查看對象空間使用情況”這篇文章吧。

–工具源碼

CREATE OR REPLACE PROCEDURE show_space(p_segname   IN VARCHAR2,
                                       p_owner     IN VARCHAR2 DEFAULT USER,
                                       p_type      IN VARCHAR2 DEFAULT 'TABLE',
                                       p_partition IN VARCHAR2 DEFAULT NULL) AS
  l_free_blks          NUMBER;
  l_total_blocks       NUMBER;
  l_total_bytes        NUMBER;
  l_unused_blocks      NUMBER;
  l_unused_bytes       NUMBER;
  l_lastusedextfileid  NUMBER;
  l_lastusedextblockid NUMBER;
  l_last_used_block    NUMBER;
  l_segment_space_mgmt VARCHAR2(255);
  l_unformatted_blocks NUMBER;
  l_unformatted_bytes  NUMBER;
  l_fs1_blocks         NUMBER;
  l_fs1_bytes          NUMBER;
  l_fs2_blocks         NUMBER;
  l_fs2_bytes          NUMBER;
  l_fs3_blocks         NUMBER;
  l_fs3_bytes          NUMBER;
  l_fs4_blocks         NUMBER;
  l_fs4_bytes          NUMBER;
  l_full_blocks        NUMBER;
  l_full_bytes         NUMBER;  PROCEDURE p(p_label IN VARCHAR2,
              p_num   IN NUMBER) IS
  BEGIN
    dbms_output.put_line(rpad(p_label, 40, '.') ||                         to_char(p_num, '999,999,999,999'));
  END;BEGIN
  EXECUTE IMMEDIATE 'select ts.segment_space_management from dba_segments seg,dba_tablespaces ts where seg.segment_name = :p_segname and (:p_partition is null or seg.partition_name = :p_partition) and seg.owner = :p_owner and seg.tablespace_name=ts.tablespace_name'
    INTO l_segment_space_mgmt    USING p_segname, p_partition, p_partition, p_owner;
  --     exception
  --             when too_many_rows
  --             then
  --             dbms_output.put_line('This must be a partitioned table,use p_partition => ');
  --             return;
  --     end;  IF l_segment_space_mgmt = 'AUTO' THEN
    dbms_space.space_usage(p_owner, p_segname, p_type, l_unformatted_blocks,
                           l_unformatted_bytes, l_fs1_blocks, l_fs1_bytes,
                           l_fs2_blocks, l_fs2_bytes, l_fs3_blocks, l_fs3_bytes,
                           l_fs4_blocks, l_fs4_bytes, l_full_blocks,
                           l_full_bytes, p_partition);
    p('Unformatted Blocks  ', l_unformatted_blocks);
    p('FS1 Blocks (0-25)   ', l_fs1_blocks);
    p('FS2 Blocks (25-50)  ', l_fs2_blocks);
    p('FS3 Blocks (50-75)  ', l_fs3_blocks);
    p('FS4 Blocks (75-100) ', l_fs4_blocks);
    p('Full Blocks         ', l_full_blocks);  ELSE
    dbms_space.free_blocks(segment_owner => p_owner, segment_name => p_segname,
                           segment_type => p_type, freelist_group_id => 0,
                           free_blks => l_free_blks);  END IF;
  dbms_space.unused_space(segment_owner => p_owner, segment_name => p_segname,
                          segment_type => p_type, partition_name => p_partition,
                          total_blocks => l_total_blocks,
                          total_bytes => l_total_bytes,
                          unused_blocks => l_unused_blocks,
                          unused_bytes => l_unused_bytes,
                          last_used_extent_file_id => l_lastusedextfileid,
                          last_used_extent_block_id => l_lastusedextblockid,
                          last_used_block => l_last_used_block);
  p('Total Blocks ', l_total_blocks);
  p('Total Bytes  ', l_total_bytes);    
  p('Total MBytes ', trunc(l_total_bytes / 1024 / 1024));
  p('Unused Blocks', l_unused_blocks);
  p('Unused Bytes ', l_unused_bytes);
  p('Last Used Ext FileId', l_lastusedextfileid);
  p('Last Used Ext BlockId', l_lastusedextblockid);
  p('Last Used Block', l_last_used_block);END;12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182

–用法演示

create table test_spaceASselect * from dba_tables;/1234
SYS@orcl> exec show_space('TEST_SPACE');1

Total Blocks ……………………… 112 
Total Bytes ……………………… 917,504 
Total MBytes ……………………… 0 
Unused Blocks……………………… 3 
Unused Bytes ……………………… 24,576 
Last Used Ext FileId……………….. 1 
Last Used Ext BlockId………………. 115,608 
Last Used Block……………………. 5

PL/SQL 過程已成功完成。

SYS@orcl> delete from test_space;1

已刪除3044行。

SYS@orcl> commit;1

提交完成。

SYS@orcl> exec show_space('TEST_SPACE');1

Total Blocks ……………………… 112 
Total Bytes ……………………… 917,504 
Total MBytes ……………………… 0 
Unused Blocks……………………… 3 
Unused Bytes ……………………… 24,576 
Last Used Ext FileId……………….. 1 
Last Used Ext BlockId………………. 115,608 
Last Used Block……………………. 5

PL/SQL 過程已成功完成。

SYS@orcl> truncate table test_space;1

表被截斷。

SYS@orcl> exec show_space(‘TEST_SPACE’); 
Total Blocks ……………………… 8 
Total Bytes ……………………… 65,536 
Total MBytes ……………………… 0 
Unused Blocks……………………… 7 
Unused Bytes ……………………… 57,344 
Last Used Ext FileId……………….. 1 
Last Used Ext BlockId………………. 101,872 
Last Used Block……………………. 1

PL/SQL 過程已成功完成。

drop table test_space;

以上是“Oracle如何查看對象空間使用情況”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西青区| 楚雄市| 大方县| 青阳县| 津南区| 苍溪县| 泉州市| 沧源| 福安市| 靖边县| 扎赉特旗| 汉阴县| 石河子市| 泉州市| 卫辉市| 基隆市| 襄垣县| 高邮市| 治县。| 宣威市| 阳城县| 西乌珠穆沁旗| 永川市| 银川市| 德江县| 禄丰县| 郓城县| 靖江市| 西盟| 平阴县| 乐安县| 白沙| 临桂县| 勃利县| 改则县| 汤阴县| 读书| 南城县| 托克逊县| 武城县| 衡阳市|