to_date('2013-7-3123:59:59','yyyy-mm-ddhh24:mi:ss');2、然后將2" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

一次oracle大量數(shù)據(jù)刪除經(jīng)歷

系統(tǒng) 2905 0

???? oracle有個(gè)數(shù)據(jù)表現(xiàn)在已經(jīng)有2500萬條數(shù)據(jù)了,軟件用到這個(gè)表的數(shù)據(jù)時(shí)就變的特別慢,所以準(zhǔn)備把一個(gè)月以前的數(shù)據(jù)全部清除。

???? 我的步驟是(下邊操作都是在plsql中運(yùn)行的)

?1、首先 將這個(gè)月的數(shù)據(jù)導(dǎo)出到一個(gè)臨時(shí)表中(這些數(shù)據(jù)是自己希望保留的)

?? create table tempTable as select id,name from?table1 where sj>to_date('2013-7-31 23:59:59','yyyy-mm-dd hh24:mi:ss');

2、然后將2500萬數(shù)據(jù)整個(gè)刪除(這個(gè)是我在有備份情況下才用的)

truncate table table1;?

3、然后將整個(gè)表刪除(因?yàn)槭孪葟木W(wǎng)上查了下,有網(wǎng)友說truncate后,直接把數(shù)據(jù)從臨時(shí)表導(dǎo)回來事個(gè)數(shù)據(jù)文件沒有變小,自己沒有試)

drop table table1;

4、將數(shù)據(jù)從臨時(shí)表全部導(dǎo)回來

create table?table1 as select id,name from?tempTable;

5、然后刪除臨時(shí)表

drop table tempTable;

這樣整個(gè)過程用了大概10分鐘左右就完成了。

以上僅是自己操作心得,如有不正確或者更好的方法希望大家指正。

附:來自 http://www.cnblogs.com/simplefrog/archive/2012/07/30/2615169.html

語法 delete from aa truncate table aa

區(qū)別 1.delete from后面可以寫條件,truncate不可以。

2.delete from記錄是一條條刪的,所刪除的每行記錄都會(huì)進(jìn)日志,而truncate一次性刪掉整個(gè)頁,因此日至里面只記錄頁釋放,簡言之,delete from更新日志,truncate基本不,所用的事務(wù)日志空間較少。

3.delete from刪空表后,會(huì)保留一個(gè)空的頁,truncate在表中不會(huì)留有任何頁。

4.當(dāng)使用行鎖執(zhí)行 DELETE 語句時(shí),將鎖定表中各行以便刪除。truncate始終鎖定表和頁,而不是鎖定各行。

5.如果有identity產(chǎn)生的自增id列,delete from后仍然從上次的數(shù)開始增加,即種子不變,而truncate后,種子會(huì)恢復(fù)初始。

6.truncate不會(huì)觸發(fā)delete的觸發(fā)器,因?yàn)閠runcate操作不記錄各個(gè)行刪除。

總結(jié) 1.truncate和 delete只刪除數(shù)據(jù)不刪除表的結(jié)構(gòu)(定義)???? ?? drop語句將刪除表的結(jié)構(gòu)被依賴的約束(constrain),觸發(fā)器(trigger),索引(index); 依賴于該表的存儲(chǔ)過程/函數(shù)將保留,但是變?yōu)閕nvalid狀態(tài)。

? 2.delete語句是dml,這個(gè)操作會(huì)放到rollback segement中,事務(wù)提交之后才生效;如果有相應(yīng)的trigger,執(zhí)行的時(shí)候?qū)⒈挥|發(fā) ??? truncate,drop是ddl, 操作立即生效,原數(shù)據(jù)不放到rollback segment中,不能回滾. 操作不觸發(fā)trigger。

? 3.delete語句不影響表所占用的extent, 高水線(high watermark)保持原位置不動(dòng)???? ?? 顯然drop語句將表所占用的空間全部釋放???? ?? truncate 語句缺省情況下見空間釋放到 minextents個(gè) extent,除非使用reuse storage;?? truncate會(huì)將高水線復(fù)位(回到最開始)。

? 4.速度,一般來說: drop> truncate > delete。

???? 5.安全性:小心使用drop 和truncate,尤其沒有備份的時(shí)候.否則哭都來不及。

6.使用上,想刪除部分?jǐn)?shù)據(jù)行用delete,注意帶上where子句. 回滾段要足夠大.???? 想刪除表,當(dāng)然用drop???? 想保留表而將所有數(shù)據(jù)刪除. 如果和事務(wù)無關(guān),用truncate即可. 如果和事務(wù)有關(guān),或者想觸發(fā)trigger,還是用delete 如果是整理表內(nèi)部的碎片,可以用truncate跟上reuse stroage,再重新導(dǎo)入/插入數(shù)據(jù)。

?

一次oracle大量數(shù)據(jù)刪除經(jīng)歷


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 五寨县| 甘肃省| 长泰县| 祁连县| 高安市| 宁晋县| 万安县| 广河县| 弋阳县| 杭锦旗| 大名县| 原阳县| 浠水县| 环江| 昭通市| 罗定市| 聊城市| 鹤山市| 绥化市| 车致| 遂溪县| 侯马市| 团风县| 棋牌| 方山县| 长沙县| 汾西县| 大埔县| 涟源市| 东城区| 天镇县| 平顶山市| 湄潭县| 平罗县| 新郑市| 万山特区| 和政县| 琼结县| 米易县| 自贡市| 临沭县|