oracle清空表資料

2021-10-23 11:27:20 字數 587 閱讀 2234

truncate table 表名;

delete from 表名;

兩者都可以用來刪除表中所有的記錄。區別在於:truncate是ddl操作,它移動hwk,不需要 rollback segment(執行完沒有提交或者回滾),立即釋放空間。而delete是dml操作, 需要rollback segment(執行完有提交或者回滾),不釋放空間,且花費較長時間

rollback segments是在你資料庫中的一些儲存空間,它用來臨時的儲存當資料庫資料發生改變時的先前值,rollback segment主要有兩個目的:

1. 如果因為某種原因或者其他用使用者想要通過rollback宣告來取消乙個人的資料操作,資料就會復原到之前為改變時的值。這種情況只在transaction的過程中有效,如果使用者執行了commit命令,那麼rollback segment裡面的值就會標識為失效的,資料改變就將永久化。

2. 另乙個目的是當有併發的session訪問了乙個資料值改變但事務還沒有提交的表。如果乙個select語句開始讀取乙個表同時乙個事務也在修改這個表的值,那麼修改前的值就會儲存到rollback segment裡面,select語句也是從rollback segment裡面讀取表的值

Oracle 清空表分割槽

etl重刷201709資料,為了加快插入速度,不與已有資料比較,需要直接清空表指定分割槽的月份資料 alter table tf fin cux doc sre truncate partition balance dt 201709 接著需要重建索引,不然會報錯 ora 01502 alter i...

清空Oracle臨時表空間

tags oracle 今天發現一oracle的sql語句執行超過了2分鐘,因為本人從事的專案資料量都不大,還沒遇到過2分鐘以上不出結果的時候。因此十分疑惑。執行了一段時間之後,發覺oracle無法連線出現異常。此時登入oracle安裝伺服器,sqlplus無法連線。檢視硬碟空間,發現硬碟已滿。經過...

清空oracle臨時表空間

清空臨時表空間 0.shutdown immediate 1.startup 啟動資料庫 2.create temporary tablespace temp2 tempfile home2 oracle oradata sysmon temp02.dbf size 512m reuse autoe...