物理读的不理解

[复制链接]
查看11 | 回复6 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
一张表,分析后,看到有4864个数据块
SQL> select BLOCKS from user_segments where segment_name='TEST';
BLOCKS
----------
4864
然后,重启数据库
set autot trace
SELECT /*+ FULL(TEST) */* FROM TEST;
----------------------------------------------------------

1recursive calls

0db block gets
179483consistent gets
4717physical reads
看到只读取了 4717个数据块
这个是怎么回事呢?

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
我觉得是有多块读,而且你这里有recursive calls,里面还包括了系统表的读取。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
有些块中存储的其它信息,并不是实际的数据。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
newkid 发表于 2013-2-20 23:57
我觉得是有多块读,而且你这里有recursive calls,里面还包括了系统表的读取。

这个和多块读单块读没啥关系吧?只是读取的块的数目
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
LuiseDalian 发表于 2013-2-21 08:11
有些块中存储的其它信息,并不是实际的数据。

什么其它信息?
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
earth2mars 发表于 2013-2-21 08:19
什么其它信息?

比如存储时,块之间的链接信息,有的数据是分多个块来存储的。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
LuiseDalian 发表于 2013-2-21 08:20
比如存储时,块之间的链接信息,有的数据是分多个块来存储的。

你的解释,除非是有那么一些单独的块仅仅保存你说的“其它数据”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行