Oracle中TRUNCATE和Delete區別及TRUNCATE使用說(shuō)明 - 第三只眼 - ITPUB個(gè)人空間 - powered by X-Space
Oracle中TRUNCATE和Delete區別及TRUNCATE使用說(shuō)明TRUNCATE和Delete有以下幾點(diǎn)區別ITPUB個(gè)人空間?jBw0| b2C
ITPUB個(gè)人空間(EL`+p.N$i?X
1、TRUNCATE在各種表上無(wú)論是大的還是小的都非???。如果有ROLLBACK命令Delete將被撤銷(xiāo),而TRUNCATE則不會(huì )被撤銷(xiāo)。ITPUB個(gè)人空間IJ3gCsM
2]M#cDjrBW0 2、TRUNCATE是一個(gè)DDL語(yǔ)言,向其他所有的DDL語(yǔ)言一樣,他將被隱式提交,不能對TRUNCATE使用ROLLBACK命令。ITPUB個(gè)人空間/Fn*nGjd+U4XokI
.U&uvhu@3he4wmQ0 3、TRUNCATE將重新設置高水平線(xiàn)和所有的索引。在對整個(gè)表和索引進(jìn)行完全瀏覽時(shí),經(jīng)過(guò)TRUNCATE操作后的表比Delete操作后的表要快得多。ITPUB個(gè)人空間Y9Krh(Ky
0o&L3Dr(rK:_0 4、TRUNCATE不能觸發(fā)任何Delete觸發(fā)器。
Em-O?}z"NqL0ITPUB個(gè)人空間[8r$y,]nQ*Y,c6o4L{
5、不能授予任何人清空他人的表的權限。
Wk-[?Lf ~0ITPUB個(gè)人空間q3S-l\Z9{W#xwH
6、當表被清空后表和表的索引講重新設置成初始大小,而delete則不能。ITPUB個(gè)人空間LkLKV]A)c
:o1f;z)o,j7E,g_07、不能清空父表。
B:G,g%eX1p4s1~0ITPUB個(gè)人空間'oM$F#La'a2K
TRUNCATE TABLE (schema)table_name Drop(REUSE) STORAGEITPUB個(gè)人空間"g2x%WH.AG[(K
ITPUB個(gè)人空間P?G`qzVz/Kp
在默認是 DropSTORAGE 當使用Drop STORAGE時(shí)將縮短表和表索引,將表收縮到最小范圍,并重新設置NEXT參數。REUSESTORAGE不會(huì )縮短表或者調整NEXT參數
0MQ1Uu[1wb3B0
J2hn#R$S`wu8~0在特殊情況下使用 REUSE STORAGE
ux,f,s{m%H0
+w2[s(R_uT8}0 一個(gè)實(shí)際應用的典型例子:你用sqlldr加載一個(gè)1000萬(wàn)記錄的數據表,但是加載了多一半的時(shí)候你發(fā)現有問(wèn)題,這個(gè)時(shí)候你想清空表重新加載。那么最好 reuse storage,這樣再次加載就不需要再次尋找空閑空間了。ITPUB個(gè)人空間2`)@n6yH2^"[
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。