整理出一些疑问,请大家帮忙看看,谢谢!

[复制链接]
查看11 | 回复9 | 2007-5-10 01:02:02 | 显示全部楼层 |阅读模式
1、一个索引到底有多大?table access by rowid的时候一般是一行记录就一个IO吧。索引的大小是否
就是rowid的大小加索引列的字节大小然后乘以总的行数。有多少行就是有多少个索引条目?索引的条目也是储存在索引的BLOCK中,这个BLOCK也和普通的BLOCK一样吧,比如8K就是8K吧,一个ROWID是8个字节吗?
2、访问索引也是访问索引块吧,也是块为单位吧?
3、怎么做一个实验,证明出物化视图在聚合查询上会更高效
4、索引全扫描一般是什么时候会使用
5、索引一般是高度平衡的,查询一个值,一般是1-3个IO,或者说高度是1-3
那这个IO是个什么概念?ORACLE读取一个块是一个IO吗?
6、优化语句有一定的步骤吗
以我的经验,我是这样来处理的
6.1、看跑的语句表和索引是否有分析;
6.2、是看谓词是否有索引能提供ORACLE选择,分区表是否有利用到分区。
6.3、语句是否可以优化,比如把各个结果集经过过滤再合并而不是大合并再一起放后面过滤。
比如用分析函数来替代聚合脚本。
6.4、如果还慢是否考虑alter table move来减少高水平,重建索引来减少碎块,找到行清除和行连接的情况
并处理一下。
6.5、还慢就考虑修改应用,重写脚本,重新
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
你问的我一个都不会,不过帮你顶起来
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
提问得非常有质量了,学习。
6.看高速缓冲命中率
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
I try:
1、一个索引到底有多大?table access by rowid的时候一般是一行记录就一个IO吧。索引的大小是否
就是rowid的大小加索引列的字节大小然后乘以总的行数。有多少行就是有多少个索引条目?索引的条目也是储存在索引的BLOCK中,这个BLOCK也和普通的BLOCK一样吧,比如8K就是8K吧,一个ROWID是8个字节吗?
取决于index key值得大小;是,如果有行链接,也可能不止一个io.bitmap index一个索引项对应多行。一样。
2、访问索引也是访问索引块吧,也是块为单位吧?
是,block 是oracle io的最小单位
3、怎么做一个实验,证明出物化视图在聚合查询上会更高效
作两个查询,分别使用和不使用物化视图,看执行结果。
4、索引全扫描一般是什么时候会使用
count(*),full fast index scan,因为每个block包含了更多了row,索引比FTS要快。
5、索引一般是高度平衡的,查询一个值,一般是1-3个IO,或者说高度是1-3
那这个IO是个什么概念?ORACLE读取一个块是一个IO吗?
取决于read 的方式sequential read 每个i/o 一个块,scatter read每个I/o 大致等于参数db_file_multiblock_read_count定义的块数(同时受os的io大小影响).
6、优化语句有一定的步骤吗
以我的经验,我是这样来处理的
6.1、看跑的语句表和索引是否有分析;
6.2、是看谓词是否有索引能提供ORACLE选择,分区表是否有利用到分区。--不绝对,看执行结果。
6.3、语句是否可以优化,比如把各个结果集经过过滤再合并而不是大合并再一起放后面过滤。
比如用分析函数来替代聚合脚本。--不绝对,看执行结果。
6.4、如果还慢是否考虑alter table move来减少高水平,重建索引来减少碎块,找到行清除和行连接的情况
并处理一下.--sure.....
最重要的,看执行结果。
6.5、还慢就考虑修改应用,重写脚本,重新
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
1、一个索引到底有多大?table access by rowid的时候一般是一行记录就一个IO吧。索引的大小是否
就是rowid的大小加索引列的字节大小然后乘以总的行数。有多少行就是有多少个索引条目?索引的条目也是储存在索引的BLOCK中,这个BLOCK也和普通的BLOCK一样吧,比如8K就是8K吧,一个ROWID是8个字节吗?
索引的大小可以查dba_segments,oracle的块是访问的最小单元,table access by rowid,这时候访问一个块就是一个io
索引的大小应该是大于rowid的大小加索引列的字节大小然后乘以总的行数,因为还有一些其它的开销
索引的rowid,普通的索引是6bytes,分区表的全局分区索引是10bytes
2、访问索引也是访问索引块吧,也是块为单位吧?
是的,一般是先通过访问索引得到rowid,然后通过rowid得到行,有时候select的东西都在索引中,那么就不用在访问表了
3、怎么做一个实验,证明出物化视图在聚合查询上会更高效
这个很简单吧,人家保存的是计算后的结果,行的总数是远小于原来的表
4、索引全扫描一般是什么时候会使用
a.有一个非空的索引
b.查询的东西都在索引中
5、索引一般是高度平衡的,查询一个值,一般是1-3个IO,或者说高度是1-3
那这个IO是个什么概念?ORACLE读取一个块是一个IO吗?
索引一般是高度平衡主要指,访问索引的叶子的io一般是一样的
io就是访问硬盘(或者file buffer和存储buffer)的次数,访问索引或者通过索引得到的rowid访问表都是单块
读取一个块是否是一个io要情况的,这个不好说,要分情况讨论,比如全表扫描和快速全索引扫描,可以是多块读,一次io可以读取多个块
6、优化语句有一定的步骤吗
以我的经验,我是这样来处理的
6.1、看跑的语句表和索引是否有分析;
6.2、是看谓词是否有索引能提供ORACLE选择,分区表是否有利用到分区。
6.3、语句是否可以优化,比如把各个结果集经过过滤再合并而不是大合并再一起放后面过滤。
比如用分析函数来替代聚合脚本。
6.4、如果还慢是否考虑alter table move来减少高水平,重建索引来减少碎块,找到行清除和行连接的情况
并处理一下。
6.5、还慢就考虑修改应用,重写脚本,重新
这个步骤可以去看看performance tuning
[ 本帖最后由 棉花糖ONE 于 2008-1-25 09:05 编辑 ]
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
收获不小。好帖子!
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
好,这个东西在书上很难总结出来
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
原帖由 棉花糖ONE 于 2008-1-25 09:02 发表
1、一个索引到底有多大?table access by rowid的时候一般是一行记录就一个IO吧。索引的大小是否
就是rowid的大小加索引列的字节大小然后乘以总的行数。有多少行就是有多少个索引条目?索引的条目也是储存在索引的BLOCK中,这个BLOCK也和普通的BLOCK一样吧,比如8K就是8K吧,一个ROWID是8个字节吗?
索引的大小可以查dba_segments,oracle的块是访问的最小单元,table access by rowid,这时候访问一个块就是一个io
索引的大小应该是大于rowid的大小加索引列的字节大小然后乘以总的行数,因为还有一些其它的开销
索引的rowid,普通的索引是6bytes,分区表的全局分区索引是10bytes
2、访问索引也是访问索引块吧,也是块为单位吧?
是的,一般是先通过访问索引得到rowid,然后通过rowid得到行,有时候select的东西都在索引中,那么就不用在访问表了
3、怎么做一个实验,证明出物化视图在聚合查询上会更高效
这个很简单吧,人家保存的是计算后的结果,行的总数是远小于原来的表
4、索引全扫描一般是什么时候会使用
a.有一个非空的索引
b.查询的东西都在索引中
5、索引一般是高度平衡的,查询一个值,一般是1-3个IO,或者说高度是1-3
那这个IO是个什么概念?ORACLE读取一个块是一个IO吗?
索引一般是高度平衡主要指,访问索引的叶子的io一般是一样的
io就是访问硬盘(或者file buffer和存储buffer)的次数,访问索引或者通过索引得到的rowid访问表都是单块
读取一个块是否是一个io要情况的,这个不好说,要分情况讨论,比如全表扫描和快速全索引扫描,可以是多块读,一次io可以读取多个块
6、优化语句有一定的步骤吗
以我的经验,我是这样来处理的
6.1、看跑的语句表和索引是否有分析;
6.2、是看谓词是否有索引能提供ORACLE选择,分区表是否有利用到分区。
6.3、语句是否可以优化,比如把各个结果集经过过滤再合并而不是大合并再一起放后面过滤。
比如用分析函数来替代聚合脚本。
6.4、如果还慢是否考虑alter table move来减少高水平,重建索引来减少碎块,找到行清除和行连接的情况
并处理一下。
6.5、还慢就考虑修改应用,重写脚本,重新
这个步骤可以去看看performance tuning

第三个有问题,物化视图有可能和原有视图的结果集行数一致,但大多情况下,列数较原始表少
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
不错的帖子
回复

使用道具 举报

千问 | 2007-5-10 01:02:02 | 显示全部楼层
要是无法减少行源的数量,我觉得物化视图的意义没多大
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行