
oracle性能优化
踏雪|无痕
这个作者很懒,什么都没留下…
展开
-
oracle 软解析与硬解析
(1)sql解析解析分为软解析与硬解析。SQL语句有dml和ddl之分,ddl执行硬解析,dml若在share pool中存在且可被共享,执行软解析。 软解析无需选择与生成执行计划,减小开销,实际应该尽量避免使用绑定变量硬解析。 (2)解析步骤1.语法判断判断sql语句是否拼写错误2.语义判断判断对象是否存在,用户对对象是否有权限原创 2015-09-11 10:14:33 · 600 阅读 · 0 评论 -
oracle 绑定变量
绑定变量的本质是将硬解析变成软解析,减少sql解析时的资源消耗及latch争用。绑定变量将一个变量代替常量,使oracle在对sql做hash运算时得到同一个值。e.g select * from user_tables where table_name='wuhen';使用绑定变量:select * from user_tables where table_name=:i原创 2015-09-11 16:24:05 · 725 阅读 · 0 评论 -
oracle 索引概述
一. 概念(1) 类似书的目录结构,可以提高数据检索的速度(2) 索引直接指向包含所查询值的行的位置,减少磁盘I/O(3) 索引与表在物理上独立,Oracle 自动使用并维护索引,插入、删除、更新表后,自动更新索引(4) 建立索引时,要考虑好索引的存储开销与性能上的获益之间的比重,不要盲目建立索引二.分类1.唯一索引当建立Primary Key(原创 2015-09-15 17:27:04 · 480 阅读 · 0 评论 -
in 和exists
in 和existsin是把外表和内表作hash 连接,而exists 是对外表作loop 循环,每次loop 循环再对内表进行查询。如果查询的两个表大小相当,那么用in 和exists 差别不大。如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in:e.g新建测试表create table t1 as se原创 2015-10-20 16:02:32 · 378 阅读 · 0 评论 -
RBO上的驱动表选择
有两个表 cceu,ac01,现在ac01在aac001,acc002上有唯一索引,cceu在aac001上有普通索引,在BCE176有普通索引。两表在其余列上均无索引1.只有表连接的时候,from顺序对执行计划有影响,选择from最右边表为驱动表select /*+rule*/ * from AC01 b,CCEU a where a.AAC001=b.AAC001执原创 2015-07-31 10:53:06 · 338 阅读 · 0 评论 -
oracle 统计信息
/*环境:oracle 11.2 for windows*/统计信息描述了数据库及其对象的具体信息,查询优化器根据这些信息为sql语句选择最佳的执行计划,若统计信息不准确,可能导致错误的执行计划,此适用于cbo优化器,rbo不使用统计信息。统计信息包括以下内容 表信息Number of rows --行数Number of原创 2015-09-24 13:45:06 · 396 阅读 · 0 评论