您好,登錄后才能下訂單哦!
驗證堆表(heap table)存儲方式
堆表(heap table)的存儲方式:
Oralce 數據庫系統中最普通,最為常用的即為堆表。
堆表的數據存儲方式為無序存儲,也就是任意的DML操作都可能使得當前數據塊存在可用的空閑空間。
處于節省空間的考慮,塊上的可用空閑空間會被新插入的行填充,而不是按順序填充到最后被使用的塊上。
上述的操作方式導致了數據的無序性的產生。
當創建索引時,會根據指定的列按順序來填充到索引塊,缺省的情況下為升序。
新建或重建索引時,索引列上的順序是有序的,而表上的順序是無序的,也就是存在了差異,即表現為聚簇因子。
驗證:
1、創建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、插入數據
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、刪除一行數據
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
從以上可以看出,數據插入并不是按順序插入,而是使用了原來被刪除的那條記錄的空間!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。