[20191209]降序索引疑问2.txt --//上午写的http://blog.itpub.net/267265/viewspace-2667573/=>[20191209]降序索引疑问.txt --//还有另外的疑问,就是降序索引字段类型的长度的问题.或者讲我以前没注意这个细节. --//通过例子说明: 1.环境: SCOTT@book> @ ver1 PORT_STRING VERSION BANNER ------------------------------ -------------- -------------------------------------------------------------------------------- x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production SCOTT@book> create table t (id number(10),vc varchar2(10)); Table created. SCOTT@book> create index if_t_id on t(id desc); Index created. SCOTT@book> create index if_t_vc on t(vc desc); Index created. SCOTT@book> select column_name,data_type,data_length,data_precision,data_scale from DBA_TAB_COLUMNS where owner=user and table_name='T'; COLUMN_NAME DATA_TYPE DATA_LENGTH DATA_PRECISION DATA_SCALE -------------------- ---------- ----------- -------------- ---------- ID NUMBER 22 10 0 VC VARCHAR2 10 SCOTT@book> SELECT * FROM DBA_IND_COLUMNS WHERE TABLE_OWNER = USER AND TABLE_NAME='T'; INDEX_OWNER INDEX_NAME TABLE_OWNER TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESC ----------- ---------- ----------- ---------- ------------ --------------- ------------- ----------- ---- SCOTT IF_T_ID SCOTT T SYS_NC00003$ 1 34 0 DESC SCOTT IF_T_VC SCOTT T SYS_NC00004$ 1 16 0 DESC --//ID 降序后COLUMN_LENGTH=34. --//vc 降序后COLUMN_LENGTH=16. --//降序索引的字段长度应该比原来的大,因为键值后面要补0xFF(排序的需要).实际上特殊编码如下: --//链接:http://blog.itpub.net/267265/viewspace-2656690/ ascii码 编码 --------------------------------------------- 0x00 FEFE 0x0000 FEFD 0x0001 FEFC 0x00NN(0xNN>=0x02) FEFB(注:指前面0x00编码,再次看到这里有点晕) 0x01 FEFA 0x0100 FEF9 0x0101 FEF8 0x01NN(0xNN>=0x02) FEF7(注:指前面0x01编码) --//理论讲会出现1个字节编码占用2个字节编码的情况.而oracle 降序后字段长度并不是2*原来长度+1. --//自己看上面的编码就很容易仅仅4种编码1个字节编码占用2个字节编码.(0x00,0x00NN,0x01,0x01NN) --//但是不会出现连续2个字节编码占用4个字节编码的情况,最多的可能是2个字节编码占用3个字节编码的情况. --//这样就很容易得出降序后字段长度是 1.5*原来长度+1. SCOTT@book> alter table t add (vcx varchar2(9)); Table altered. SCOTT@book> create index if_t_vcx on t(vcx desc); Index created. SCOTT@book> SELECT * FROM DBA_IND_COLUMNS WHERE TABLE_OWNER = USER AND TABLE_NAME='T'; INDEX_OWNER INDEX_NAME TABLE_OWNER TABLE_NAME COLUMN_NAME COLUMN_POSITION COLUMN_LENGTH CHAR_LENGTH DESC ----------- ---------- ----------- ---------- ------------ --------------- ------------- ----------- ---- SCOTT IF_T_ID SCOTT T SYS_NC00003$ 1 34 0 DESC SCOTT IF_T_VC SCOTT T SYS_NC00004$ 1 16 0 DESC SCOTT IF_T_VCX SCOTT T SYS_NC00006$ 1 15 0 DESC --//9*1.5+1 = 14.5 按大的计算等于15.
[20191209]降序索引疑问2.txt
来源:这里教程网
时间:2026-03-03 14:41:31
作者:
编辑推荐:
- [20191209]降序索引疑问2.txt03-03
- ibtis # 和 ¥ 区别03-03
- RMAN备份方案实施03-03
- [20191210]降序索引疑问3.txt03-03
- 2020年消防工程师报名条件发生变化?03-03
- 等保2.0正式实施,阿里云发布全国首个《阿里公共云用户等保2.0合规能力白皮书》03-03
- 阿里云小程序营收3步曲:一年发展3家加盟+2家直营03-03
- ORACLE中的查询转换03-03
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 等保2.0正式实施,阿里云发布全国首个《阿里公共云用户等保2.0合规能力白皮书》
- 阿里云小程序营收3步曲:一年发展3家加盟+2家直营
阿里云小程序营收3步曲:一年发展3家加盟+2家直营
26-03-03 - 小米手机用户要知道的手机技巧,能大大提高使用体验,米粉都知道
小米手机用户要知道的手机技巧,能大大提高使用体验,米粉都知道
26-03-03 - 周末修裤子-生产遭遇ORA-00600 [kokasgi1]的恢复过程
周末修裤子-生产遭遇ORA-00600 [kokasgi1]的恢复过程
26-03-03 - 接入支付宝小程序能力,人人租机实现从 0-100 增长
接入支付宝小程序能力,人人租机实现从 0-100 增长
26-03-03 - BEGIN SYS.KUPW$WORKER.MAIN('SYS_EXPORT_SCHEMA_02', 'SYS'); END;
- 手机提示更新怎么办?要慎重对待,看是否可以升级
手机提示更新怎么办?要慎重对待,看是否可以升级
26-03-03 - db file sequential read等待事件
db file sequential read等待事件
26-03-03 - ORA-31693 & ORA-29913 & ORA-29401
ORA-31693 & ORA-29913 & ORA-29401
26-03-03 - windows7 安装与卸载 oracle 11G
windows7 安装与卸载 oracle 11G
26-03-03
