欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
[精彩] 急,請教oralce 刪除記錄后空間釋放問(wèn)題
表a有1000完條記錄,使用TS_A 表空間,查看表a占用TS_A的容量為1G,而TS_A的容量為1.3G
現在刪除了700萬(wàn)條記錄,COMMIT后查看表a占用TS_A的容量仍然為1G,而且TS_A的容量還是1。3G,請問(wèn)有什么方法可以使這兩個(gè)空間釋放出來(lái)???謝謝!!!!!!!!!1
seraphim 回復于:2003-08-26 18:32:43
EXP,然后DROP原有的數據文件,再創(chuàng )建,然后重新IMP
westapple 回復于:2003-08-26 18:33:09
下面這段可以用來(lái)查某個(gè)用戶(hù)的空間使用情況,try it
The following is a simple SQL*Plus report on space utilization by tables in the current session schema. It displays total space allocated, total unused space, and the percentage of allocated space that is unused.
DECLARE
total_blocks  NUMBER;
total_bytes   NUMBER;
unused_blocks NUMBER;
unused_bytes  NUMBER;
last_extent_file  NUMBER;
last_extent_block NUMBER;
last_block    NUMBER;
grand_total_blocks NUMBER := 0;
grand_total_unused NUMBER := 0;
BEGIN
FOR user_tables_rec IN
(SELECT table_name
FROM user_tables)
LOOP
DBMS_SPACE.UNUSED_SPACE
(segment_owner =>; USER
,segment_name  =>; user_tables_rec.table_name
,segment_type  =>; ‘TABLE‘
,total_blocks  =>; total_blocks
,total_bytes   =>; total_bytes
,unused_blocks =>; unused_blocks
,unused_bytes  =>; unused_bytes
,last_used_extent_file_id =>; last_extent_file
,last_used_extent_block_id =>; last_extent_block
,last_used_block  =>; last_block
);
grand_total_blocks := grand_total_blocks + total_blocks;
grand_total_unused := grand_total_unused + unused_blocks;
END LOOP;
DBMS_OUTPUT.PUT_LINE(‘Space utilization (TABLES) ‘);
DBMS_OUTPUT.PUT_LINE(‘total blocks: ‘||
TO_CHAR(grand_total_blocks) );
DBMS_OUTPUT.PUT_LINE(‘unused blocks: ‘||
TO_CHAR(grand_total_unused) );
DBMS_OUTPUT.PUT_LINE(‘pct unused: ‘||
TO_CHAR(ROUND((grand_total_unused/grand_total_blocks)*100) ) );
END;
/
This is a sample of the report output:
Space utilization (TABLES)
total blocks: 1237
unused blocks: 613
pct unused: 50
注意,此代碼需要根據實(shí)際情況修改。
下面語(yǔ)句可以用來(lái)釋放未釋放的空間:
ALTER [ TABLE | INDEX | CLUSTER ] segment_name DEALLOCATE UNUSED;
至于表空間的大小是在創(chuàng )建表空間時(shí)根據數據文件的大小確定的,其大小不會(huì )因為表空間內數據的多少而改變。
表空間的大?。綄儆谠摫砜臻g的的數據文件的空間占用之和。
westapple 回復于:2003-08-26 18:37:25
seraphim ,你也來(lái)了。      :D
seraphim 回復于:2003-08-26 19:12:23
引用:原帖由 "westapple"]seraphim ,你也來(lái)了。      :D
發(fā)表:
:D  :D
沒(méi)事兒上來(lái)看看
lojn 回復于:2003-08-26 20:02:08
用 alter table move ...
sam2 回復于:2003-08-27 10:13:28
不行啊,各位大蝦,
表a存儲運營(yíng)數據,不能DROP,
我也試了 ALTER a DEALLOCATE UNUSED,然后查看,兩個(gè)空間都還是沒(méi)變啊,大哥,請幫幫忙,急啊!!!!!!!!!!!!!!!!!!
0_0 回復于:2003-08-27 10:30:25
1.Alter table table_name move tablespace tbsname
2.Exp后刪除表再I(mǎi)mp
Taylorgao 回復于:2003-08-27 12:32:30
create table t_tmp as select * from a;
truncate table a;
insert into a select * from t_tmp
txfy 回復于:2003-08-27 13:15:22
那種方法管用啊,我也想知道結果,這么多說(shuō)法不知道那個(gè)是精彩回復!呵呵
sanow 回復于:2003-08-27 14:00:36
建立新的表空間new_tablespace
.Alter table table_name move tablespace new_tablespace
這樣就已經(jīng)整理了碎片。不必在再什么EXP,IMP了。
rollingpig 回復于:2003-08-27 15:34:48
引用:原帖由 "txfy"]那種方法管用啊,我也想知道結果,這么多說(shuō)法不知道那個(gè)是精彩回復!呵呵
發(fā)表:
呵呵
alter table …… move tablespace
sam2 回復于:2003-08-27 15:40:47
首先謝謝各位大蝦,經(jīng)過(guò)測試,我發(fā)現在刪除數據后,表占用表空間是不變的,但當再insert 相同條數的數據(被刪除的數據),再查看,表占用表空間還
是和INSERT前那么多,但再I(mǎi)NSERT時(shí),空間就會(huì )增加了,該怎么解釋呢?
是不是其實(shí)刪除數據后空間是發(fā)生變化了,或打上了標記位,當下一次INSERT時(shí)就覆蓋該標志位的數據段,那么就相當于釋放了被刪除的數據  ??
sam2 回復于:2003-08-27 15:43:45
alter table …… move tablespace  是可以看到釋放了空間,但這樣把表空間改來(lái)改去,萬(wàn)一ALTER的過(guò)程發(fā)生錯誤,那就很恐怖了,所以不敢試
psb_天涯浪子 回復于:2003-08-27 15:47:58
好像刪除一個(gè)表的數據后,原存放該數據的空間不提供給同一表空間內的其他表使用,但此表在插入數據的時(shí)候也仍然可以使用釋放出來(lái)的空間。
引用:原帖由 "sam2" 發(fā)表:
首先謝謝各位大蝦,經(jīng)過(guò)測試,我發(fā)現在刪除數據后,表占用表空間是不變的,但當再insert 相同條數的數據(被刪除的數據),再查看,表占用表空間還
是和INSERT前那么多,但再I(mǎi)NSERT時(shí),空間就會(huì )增加了,該怎么解釋呢..........
rollingpig 回復于:2003-08-27 16:24:32
呵呵
this is the question about HWM(high water mark)
only truncate/drop/move can reduce it!!
精華區里有這一方面的文章,大家可以看看??!
pigydree 回復于:2004-07-06 09:43:35
用delete刪除數據
--先將a表備份。
rename  a  to  a_bak;
-- 下面建表的這句話(huà),主要為了達到一個(gè)目的,就是創(chuàng )建一個(gè)跟a表完全相同的孔表,因此不一定要這么寫(xiě)。
create table   a    as select * from     a_bak    where 1=2;
--將備份表的數據插回新創(chuàng )建的表。
insert  into   a  select * from a_bak;
--刪除備份表。
drop table a_bak;
:em02:  :em02:
原文鏈接:http://bbs.chinaunix.net/viewthread.php?tid=147774
轉載請注明作者名及原文出處
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Oracle 高水位線(xiàn)(HWM) 及性能優(yōu)化 - wanglinchuan的專(zhuān)欄 - CS...
本地表空間管理與字典表空間管理深入研究
ORACLE 數據庫管理員的職責
oracle創(chuàng )建表空間和用戶(hù)授權 - - JavaEye技術(shù)網(wǎng)站
DBA常用腳本
如何在多租戶(hù)環(huán)境下使用數據庫的閃回功能
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久