`
pengpeng
  • 浏览: 84152 次
  • 性别: 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是一种基于对象的关系型数据库管理系统,它由美国甲骨文公司开发并维护。Oracle数据库系统因其高度可靠性和强大的数据处理能力而闻名,广泛应用于各种...

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

    Oracle Database,作为全球最受欢迎的关系数据库管理系统,由甲骨文公司开发,具有卓越的可移植性、可操作性、功能强大、高可靠性、性能优异、并发处理能力强、高可用性、稳定性好以及吞吐量大等显著特点。...

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

    《Oracle 9i资料库管理实务讲座》是一本专为Oracle初学者和使用经验不足的用户设计的指南书籍。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学习资料 .zip

    总的来说,"Oracle学习资料"会带你逐步走进Oracle的世界,从基本概念到高级应用,从数据库管理到性能优化,全面掌握Oracle数据库的使用和管理。通过深入学习,你可以成为一名熟练的Oracle DBA,为企业数据管理提供强...

    Oracle入门学习资料精华

    总之,“Oracle入门学习资料精华”是一套全面的学习资源,它将带你逐步走进Oracle的世界,从基础概念到高级技术,从理论知识到实践操作,帮助你成为一名熟练的Oracle数据库管理员或开发者。通过深入学习和实践,你将...

    oracle11g初学者指南

    总之,《Oracle Database 11g:初学者指南》这本书将带你逐步走进Oracle的世界,通过学习和实践,你将能够掌握Oracle 11g的基本操作和管理技巧,为进一步深入学习和应用打下坚实的基础。在探索过程中,不断实践和...

    oracle数据库实例视频教程01

    总的来说,"Oracle数据库实例视频教程01"将带你走进Oracle的世界,通过实际操作让你掌握Oracle数据库的基础知识和操作技巧。随着教程的深入,你将能够逐步建立起对Oracle数据库的全面认识,并具备处理日常数据库任务...

    Oracle入门Oracle入门

    本教程将带你逐步走进Oracle的世界,开启数据库管理的新篇章。 1. **Oracle概述** Oracle数据库系统是一个全面的、集成的、开放的、基于网络的数据库解决方案,它提供了一个统一的平台,用于管理和整合各种数据源...

    MLDN最经典的ORACLE笔记

    《MLDN最经典的ORACLE笔记》是李兴华老师倾力打造的一份全面而深入的Oracle学习资源,专为...总的来说,这份笔记是一份宝贵的Oracle学习资源,它将带你逐步走进Oracle的世界,领略数据库技术的魅力,提升你的专业技能。

    oracle-OCP教程中文版

    这些PDF教程将引导你逐步走进Oracle DBA的世界,从基础知识到高级技术,全面提升你的数据库管理能力。通过深入学习并实践,你将有资格参加Oracle OCP认证考试,从而成为专业的Oracle数据库管理员。

    Oracle入门

    这篇学习笔记将带你逐步走进Oracle的世界,了解其基本概念、安装配置、SQL语言以及数据库管理。 首先,Oracle数据库是甲骨文公司(Oracle Corporation)开发的关系型数据库系统,它支持多种操作系统平台,包括...

    Oracle PL SQL

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

    Oracle.9i中文版基础教程

    总之,Oracle.9i中文版基础教程将引导你逐步走进Oracle的世界,无论你是希望成为DBA还是需要使用Oracle处理数据,这都是一个理想的起点。通过深入学习和实践,你将能够熟练地管理和利用Oracle数据库的强大功能。

    剑破冰山__Oracle开发艺术

    这本书通过深入浅出的方式,引领读者走进Oracle的世界,提升在数据库设计、管理、优化以及应用开发等方面的能力。 首先,Oracle数据库的基础架构是理解Oracle开发的关键。书中会详细介绍Oracle的数据存储模型,包括...

    oracle_note.rar_ORACLE 入门_oracle_oracle 笔记

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,尤其在企业级应用中占据重要地位。这份"Oracle_note.rar"压缩包包含的...这本学习笔记将引导初学者逐步走进Oracle的世界,探索这个强大数据库系统的奥秘。

    Oracle 9I 入门.rar 教程

    总的来说,“Oracle 9I入门”教程将带你逐步走进Oracle的世界,从基础操作到高级特性,让你能够熟练地管理和维护Oracle数据库。无论是对数据库管理员还是开发人员来说,掌握Oracle 9I都是职业生涯中不可或缺的一环。...

Global site tag (gtag.js) - Google Analytics