分类: Oracle学习 |
truncate后insert /*+append*/会利用initial
extent吗?
今天看了Tom的文章,说会利用。不会浪费
但我的理解:truncate会把HWM降到initial extent以上,而insert
append是从HWM以上开始插入数据的,因此会浪费掉initial extent。
到底是怎样呢?
SQL> create table test_extent as
select * from dba_users;
Table created.
SQL> select
file_id,extent_id,blocks
2 from dba_extents where
segment_name = 'TEST_EXTENT';
---------- ---------- ----------
SQL> insert into test_extent select *
from test_extent;
5 rows created.
SQL> /
10 rows created.
SQL> /
20 rows created.
SQL> /
40 rows created.
SQL> /
40960 rows created.
SQL> commit;
Commit complete.
SQL> select
file_id,extent_id,blocks
2 from
dba_extents where segment_name = 'TEST_EXTENT';
---------- ---------- ----------