oracle 性能优化
mysql-龙召
不管怎么样总要留下点什么,就在这里,我的足迹
展开
-
oracle nologging什么场景才能减少redo日志的产生
先说一下,经过自己的测试,发现oracle为了满足recover的要求,nologging实际上在很少能够起作用,网上也有很多这方面的资料和测试,本文为亲身测试,发现在自己需要的场景中nologging完全失效,特做记录,并到官网上查询了一下什么操作在指定nologging的属性下会较少redo的产生。表tlog 表tnolog 两个表的定义create table tlo原创 2013-12-05 14:53:00 · 2095 阅读 · 0 评论 -
oracle如何查看sql的真实执行计划
知识普及:1 平常我们用explan plan for,set autotrace,utlxplan等方式查看执行计划都是optimizer模拟生成的执行计划,并不完全符合oracle内部对sql语句的执行路径。2 v$sqlarea中放置的父游标,放置sql的sql_id和address3 v$sql中对应v$sqlarea中的sql的子游标,address和child_number原创 2014-01-07 15:25:22 · 1718 阅读 · 0 评论 -
oracle hash join和nested loop下的驱动表相关测试
Oracle 驱动表Oracle驱动表也叫做外部表,也叫外层表,是在多表关联查询中首先遍历的表,驱动表的每一行都要到另一个表中寻找相应的记录,然后计算返回最终数据。驱动表的概念只在nested loops和hash join时存在。原则:1. 驱动表一般是小表,但不绝对,看下边2. 驱动表一般是通过where条件筛选后剩余行数较少的表。3.原创 2014-01-13 15:44:49 · 1487 阅读 · 0 评论 -
sql 中in、exists在驱动表选择上的执行效率测试分析
都说exits快,怎么快?哪快?为啥快?1 环境准备环境为oracle 12c db1.只查询需要的列,不用*2.IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况 create table a as select * from all_objects;insert into a select * from a;///commit;原创 2014-01-22 17:01:40 · 1450 阅读 · 0 评论 -
oracle sql中涉及is null时如何优化(索引创建和直方图)
适用场景试想下面的sqlSelect*fromBD_INVMANDOC_bak t where t.negallowedis nullor t.negallowed='N'如果negallowed列只有两个值:Y和N,并且存在NULL那么我们在negallowed列创建一个索引,这个语句仍然不能走索引,原因为索引中不存储null值。BD_INVMAN原创 2014-01-15 13:59:42 · 2333 阅读 · 0 评论 -
oracle 硬解析执行步骤详解
oracle涉及一张表的查询语句,如果是第一次执行,也就是硬解析,需要执行的步骤如下:Tables #Queries Purposeaccess$ 1 Permissions used by a dependent object against its parentccol$ 10 Constraint column-specific datacdef$ 3 Cons原创 2014-03-14 15:53:21 · 1283 阅读 · 0 评论