Oracle中的SQL命令TRUNCATE比DELETE FROM table;
更快,因爲TRUNATE命令首先完全刪除指定的表,然後創建一個具有相同結構的新表(可能需要澄清,以防萬一我可能是錯誤)。由於TRUNCATE是DDL的一部分,因此它在執行之前和執行完成後隱含地發出COMMIT。如果出現這種情況,那麼由TRUNCATE命令刪除的表將永久丟失,並且它在數據字典中是整個結構。在這種情況下,TRUNCATE命令如何能夠首先丟棄表並重新創建相同的結構?Oracle中的TRUNCATE命令如何在刪除表後檢索表的結構?
1
A
回答
5
我以爲truncate(其他的東西)只是重置高水位標記。
看到:http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_10007.htm#SQLRF01707
然而在 http://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:2816964500346433991
很顯然,一個截斷後的數據段的變化。
7
(請注意,我在SQL Anywhere的工程爲Sybase工作,我的回答來自於我如何truncate
實施有知識,但我想它在甲骨文類似的爲好。)
我不相信桌子實際上被丟棄並重新創建;內容簡單地被扔掉。這比delete from <table>
快得多,因爲沒有觸發器需要執行,而不是一次刪除一行(從表和索引),服務器可以簡單地丟棄包含該表的行的所有頁,以及任何索引。
相關問題
- 1. 如何從Oracle架構中刪除表的列表?
- 2. 我如何刪除lua中的嵌套表結構中的表
- 3. 如何撤消TRUNCATE命令
- 4. 如何在其他表中引用的表上應用truncate命令?
- 5. 如何檢索netstat命令的結果
- 6. Oracle表結構
- 7. 如何從Oracle SQL中刪除的表中刪除註釋?
- 8. MySQL命令刪除表中的所有非主索引
- 9. 在VB.NET中檢索UDT表結構
- 10. Hibernate中的級聯刪除:從表中刪除什麼命令?
- 11. Oracle |刪除表
- 12. 如何從Oracle表中檢索最後一天的數據?
- 13. WPF:列表中刪除命令的命令參數
- 14. 如何在For命令中刪除%〜p後面的\?
- 15. 如何在「Ok,Glass」後刪除菜單中的命令
- 16. 在刪除節點後打印結構鏈表的錯誤
- 17. 如何刪除在Firebase中刪除後的表格項目
- 18. ORACLE - 檢索刪除的數據
- 19. 如何刪除架構而不刪除我的架構中存在的表
- 20. 刪除重複的表結構(蟒蛇)
- 21. 如何刪除引號並在python中檢索列表?
- 22. 如何在sqlplus oracle中刪除表中的所有數據
- 23. 如何在oracle中刪除表/視圖中的重複記錄?
- 24. GDB命令索引結構的成員
- 25. 我在Oracle中刪除了一個表,如何從撤消表空間中檢索它?
- 26. 如何在Sqlite中使用任何命令查看我創建的表結構
- 27. oracle命令的結果
- 28. 如何從結構列表中刪除1結構如果匹配變量?
- 29. 如何檢索結構中的值swift
- 30. 如何在Oracle Apex中刪除帶句點/句號的表格?
+1我認爲這位「知名作家」正在彌補! –
數據段確實發生了變化,但僅限於自表創建後修改。新創建的(或截斷的)沒有插入的表(包括立即回滾的表)將不會分配新的數據段。我認爲最好將截斷解釋爲自己分配一個新的數據段。# –