關於oracle的筆記

來源:互聯網
上載者:User

標籤:

1、查看一個表暫用的資料表空間大小: SELECT bytes/1024/1024||‘MB‘,a.*FROM user_segments a WHERE a.segment_name =‘TL_SP_NONREAL_LIST_201505‘; //103查詢錯單資料表空間 SELECT segment_name,sum(bytes)/1024/1024 FROM User_Segments a WHERE a.tablespace_name=‘ZHJS_LIST_ERROR‘ AND a.segment_type=‘TABLE PARTITION‘ AND a.BYTES<>‘8388608‘ AND a.segment_name NOT LIKE ‘%200906‘ GROUP BY a.segment_name

2、查看一個資料表空間所佔的實際大小: SELECT sum(bytes)/1024/1024||‘MB‘ FROM user_segments a WHERE a.tablespace_name =‘SETT_ANALYSE_LIST_201505‘;

3、查看一個資料表空間對應的資料檔案: SELECT * FROM dba_data_files a WHERE a.tablespace_name =‘SETT_ANALYSE_LIST_201505‘;

4、查詢資料表空間的總大小以及使用大小 select a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024 "used MB",b.bytes/1024/1024 "free MB", round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used" from (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name) b where a.tablespace_name=b.tablespace_name order by ((a.bytes-b.bytes)/a.bytes) desc;

5、建立一個大資料量的表,佔用資料表空間大小几個G,delete這張表的資料,此時只需查詢發現很慢,查詢的表資料為空白, 其實就是其資料表空間沒有釋放的緣故。 執行alter table jk_test move 或 alter table jk_test move storage(initial 64k) 或alter table jk_test deallocate unused KEEP 0或 alter table jk_test shrink space. 這樣操作後,會失去索引,這是可以將失效的索引重建 select index_name,table_name,tablespace_name,index_type,status  from dba_indexes  where table_owner=‘SETT_ANALYSE‘ ; 根據status的值,重建無效的就好了alter owner.index_name rebuild; ,重新查詢就很小了 注意:drop...purge 和 truncate表時,其所佔用的空間會得到釋放,原因應該是不進入資源回收筒,(單獨drop會進入資源回收筒的) 進資源回收筒的資料可以通過flashback找回:具體方法如下: select original_name,dropscn from recyclebin where lower(original_name)=‘js_stat_sp_report_sec_1009‘; flashback table jianbiao_beifen to before drop;

6、不管是delete還是truncate相應的資料檔案大小都不會改變,如果想改變資料檔案佔用的空間大小可執行: alter database datafile ‘filename‘ resize 8g,重定義檔案大小 關於purge的補充: purge tablespace tablespace_name--清空資料表空間的recycle bin purge tablespace tablespace_name user username--指定資料表空間的recycle bin的指定對象 drop table table_name purge--永久刪除,不能用flashback恢複

7、移動資料表空間 分區表:altrer table TL_Y_TOLL_XJJS_LIST_201603 move partition D_21 tablespace zhjs_dsyy; 非分區表:alter table TL_Y_TOLL_XJJS_LIST_201603 move tablespace zhjs_dsyy ;

8、查詢哪張表被建索引:SELECT * FROM user_indexes; 判斷哪張表的那個欄位建了索引:select * from user_ind_columns;

9、如果是在已有的資料表空間中添加資料檔案,則使用: alter tablespace 資料表空間名 add datafile ‘資料檔案名稱路徑‘ size 50M; 如果是建立一個資料表空間則是: create tablespace 資料表空間名 datafile ‘資料檔案名稱路徑‘ size 50M;

出庫: P_EXPDB_COLLECT_LIST

move_list_data_to_szx

gdb跟蹤命令: gdb 進程名 進程號 b *.cpp:行數 :打斷點在哪一行 p 變數 :列印出變數的值 n :下一步 s :進方法 exit 退出

ppstdcdr--標準格式 wjjsct_ngn.h繼承cdrbase.sh  #include "cdrbase.h"

truncate table 後,有可能資料表空間仍沒有釋放,可以使用如下語句: alter table 表名稱 deallocate   UNUSED KEEP 0; 注意如果不加KEEP 0的話,資料表空間是不會釋放的。  例如: alter table F_MINUTE_TD_NET_FHO_B7 deallocate   UNUSED KEEP 0; 或者: TRUNCATE TABLE (schema)table_name DROP(REUSE) STORAGE才能釋放資料表空間。  例如: truncate table  test1 DROP STORAGE; 三、查詢分區表存在哪些分區:  查詢分區表的情況,可以在USER_TAB_PARTITIONS中查詢。例如: select ‘alter table ‘||t.table_name ||‘ truncate   partition ‘ || t.partition_name from USER_TAB_PARTITIONS t where t.table_name like ‘F_%‘ 查詢各個分區暫用資料表空間

SELECT  TABLESPACE_NAME,partition_name,TO_CHAR(SUM(BYTES)/(1024*1024),‘999G999D999‘)   FROM   DBA_EXTENTS   WHERE    SEGMENT_NAME=‘TL_ERR_D_SMS‘   AND   SEGMENT_TYPE   LIKE   ‘TABLE%‘   GROUP   BY   TABLESPACE_NAME,partition_name;

 

清除指定某個分區表的分區資料: alter   table  表名稱   truncate   partition   分區名稱; 四、清除分區表佔用的空間: alter table 表名稱  DROP    partition 分區名稱; 例如: alter table F_HOUR_TD_NET_MPVOICE  DROP    partition P_09121913         ;

 

    --查看單個表佔用物理空間的大小 ---查詢分區表 SELECT a.* FROM (   SELECT t.owner,t.tablespace_name,t.segment_name,sum(t.BYTES)/1024/1024/1024 total    FROM sys.sys_dba_segs t   WHERE t.partition_name IS NOT NULL   AND   t.segment_name NOT LIKE ‘%$%‘ /*  AND   lower(t.owner) = ‘zhjs_app‘ */   AND   UPPER(t.tablespace_name) = UPPER(‘ZHJS_ZDJS_0510‘)   GROUP by t.owner,t.tablespace_name,t.segment_name ) a /*WHERE a.total >= 2.5 */ ORDER BY a.total DESC ; --查詢非分區表 SELECT a.* FROM (   SELECT t.owner,t.tablespace_name,t.segment_name,sum(t.BYTES)/1024/1024/1024 total    FROM sys.sys_dba_segs t   WHERE t.partition_name IS NULL   AND   t.segment_name NOT LIKE ‘%$%‘ /*  AND   lower(t.owner) = ‘zhjs_app‘ */   AND   UPPER(t.tablespace_name) = UPPER(‘ZHJS_ZDJS_0510‘)   GROUP by t.owner,t.tablespace_name,t.segment_name ) a /*WHERE a.total >= 2.5 */ ORDER BY a.total DESC ;

TRUNCATE TABLE  ter_510.BSS_ZSZH_COUPON_BACKUP; TRUNCATE TABLE   ter_510.TL_ERROR_LIST_ELSE; TRUNCATE TABLE  ter_510.TL_SETT_LIST_HIS; TRUNCATE TABLE   ter_510.BSS_TD_STORE_INOUT_CHANGE_BKP; TRUNCATE TABLE ter_510.BSS_CHANNEL_TEMP;

關於oracle的筆記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.