数据库设计外文翻译
《数据库设计外文翻译》由会员分享,可在线阅读,更多相关《数据库设计外文翻译(13页珍藏版)》请在毕设资料网上搜索。
1、湖北大学本科毕业论文(设计)外文翻译 外文翻译: 索 引 原文来源 : Thomas Kyte Expert Oracle Database Architecture 2nd Edition 译文正文 : 什么情况下使用 B*树索引 ? 我并不盲目地相信“法则” (任何法则都有 例外 ), 对于什么时候该用 B*索引,我没有经验可以告诉你。为了证明为什么这个方面我无法提供 任何经验, 下面给出两种等效作法 : 使用 B*树索引,如果你想通过索引的方式去获得表中所占比例很小的那些行。 使用 B *树索引,如果你要处理的表和索引许多可以代替表中使用的行 。 这些规则似乎提供相互矛盾的意见,但在现实
2、中,他们不 是这样的 ,他们只是涉及两个极为不同的情况。有两种方式使用上述意见给予索引 : 作为获取表中某些行的手段。你将读取索引去获得表中的某一行。在这里你想获得表中所占比例很小的行。 作为获取查询结果的手段。 这个索引包含足够信息来回复整个查询 ,我们将不用去查询全表。 这个索引将作为该表的一个 瘦 版本。 还有其他方式 例如,我们使用索引去检索表的所有行,包括那些没有建索引的列。这似乎违背了刚提出的两个规则。这种方式获得将是一个真正的交互式 应用 程序。 该应用中,其中你 将获取 其中的某些行, 并展示它们,等等。你想获取的是针对初始响应时间的查询优化,而不是针对整个查询吞吐量的。 在第
3、一种情况(也就是你想通过索引获得表中一小部分的行)预示着如果你有一个表 T(使用与早些时候使用过的相一致的表 T) ,然后你获得一个像这样查询的执行计划: ops$tkyte%ORA11GR2 set autotrace traceonly explain ops$tkyte%ORA11GR2 select owner, status 2 from t 3 where owner = USER; Execution Plan - Plan hash value: 1049179052 - | Id | Operation | Name | Rows | Bytes | - | 0 | SELE
4、CT STATEMENT | | 2120 | 23320 | | 1 | TABLE ACCESS BY INDEX ROWID |T | 2120 | 23320 | | *2 | INDEX RANGE SCAN | DESC_T_IDX | 8 | | - Predicate Information (identified by operation id): - 2 - access(SYS_OP_DESCEND(OWNER)=SYS_OP_DESCEND(USER!) filter(SYS_OP_UNDESCEND(SYS_OP_DESCEND(OWNER)=USER!) 你应该访问
5、到该表的一小部分。这个问题在这里看是 INDEX (RANGE SCAN) 紧跟在湖北大学本科毕业论文(设计)外文翻译 TABLE ACCESS BY INDEX ROWID 之后。这也意味着 Oracle 先读取索引,然后获取索引项。该索引项将执行一个数据库块读(逻辑或者物理的 I/O)去获取行数据。如果你 想通过索引去访问数据表 T 中的大部分数据,这不是最高效的方式 (我们将很快定义什么是大部分的数据) 。 第二种情况,(也就是你想通过索引去代替表),你将通过索引去处理 100%(事实上可以是任何比例)的行。也许你想通过索引索引去获得一个缩小版的表。接下来的查询证明了这种方式: ops$
6、tkyte%ORA11GR2 select count(*) 2 from t 3 where owner = user; Execution Plan - Plan hash value: 293504097 - |Id | Operation. | Name | Rows | Bytes .| Cost (%CPU)| Time | - | 0 | SELECT STATEMENT | | 1 | 6 | 17 (0) | 00:00:01 | | 1 | SORT AGGREGAT E | | 1 | 6 | . | .| | * 2 | INDEX RANGE SCAN | T_IDX
7、 | 2 120 | 12720 | 17 (0) | 00: 00: 01 | - Predicate Information (identified by operation id): - 2 - access(OWNER=USER!) 这里 ,仅仅是使用索引去作为查询的返回集 -现在再也不在乎我们 只通过索引的方式, 想访问多少比例的 行。从执行计划中可以看到,查询语句从未访问过表,仅仅扫描 索引结构本身。 理解两种概念的区别很重要。当 执行 TABLE ACCESS BY ROWID 操作 时,我们必须确保仅访问表中一小部分的块,也就相当于仅访问一小部分的行或者是尽量块地获取第一的数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 外文 翻译
