SQL> create user scan identified by scan default tablespace users;

User created.

SQL> grant dba to scan;

Grant succeeded.

create table t1  (id char(10) primary key,a1 char(10),a2 char(10));  

begin
for i in 1 .. 25
loop
insert into t1 values(i,i,'a'||i);
end loop
;
commit;
end; BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SCAN',
tabname => 'T1',
estimate_percent => 100,
method_opt => 'for all columns size repeat',
no_invalidate => FALSE,
degree => 8,
cascade => TRUE);
END;
/ create table t2 (id int primary key,a1 char(10),a2 char(10))organization index; begin
for i in 1 .. 25
loop
insert into t2 values(i,i,'a'||i);
end loop
;
commit;
end; BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SCAN',
tabname => 'T2',
estimate_percent => 100,
method_opt => 'for all columns size repeat',
no_invalidate => FALSE,
degree => 8,
cascade => TRUE);
END;
/ 先分别dump下t1和t2表: t1 heap t2 iot SQL> select TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME, IOT_NAME from user_tables; TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME
------------------------------ ------------------------------ ------------------------------ ------------------------------
T1 USERS
T2 SQL> select object_name,object_id from user_objects; OBJECT_NAME OBJECT_ID
------------------------------ ----------
SYS_C00147516 260450
T2 260451
T1 260449
SYS_IOT_TOP_260451 260452 SQL> select index_name,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,table_type from user_indexes; INDEX_NAME INDEX_TYPE TABLE_OWNER TABLE_NAME TABLE_TYPE
------------------------------ --------------------------- ------------------------------ ------------------------------ -----------
SYS_C00147516 NORMAL SCAN T1 TABLE
SYS_IOT_TOP_260451 IOT - TOP SCAN T2 TABLE 2.将索引dump到trace文件中
SQL> select value from v$diag_info where name='Default Trace File'; VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/ncdb/podinndb/trace/podinndb_ora_28524.trc SQL> alter session set events 'immediate trace name treedump level 260450'; 会话已更改。 ----- begin tree dump
leaf: 0x100008b 16777355 (0: nrow: 25 rrow: 25)
----- end tree dump SQL> select index_name, PREFIX_LENGTH, BLEVEL, LEAF_BLOCKS from user_indexes where index_name='SYS_C00147516'; INDEX_NAME PREFIX_LENGTH BLEVEL LEAF_BLOCKS
------------------------------ ------------- ---------- -----------
SYS_C00147516 0 1 SQL> select dbms_utility.data_block_address_file('16777355') FILE_ID,
dbms_utility.data_block_address_block('16777355') BLOCK_ID
from dual; 2 3 FILE_ID BLOCK_ID
---------- ----------
4 139 SQL> select header_file,header_block from dba_segments where segment_name='SYS_C00147516'; HEADER_FILE HEADER_BLOCK
----------- ------------
4 138 select dbms_utility.data_block_address_file(16777355)fno,
dbms_utility.data_block_address_block(16777355) bkno from dualSQL> 2
3 ; FNO BKNO
---------- ----------
4 139; SQL> alter system dump datafile 4 block 139; row#0[8013] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 00
col 0; len 10; (10): 31 20 20 20 20 20 20 20 20 20 ---表示1
row#1[7842] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 09
col 0; len 10; (10): 31 30 20 20 20 20 20 20 20 20 ---表示10
row#2[7823] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0a
col 0; len 10; (10): 31 31 20 20 20 20 20 20 20 20 --表示11
row#3[7804] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0b
col 0; len 10; (10): 31 32 20 20 20 20 20 20 20 20 --表示12
row#4[7785] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0c
col 0; len 10; (10): 31 33 20 20 20 20 20 20 20 20 --表示13
row#5[7766] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0d
col 0; len 10; (10): 31 34 20 20 20 20 20 20 20 20 --表示14
row#6[7747] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0e
col 0; len 10; (10): 31 35 20 20 20 20 20 20 20 20 --表示15
row#7[7728] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 0f
col 0; len 10; (10): 31 36 20 20 20 20 20 20 20 20 --表示16
row#8[7709] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 10
col 0; len 10; (10): 31 37 20 20 20 20 20 20 20 20 --表示17
row#9[7690] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 11
col 0; len 10; (10): 31 38 20 20 20 20 20 20 20 20 --表示18
row#10[7671] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 12
col 0; len 10; (10): 31 39 20 20 20 20 20 20 20 20 --表示19
row#11[7994] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 01
col 0; len 10; (10): 32 20 20 20 20 20 20 20 20 20 --表示2
row#12[7652] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 13
col 0; len 10; (10): 32 30 20 20 20 20 20 20 20 20 --表示20
row#13[7633] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 14
col 0; len 10; (10): 32 31 20 20 20 20 20 20 20 20 --表示21
row#14[7614] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 15
col 0; len 10; (10): 32 32 20 20 20 20 20 20 20 20 --表示22
row#15[7595] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 16
col 0; len 10; (10): 32 33 20 20 20 20 20 20 20 20 --表示23
row#16[7576] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 17
col 0; len 10; (10): 32 34 20 20 20 20 20 20 20 20 --表示24
row#17[7557] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 18
col 0; len 10; (10): 32 35 20 20 20 20 20 20 20 20 --表示25
row#18[7975] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 02
col 0; len 10; (10): 33 20 20 20 20 20 20 20 20 20 --表示3
row#19[7956] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 03
col 0; len 10; (10): 34 20 20 20 20 20 20 20 20 20 --表示4
row#20[7937] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 04
col 0; len 10; (10): 35 20 20 20 20 20 20 20 20 20 --表示5
row#21[7918] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 05
col 0; len 10; (10): 36 20 20 20 20 20 20 20 20 20 --表示6
row#22[7899] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 06
col 0; len 10; (10): 37 20 20 20 20 20 20 20 20 20 --表示7
row#23[7880] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 07
col 0; len 10; (10): 38 20 20 20 20 20 20 20 20 20 --表示8
row#24[7861] flag: ------, lock: 2, len=19, data:(6): 01 00 00 85 00 08
col 0; len 10; (10): 39 20 20 20 20 20 20 20 20 20 --表示9
----- end of leaf block dump -----
End dump data blocks tsn: 4 file#: 4 minblk 139 maxblk 139 DECLARE
n VARCHAR2 (2000);
BEGIN
DBMS_STATS.convert_raw_value ('35', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
DBMS_STATS.convert_raw_value ('20', n);
DBMS_OUTPUT.put_line (n);
END; 结论 heap表主键只有对应的列 heap 表排序:
SQL> select * from t1 order by t1.id; ID A1 A2
---------- ---------- ----------
1 1 a1
10 10 a10
11 11 a11
12 12 a12
13 13 a13
14 14 a14
15 15 a15
16 16 a16
17 17 a17
18 18 a18
19 19 a19 ID A1 A2
---------- ---------- ----------
2 2 a2
20 20 a20
21 21 a21
22 22 a22
23 23 a23
24 24 a24
25 25 a25
3 3 a3
4 4 a4
5 5 a5
6 6 a6 ID A1 A2
---------- ---------- ----------
7 7 a7
8 8 a8
9 9 a9 25 rows selected. t1表 id列为字符串,排序是按字符串排序 /***创建t3表改为数值型/ create table t3 (id int primary key,a1 char(10),a2 char(10)); begin
for i in 1 .. 25
loop
insert into t3 values(i,i,'a'||i);
end loop
;
commit;
end; BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname => 'SCAN',
tabname => 'T3',
estimate_percent => 100,
method_opt => 'for all columns size repeat',
no_invalidate => FALSE,
degree => 8,
cascade => TRUE);
END;
/ SQL> select TABLE_NAME,TABLESPACE_NAME,CLUSTER_NAME, IOT_NAME from user_tables; TABLE_NAME TABLESPACE_NAME CLUSTER_NAME IOT_NAME
-------------------- ------------------------------ ------------------------------ ------------------------------
T1 USERS
T3 USERS
T2 SQL> select object_name,object_id from user_objects; OBJECT_NAME OBJECT_ID
------------------------------ ----------
SYS_C00147518 260454
T3 260453
SYS_IOT_TOP_260451 260452
T1 260449
T2 260451
SYS_C00147516 260450 6 rows selected. SQL> select index_name,INDEX_TYPE,TABLE_OWNER,TABLE_NAME,table_type from user_indexes; INDEX_NAME INDEX_TYPE TABLE_OWNER TABLE_NAME TABLE_TYPE
------------------------------ --------------------------- ------------------------------ -------------------- -----------
SYS_C00147516 NORMAL SCAN T1 TABLE
SYS_IOT_TOP_260451 IOT - TOP SCAN T2 TABLE
SYS_C00147518 NORMAL SCAN T3 TABLE 2.将索引dump到trace文件中
SQL> select value from v$diag_info where name='Default Trace File'; VALUE
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
/u01/app/oracle/diag/rdbms/ncdb/podinndb/trace/podinndb_ora_29363.trc SQL> alter session set events 'immediate trace name treedump level 260454'; 会话已更改。 ----- begin tree dump
leaf: 0x10000a3 16777379 (0: nrow: 25 rrow: 25)
----- end tree dump SQL> select index_name, PREFIX_LENGTH, BLEVEL, LEAF_BLOCKS from user_indexes where index_name='SYS_C00147518'; INDEX_NAME PREFIX_LENGTH BLEVEL LEAF_BLOCKS
------------------------------ ------------- ---------- -----------
SYS_C00147518 0 1 SQL> select dbms_utility.data_block_address_file('16777379') FILE_ID,
dbms_utility.data_block_address_block('16777379') BLOCK_ID
from dual; 2 3 FILE_ID BLOCK_ID
---------- ----------
4 163 SQL> select header_file,header_block from dba_segments where segment_name='SYS_C00147518'; HEADER_FILE HEADER_BLOCK
----------- ------------
4 162 SQL> select dbms_utility.data_block_address_file(16777379)fno,
dbms_utility.data_block_address_block(16777379) bkno from dual 2 ; FNO BKNO
---------- ----------
4 163 SQL> alter system dump datafile 4 block 163; row#0[8021] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 00
col 0; len 2; (2): c1 02 ---表示1
row#1[8010] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 01
col 0; len 2; (2): c1 03 --表示2
row#2[7999] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 02
col 0; len 2; (2): c1 04 --表示3
row#3[7988] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 03
col 0; len 2; (2): c1 05 --表示4
row#4[7977] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 04
col 0; len 2; (2): c1 06 --表示5
row#5[7966] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 05
col 0; len 2; (2): c1 07
row#6[7955] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 06
col 0; len 2; (2): c1 08
row#7[7944] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 07
col 0; len 2; (2): c1 09
row#8[7933] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 08
col 0; len 2; (2): c1 0a
row#9[7922] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 09
col 0; len 2; (2): c1 0b
row#10[7911] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0a
col 0; len 2; (2): c1 0c
row#11[7900] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0b
col 0; len 2; (2): c1 0d
row#12[7889] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0c
col 0; len 2; (2): c1 0e
row#13[7878] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0d
col 0; len 2; (2): c1 0f
row#14[7867] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0e
col 0; len 2; (2): c1 10
row#15[7856] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 0f
col 0; len 2; (2): c1 11
row#16[7845] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 10
col 0; len 2; (2): c1 12
row#17[7834] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 11
col 0; len 2; (2): c1 13
row#18[7823] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 12
col 0; len 2; (2): c1 14
row#19[7812] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 13
col 0; len 2; (2): c1 15
row#20[7801] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 14
col 0; len 2; (2): c1 16
row#21[7790] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 15
col 0; len 2; (2): c1 17
row#22[7779] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 16
col 0; len 2; (2): c1 18 --表示23
row#23[7768] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 17
col 0; len 2; (2): c1 19 --表示24
row#24[7757] flag: ------, lock: 2, len=11, data:(6): 01 00 00 9d 00 18
col 0; len 2; (2): c1 1a --表示25
----- end of leaf block dump -----
End dump data blocks tsn: 4 file#: 4 minblk 163 maxblk 163 declare
n number;
begin
dbms_stats.convert_raw_value('c102',
n);
dbms_output.put_line(n);
end; SQL> select * from t3 order by t3.id; ID A1 A2
---------- ---------- ----------
1 1 a1
2 2 a2
3 3 a3
4 4 a4
5 5 a5
6 6 a6
7 7 a7
8 8 a8
9 9 a9
10 10 a10
11 11 a11 ID A1 A2
---------- ---------- ----------
12 12 a12
13 13 a13
14 14 a14
15 15 a15
16 16 a16
17 17 a17
18 18 a18
19 19 a19
20 20 a20
21 21 a21
22 22 a22 ID A1 A2
---------- ---------- ----------
23 23 a23
24 24 a24
25 25 a25 25 rows selected. 结论 字符串和数值型 排序方式不同

heap表按字符串和数值型排序规则的更多相关文章

  1. Java:集合,对列表(List)中的数据(整型、字符串、日期等)进行排序(正序、倒序)的方法;字符串按照整型排序的方法

    1. 要求 对List列表中的数据进行排序(正序.倒序),列表中的数据包括:整型(Integer).字符串(String).日期(Date)等.对于字符串,要求允许对它按照整型进行排序. 2. 实现思 ...

  2. ng-model值字符串转数值型(convertToNumber directive)

    <select ng-model="model.id" convert-to-number> <option value="0">Zer ...

  3. sql server 查看表中某一字段的排序规则

    SELECT o.name,o.object_id,c.name,c.column_id,c.collation_name   FROM sys.columns c      JOIN sys.obj ...

  4. SQL:无法解决 equal to 操作的排序规则冲突。

    更改存储过程的时候,在SQL中出现了 “无法解决 equal to 操作的排序规则冲突”错误,网上搜之,发现是表之间元素创建时排序规则不同(一个是collate Chinese_PRC_CI_AI_W ...

  5. SqlServer nvarchar中的中文字符匹配,更改SqlServer实例和数据库排序规则的办法

    我们都知道在SqlServer中的nvarchar类型可以完美的存储诸如中文这种unicode字符,但是我们会发现有时候查询语句去查询nvarchar列的时候查不出来. 为什么nvarchar类型有时 ...

  6. 数据库排序规则的冲突(理解collate Chinese_PRC_CI_AS)

    之前碰到了数据库排序规则冲突问题,即百度或者 Google 的老话题: “ 无法解决 equal to 操作中‘ sql_latin1_general_cp1_ci_as ’和‘ chinese_pr ...

  7. 全库修改SQL Server现有排序规则

    近日,在项目Debug过程中发现了SQL Server排序规则冲突的问题. 由于原数据库是从英文环境的SQL中生成的,其排序规则为“SQL_Latin1_General_CP1_CI_AS”,备份到本 ...

  8. 数据库字符集与排序规则(Character Set And Collation)

    数据库需要适应各种语言和字符就需要支持不同的字符集(Character Set),每种字符集也有各自的排序规则(Collation). (注意:Collation原意为校对,校勘,但是根据实际使用场景 ...

  9. 2021-2-18:请你说说MySQL的字符集与排序规则对开发有哪些影响?

    任何计算机存储数据,都需要字符集,因为计算机存储的数据其实都是二进制编码,将一个个字符,映射到对应的二进制编码的这个映射就是字符编码(字符集).这些字符如何排序呢?决定字符排序的规则就是排序规则. 查 ...

随机推荐

  1. at91sam9x5 linux 4.1.0下dts驱动编程模型

    测试环境:  CPU: AT91SAM9X35      Linux: Atmel提供的linux-at91-linux4sam_5.3 (Linux-4.1.0) 转载请注明: 凌云物网智科嵌入式实 ...

  2. C# 分页

    #region 分页 /// <summary> /// 分页 /// </summary> /// <param name="page">当前 ...

  3. iOS 身份证最后一位是X,输入17位后自动补全X(转)

    非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - ...

  4. html5与js关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的value点击全选状态onclick="select();"。做购物车页面时会要用到。

    关于input[type='text']文本框value改变触发事件一些属性的区别oninput,onpropertychange,onchange和文本框的点击全选状态onclick="s ...

  5. [学习笔记]设计模式之Command

    为方便读者,本文已添加至索引: 设计模式 学习笔记索引 写在前面 在上篇Chain of Responsibility(职责链)模式笔记中,我们学习了一种行为型设计模式.今天,我们继续这一主题,来学习 ...

  6. html5 拖拽的简要介绍

    1,首先,你要告诉计算机那个元素可以拖动,或者是一张图,或者是一个盒子,在标签里面加上 draggable="true"  2,然后,监听该元素被拖动的函数 ondragstart ...

  7. sublime 正则搜索日语字符

    sublime 正则搜索日语字符 [\x{3041}-\x{3096}\x{30A0}-\x{30FF}\x{3400}-\x{4DB5}\x{4E00}-\x{9FCB}\x{F900}-\x{FA ...

  8. DateTimePicker时间控件:

    DateTimePicker时间控件: http://xdsoft.net/jqplugins/datetimepicker/ 可以参考文档设置各种属性,格式. 用法: 首先下载datetimepic ...

  9. 【实习记】2014-08-15文档太少看着源码用cgicc+stl库之模板谓词函数对象

        总结1: 今天找到了昨天scanf的问题答案,scanf与printf一样的神奇而复杂,稍不留神,就会被坑.scanf函数在读入非空白符分割的多个字符串的解决方法是这个:/* 以 | 分割 * ...

  10. 动画特效的原生、jQ和CSS3方法

    最近一直在看运动的JS特效,主要看的是原生写法,太麻烦了,最终看到写了个运动的方法,后面可以直接引用,然后发现这个方法和jQ其实差不多了,代码分别如下: 基本的HMTL和CSS <!DOCTYP ...