- 論壇徽章:
- 0
|
在上一篇關(guān)于ora-1652的一點(diǎn)總結(jié)中,有部分內(nèi)容并未給出一個最終的結(jié)論,詳見如下連接: http://www.killdb.com/2011/09/30 ... 80%bb%e7%bb%93.html 在本文中,對上篇文章中的疑問進(jìn)行的詳細(xì)的實(shí)驗(yàn)說明和解釋,實(shí)驗(yàn)過程如下:
SQL> conn roger/roger
Connected.
SQL> create table ht1 as select * from sys.dba_objects where rownum <1000; Table created. SQL> create index idx_ht1 on ht1(object_id) tablespace roger; Index created.
SQL> select dump(object_id) from ht1 where object_id <20 order by object_id; DUMP(OBJECT_ID)
--------------------------
Typ=2 Len=2: 193,3
Typ=2 Len=2: 193,4
Typ=2 Len=2: 193,5
Typ=2 Len=2: 193,6
Typ=2 Len=2: 193,7
Typ=2 Len=2: 193,8
Typ=2 Len=2: 193,9
Typ=2 Len=2: 193,10
Typ=2 Len=2: 193,11
Typ=2 Len=2: 193,12
Typ=2 Len=2: 193,13 DUMP(OBJECT_ID)
--------------------------
Typ=2 Len=2: 193,14
Typ=2 Len=2: 193,15
Typ=2 Len=2: 193,16
Typ=2 Len=2: 193,17
Typ=2 Len=2: 193,18
Typ=2 Len=2: 193,19
Typ=2 Len=2: 193,20 18 rows selected.
SQL> select dump(object_id)
2 from ht1
3 where object_id > 500
4 and object_id < 510
5 order by object_id; DUMP(OBJECT_ID)
----------------------------------------
Typ=2 Len=3: 194,6,2
Typ=2 Len=3: 194,6,3
Typ=2 Len=3: 194,6,4
Typ=2 Len=3: 194,6,5
Typ=2 Len=3: 194,6,6
Typ=2 Len=3: 194,6,7
Typ=2 Len=3: 194,6,8
Typ=2 Len=3: 194,6,9
Typ=2 Len=3: 194,6,10 9 rows selected. SQL>
我們可以發(fā)現(xiàn),該字段object_id有些是2個字節(jié),有些是3個字節(jié),那么我們應(yīng)該以2還是3為準(zhǔn)呢?
我想應(yīng)該以該列的平均長度為準(zhǔn),通過分析該表,得到該列的平均長度。
SQL> analyze table ht1 compute statistics for table for all indexes for all columns; Table analyzed.
SQL> select table_name,COLUMN_NAME,DATA_LENGTH,AVG_COL_LEN,CHAR_LENGTH,CHAR_USED from user_tab_columns
2 where table_name='HT1'; TABLE_NAME COLUMN_NAME DATA_LENGTH AVG_COL_LEN CHAR_LENGTH C
------------- ----------------- ----------- ----------- ----------- -
HT1 OWNER 30 4 30 B
HT1 OBJECT_NAME 128 14 128 B
HT1 SUBOBJECT_NAME 30 1 30 B
HT1 OBJECT_ID 22 3 0
HT1 DATA_OBJECT_ID 22 3 0
HT1 OBJECT_TYPE 19 6 19 B
HT1 CREATED 7 7 0
HT1 LAST_DDL_TIME 7 7 0
HT1 TIMESTAMP 19 19 19 B
HT1 STATUS 7 5 7 B
HT1 TEMPORARY 1 1 1 B
TABLE_NAME COLUMN_NAME DATA_LENGTH AVG_COL_LEN CHAR_LENGTH C
------------- ----------------- ----------- ----------- ----------- -
HT1 GENERATED 1 1 1 B
HT1 SECONDARY 1 1 1 B
13 rows selected. SQL> ---從這里得到object_id平均列長度為3. 下面我們再來看rowid是占據(jù)多數(shù)個字節(jié)。
全文請看原文博客鏈接,如下地址:
http://www.killdb.com/2011/10/02 ... x-entry-header.html |
|