1、TRAUNCAT TABLE A;
————清空A表,並且釋放A表清空之前佔用內存;
————TRUNCATE是一個DDL語言,執行之後自動提交事物,執行之後無法回滾。
————只有表格創建者,或者相關權限者才能執行此操作。
————執行速度快於DELETE;
————執行之後將重新設置高水位線(高水位線,High Water Mark,內存空間上限,Oracle中每個分區segment——也就是 內存空間,都有一個上限。當表佔用空間超過上限,高水位線會增大,而且這個值只會增大,不會減小,當執行 DELETE時,雖然清楚了數據,但是HWM的值不會變,但是當執行TRUNCAT時,HWM會置爲0);
————執行TRUNCATE之後再次操作表,速度會變快,因爲HWM重置,不需要全表掃描很大的空間;
————當TRUNCATE表,表的所有索引被重置,進行查詢操作速度會變快;
————當TRUNCATE會重置標識計數值,DELETE不會;
————當TRUNCATE會重置自增主鍵(Sequence鍵),從1開始,DELETE不會,這都是DDL性質決定的;
2、DELETE TABLE A;
————清空A表,不能釋放A表清空之前佔用內存;
————DELETE是DML語言,執行之後需要手動提交事物,執行之後可以回滾。
————執行DELETE之後再次操作表,速度不會變快,因爲HWM沒有重置,仍需要全表掃描很大的空間;
————當DELETE表,表的所有索引不會被重置,進行查詢操作速度不會變快;
————當DELETE可以按條件刪除,TRUNCATE不可以;
3、DROP TABLE A;
————DROP是DDL語句,隱式COMMIT,不能回滾;
————清除表結構,清除表空間,TRUNCATE和DELETE不會;
————DROP會清除該表所有的約束,觸發器,索引等等;