千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術(shù)干貨  > oracle怎樣快速刪除大量的數(shù)據(jù)?

oracle怎樣快速刪除大量的數(shù)據(jù)?

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-10-13 02:38:56 1697135936

一、oracle怎樣快速刪除大量的數(shù)據(jù)

針對數(shù)據(jù)量比較大的情況較好是分表,但是分表是有代價的,分表后程序也要做響應調(diào)整,這要求在前期規(guī)劃的時候就要考慮到這個問題。更普遍的做法采用分區(qū)比較多(個人看法)同時對老數(shù)據(jù)進行轉(zhuǎn)移,比如對登錄日志、盤存信息等可以將5年以前的數(shù)據(jù)進行歸檔,放到另外一張表中,使在用的表保持在一定的數(shù)據(jù)量(比如1000萬,500萬)。那么在歸檔完成后肯定需要對原表數(shù)據(jù)進行刪除,這個時候刪除的數(shù)據(jù)量可能就會比較大(500萬,1000萬)。那么在刪除大量數(shù)據(jù)的方法有哪些呢?本文針對oracle數(shù)據(jù)庫為例說明各種方法。

1、truncate命令

如果表數(shù)據(jù)都不要了,可以使用這個命令。此命令一旦使用無法恢復,慎用!!!

truncate table test;

2、臨時表

將表中數(shù)據(jù)轉(zhuǎn)移到臨時表,對原表使用truncate命令,然后再把數(shù)據(jù)導入原表。

缺點:不能在線使用

3、nologing模式

具體用法可以查看這篇文章oracle nologging用法(轉(zhuǎn)) – 滄海一滴 – 博客園

create table test_bak nologging as select * from test;

4、parallel

delete /*+ parallel(并行度) */ test where …;

并行度可以指定為cpu的核數(shù)。

缺點:可能會把數(shù)據(jù)庫搞死

5、化整為零

此方法就是一次刪除少一點數(shù)據(jù),比如一次只刪除一個月,是一種笨方法。

DECLARE

? v_nums????? INTEGER := 24;

? v_start???? VARCHAR2(10);

? v_startdate DATE;

? v_enddate?? DATE;

? v_1???????? INTEGER;

BEGIN

? v_start := ‘2019-01-01’; –開始日期

? FOR v_1 IN 1 .. v_nums

? LOOP

??? v_startdate := add_months(to_date(v_start, ‘yyyy-mm-dd’), v_1 – 1);

??? v_enddate?? := add_months(v_startdate, 1);

??? dbms_output.put_line(v_1 || ‘-‘ || v_startdate || ‘-‘ || v_enddate);

??? DELETE FROM dd_goods_inventory_bak t

???? WHERE t.querydate < v_enddate

?????????? AND t.querydate >= v_startdate;

??? COMMIT;

? END LOOP;

END。

延伸閱讀:

二、實例(instance)是什么

一組Oracle 后臺進程/線程以及一個共享內(nèi)存區(qū),這些內(nèi)存由同一個計算機上運行的線程/進程所共享。這里可以維護易失的、非持久性內(nèi)容(有些可以刷新輸出到磁盤)。就算沒有磁盤存儲,數(shù)據(jù)庫實例也能存在。也許實例不能算是世界上最有用的事物,不過你完全可以把它想成是最有用的事物,這有助于對實例和數(shù)據(jù)庫劃清界線。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學 138****2860 剛剛成功領(lǐng)取
王同學 131****2015 剛剛成功領(lǐng)取
張同學 133****4652 剛剛成功領(lǐng)取
李同學 135****8607 剛剛成功領(lǐng)取
楊同學 132****5667 剛剛成功領(lǐng)取
岳同學 134****6652 剛剛成功領(lǐng)取
梁同學 157****2950 剛剛成功領(lǐng)取
劉同學 189****1015 剛剛成功領(lǐng)取
張同學 155****4678 剛剛成功領(lǐng)取
鄒同學 139****2907 剛剛成功領(lǐng)取
董同學 138****2867 剛剛成功領(lǐng)取
周同學 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
為什么不用key-value型數(shù)據(jù)庫實現(xiàn)關(guān)系型數(shù)據(jù)庫?

一、為什么不用key-value型數(shù)據(jù)庫實現(xiàn)關(guān)系型數(shù)據(jù)庫TiDB / CockroachDB 都是基于 KV 模型做的分布式關(guān)系型數(shù)據(jù)庫。TiDB 實際上是構(gòu)建在 TiKV + p...詳情>>

2023-10-13 04:21:53
關(guān)系型數(shù)據(jù)庫是什么?

一、什么是關(guān)系型數(shù)據(jù)庫關(guān)系型數(shù)據(jù)庫是按照關(guān)系模型組織和存儲數(shù)據(jù)的數(shù)據(jù)庫。它使用表格(表)的形式來表示和存儲數(shù)據(jù),每個表代表一個實體,而...詳情>>

2023-10-13 04:12:45
什么情況下需要使用分布式數(shù)據(jù)庫?

一、需要使用分布式數(shù)據(jù)庫的情況1、大規(guī)模數(shù)據(jù)存儲和處理當數(shù)據(jù)量非常大時,單個數(shù)據(jù)庫可能無法滿足存儲和處理的需求。分布式數(shù)據(jù)庫可以將數(shù)據(jù)...詳情>>

2023-10-13 04:09:56
人大金倉數(shù)據(jù)庫是完全基于自研,是基于pc或是別的什么?

一、人大金倉數(shù)據(jù)庫北京人大金倉數(shù)據(jù)庫管理系統(tǒng)KingbaseES基于自主研究,它是北京人大金倉信息技術(shù)股份有限公司經(jīng)過多年努力,開發(fā)的具有自主知...詳情>>

2023-10-13 03:51:35
在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐是什么?

一、在Nodejs中使用MySQL數(shù)據(jù)庫的優(yōu)異實踐1. 請一直使用pool,沒有何時。2. pool在程序初始化的時候創(chuàng)建,無需銷毀,從中抽取實例連接就行,無...詳情>>

2023-10-13 03:26:40
久久亚洲中文字幕精品一区四,亚洲日本另类欧美一区二区,久久久久久久这里只有免费费精品,高清国产激情视频在线观看
思思久久96热在精品 | 亚洲国产每日更新 | 天天综合一区二区三区 | 亚洲色偷偷偷综合网另类小说 | 视频区国产亚洲.欧美 | 天天综合久久综合影院 |