您好,登錄后才能下訂單哦!
驗(yàn)證堆表(heap table)存儲(chǔ)方式
堆表(heap table)的存儲(chǔ)方式:
Oralce 數(shù)據(jù)庫系統(tǒng)中最普通,最為常用的即為堆表。
堆表的數(shù)據(jù)存儲(chǔ)方式為無序存儲(chǔ),也就是任意的DML操作都可能使得當(dāng)前數(shù)據(jù)塊存在可用的空閑空間。
處于節(jié)省空間的考慮,塊上的可用空閑空間會(huì)被新插入的行填充,而不是按順序填充到最后被使用的塊上。
上述的操作方式導(dǎo)致了數(shù)據(jù)的無序性的產(chǎn)生。
當(dāng)創(chuàng)建索引時(shí),會(huì)根據(jù)指定的列按順序來填充到索引塊,缺省的情況下為升序。
新建或重建索引時(shí),索引列上的順序是有序的,而表上的順序是無序的,也就是存在了差異,即表現(xiàn)為聚簇因子。
驗(yàn)證:
1、創(chuàng)建table
SQL> conn scott/tiger
Connected.
SQL> create table t1
2 (a int,
3 b varchar2(4000) default rpad('*',4000,'*'),
4 c varchar2(3000) default rpad('*',3000,'*')
5 )
6 /
Table created.
SQL> desc t1
Name Null? Type
----------------------------------------- -------- ----------------------------
A NUMBER(38)
B VARCHAR2(4000)
C VARCHAR2(3000)
2、插入數(shù)據(jù)
SQL> insert into t1(a) values (1);
1 rows created;
SQL> insert into t1(a) values (2);
1 rows created;
SQL> insert into t1(a) values (3);
1 rows created;
SQL> select a from t1;
A
----------
1
2
3
3、刪除一行數(shù)據(jù)
SQL> delete from t1 where a=2;
1 row deleted.
SQL> select a from t1;
A
----------
1
3
4、再重新插入一行記錄
SQL> insert into t1(a) values (4);
1 row created.
SQL> select a from t1;
A
----------
1
4
3
從以上可以看出,數(shù)據(jù)插入并不是按順序插入,而是使用了原來被刪除的那條記錄的空間!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。