`
pengpeng
  • 浏览: 82584 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

走进Oracle

阅读更多
  聆听了公司DBA团队chenli同事分享的《走进oracle》。受益匪浅。记录下来:

主要讲解了:
   1.基本元素(表,数据块,记录,rowid)
   2.访问堆表 (数据块,rowid,全表扫描,stop机制)
   3.访问B树索引(唯一扫描,范围扫描,快速全扫描索引),以及举例那些性能差的sql为啥没使用到索引。
典型的一个b树索引 4.执行计划 举例如下: 1 问:在索引字段上施加函数,为什么性能差 to_char(gmt_create,’ mmdd’) =‘0101’ 答:因为无法使用索引 正确的写法: gmt_create between to_date('20090101','yyyymmdd') and to_date('20090102','yyyymmdd') 用索引范围扫描 总结:要使用索引条件里的字段必须可以孤立出来(或oracle可以优化出来)。不能潜逃在oracle函数里。 2 问:在索引字段上用全模糊,为什么性能差 member_id like ‘%alibaba%’ 答:因为无法使用索引。 正确的做法:B树索引无法解决这种需求。考虑用其他技术手段代替,比如搜索引擎。 3 问:索引是 (member_id, group_id), 为什么这个性能差 where group_id=89721 答:用了索引快速全扫描 或者 其他低效的扫描方式。 正确的做法:创建以group_id为首列的索引,使用索引范围扫描。 4问:计数为什么有时候count(id)比count(*)慢? 答:count(id)等价于 count(*) where id is not null,如果没有(id)索引,那么会用全表扫描,而count(*)会自动选择最优的索引用索引快速全扫描。 正确的写法:计数统一使用count(*)。 5 问:索引(member_id, subject)这两句性能有差别吗? (A): select subject from offer where member_id=#member_id#; (B): select subject, gmt_create from offer where member_id=#member_id#; 答:两句都用了索引范围扫描,(B)还需要根据索引中查到的ROWID访问表里的记录,当对应的记录数较多时,比(A)的性能差很多。 6 如何优化此sql: SELECT * FROM (SELECT t.*, rownum AS rn FROM (SELECT * FROM blog.blog_article WHERE domain_id = :1 AND draft = 0 ORDER BY domain_id, draft, gmt_create DESC) t WHERE rownum <= :2) WHERE a.rn >= :3 答:在索引内完成过滤/排序/分页,取得一页的ROWID,用它们再去跟原表做join。SELECT t.* FROM (SELECT rid, rn FROM (SELECT ROWID AS rid, rownum AS rn FROM blog.blog_article WHERE domain_id = :1 AND draft = 0 ORDER BY domain_id, draft, gmt_create DESC) WHERE rownum <= :2) a, blog.blog_article t WHERE a.rn >= :3 AND a.rid = t.ROWID 常去这里看看: DBA团队blog,最贴近阿里巴巴业务场景 http://www.alidba.net ITPUB,国内人气最旺最权威的Oracle论坛 http://www.itpub.net/forum-3-1.html Oracle基本概念,经典中的经典 http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/toc.htm
分享到:
评论

相关推荐

    Oracle经典教程1——走进Oracle

    Oracle经典教程1——走进Oracle

    走进Oracle——读《Oracle 9i资料库管理实务讲座》.pdf

    走进Oracle——读《Oracle 9i资料库管理实务讲座》.pdf

    走进Oracle世界(Oracle简介).pdf

    本文对 Oracle 的概念、现状、特性优势及前景进行了简述和阐明,以期零基础初学 者或读者对 Oracle 进行初步的了解和理解,以便进行更进一步的学习。

    炼数成金 课程+教材 Oracle数据库职业直通车-Oracle入门学习教学视频 谭怀远老师.txt

    第1课 轻松带你走进Oracle数据库的世界 第2课 从最简单的SQL语句开始 第3课 Oracle数据库的安装和配置 第4课 Oracle数据库的参数文件,控制文件,数据文件和日志文件 第5课 Oracle体系架构简述 第6课 Oracle...

    Oracle数据库经典学习教程

    走进Oracle 2 1. Oracle简介 3 2. Oracle安装 4 3. Oracle客户端工具 9 4. Oracle服务 16 5. Oracle启动和关闭 17 6. Oracle用户和权限 18 7. 本章总结 21 8. 本章练习 22 SQL数据操作和查询 25 1. SQL简介 26 2. ...

    Oracle经典教程(入门到精通很详细)

    走进Oracle 1. Oracle简介 2. Oracle安装 3. Oracle客户端工具4. Oracle服务 5. Oracle启动和关闭 6. Oracle用户和权限 7. 本章总结8. 本章练习SQL数据操作和查询 1. SQL简介2. Oracle数据类型 3. 创建表和约束 4. ...

    Oracle经典教程(珍藏)

    走进Oracle 1. Oracle简介 2. Oracle安装 3. Oracle客户端工具 4. Oracle服务 5. Oracle启动和关闭 6. Oracle用户和权限 7. 本章总结 8. 本章练习 SQL数据操作和查询 1. SQL简介 2. Oracle数据类型 3. ...

    Oracle PL SQL

    本书共有17章,涵盖的主要内容有:走进Oracle、认识PL/SQL、数据表的基本操作、表中数据的基本操作、数据的基本查询、查询中函数的使用、数据表的高级查询、索引及视图的使用、数据类型、流程控制、游标、存储过程和...

    Oracle经典教程

    走进Oracle SQL数据操作和查询 子查询和常用函数 表空间、数据库对象 PL/SQL程序设计 Oracle应用于.Net平台 数据库导入导出

    oracle视频

    带你走进oracle,体验不同的处理方式,让你更快学会,

    ORACLE速成手册 面向应用

    走进Oracle 1. Oracle简介 2. Oracle安装 3. Oracle客户端工具 4. Oracle服务 5. Oracle启动和关闭 6. Oracle用户和权限 7. 本章总结 8. 本章练习 SQL数据操作和查询 1. SQL简介 2. Oracle数据类型 .........

    Oracle实际操作应用

    第一章 走进Oracle 1 第二章 SQL数据操作和查询 第三章 常用函数、事务和锁 第四章 表空间、数据库对象 第五章 数据库设计 第六章 PL/SQL程序设计 第七章 子程序和程序包 第八章 游标、内置程序包 第九章 ...

    oracle 11gRAC + dg +ogg 实战文档

    手把手教你搭建 oracle 11gRAC + dg +ogg 实战文档,步骤详细,简单易懂,带你一步步走进oracle高可用。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    oracle9i基础教程

    很好的教程。 我就是从它开始走进oracle的世界的。

    Oracle经典教程.pdf

    第一部分:走进Oracle;第二部分:SQL数据操作和查询;第三部分:子查询和常用函数;第四部分:表空间、数据库对象;第五部分:PL/SQL程序设计;第六部分:Oracle应用于.Net平台;第七部分:数据库导入导出;

    Oracle数据库概论

    Oracle学习,第一章,数据库概论,带你走进Oracle的世界···

    oracle经典教程

    oracle经典教程,可读性强,非常适合初学者 整本书分为以下7章: 1、走进oracle 2、SQL数据操作和查询 3、子查询和常用函数 4、表空间、数据库对象 5、PL/SQL程序设计 6、oracle应用与.Net平台 7、数据库导入导出

    数据库教程PPT

    数据库教程PPT,带你走进oracle

    2021 云和恩墨大讲堂PPT汇总(50份).zip

    带你走进PG的世界 MySQL查询优化 Oracle数据库SQL执行计划的取得和解析 11gR2频繁遭遇Checkpoint incompelte 12C_19C统计信息最佳实践 并行不悖 - Oracle数据库的并行执行 抽丝剥茧_一起有关新冠病毒疫情的勒索病毒...

    收获不知Oracle

    第3章神奇,走进逻辑体系世界 84 3.1 长幼有序的逻辑体系 84 3.2 逻辑体系从老余养殖细细说起 85 3.2.1 农场之体系逻辑结构 85 3.2.2 农场之BLOCK漫谈89 3.2.3 农场之区与段 91 3.2.4 农场之表空间的分类 93 3.2.4.1...

Global site tag (gtag.js) - Google Analytics