- 浏览: 93479 次
- 性别:
- 来自: 上海
-
最新评论
-
lihao312:
insert all功能好强大哦 之前都没有用到过
oracle 多表插入 insert all 用法(即列转行)
文章列表
关于计划的稳定性与控制
- 博客分类:
- oracle sql编程及优化
oracle的基于成本的优化器(CBO)最令人郁闷的一点就是它看上去可能会不定期地改变SQL语句的执行计划的趋势。当然,这些改变并不是完全随机的。但因为优化器代码太复杂了,通常很难来确定执行计划为什么改变了。在多年以前oracle就已经认识到了这个问题,并至少在过去的10年中一直努力进行改善。他们提供了很多工具来识别执行计划在什么时候发生了改变以及为什么改变。同时他们还提供了很多工具允许你在不同层次上对优化器所选择的执行计划进行控制。
计划不稳定性
它的工作本质上就是计算出获取SQL语句指定的特定数据集的最快方法。一般来说,这必须使用预先计算好的 ...
转载:Oracle外部表4
Oracle外部表3
Oracle外部表2
Oracle外部表1
使用Oracle外部表的五个限制
ORACLE外部表的应用实例
转载:http://www.cnblogs.com/zlja/archive/2010/12/15/2449360.html
oracle flashback介绍
- 博客分类:
- oracle基础
引用:Flashback Table之RECYCLEBIN
闪回查询之Transaction query
闪回查询之Versions between
oracle flashback--闪回查询之As of scn
Flashback 之 as of timestamp
Oracle Flashback 技术总结1
Oracle Flashback 技术总结2
Oracle Flashback 技术总结3
Oracle Flashback 技术总结5
...
转载:全面学习ORACLE Scheduler特性
ORACLE直方图学习笔记
- 博客分类:
- oracle sql编程及优化
引用:ORACLE直方图学习笔记
关于直方图的图形的参考
索引也可以像表分区结构那样进行分区。有多种方法可以对索引进行分区。在分区表上可以创建局部或全局索引。并且,有多种分区方案可选,例如范围分区、散列分区、列表分区以及混合分区方案。自ORACLE数据库10g版 ...
索引广义上可以分为3类:B-树索引、位图索引以及索引组织表。
B-树索引在各类应用中得到了广泛的使用。有很多种索引类型如分区索引、压缩索引、基于函数的索引都实现为B-索引。特殊的索引类型,如索引组织表以及索引组织表上的次级索引同样也实现B-树索引。
位图索引的实现适用于不经常进行更新、插入和删除的列。它们更适合于具有较少唯一值的静态列。一个典型的例子就是在数据仓库应用中。在一张包含人口统计信息的表中的性别列是一个很好的例子,因为对于这一列只有很少的唯一值。
全表扫描访问路径就一定是不好的吗?不一定。一种访问路径的效率对于不同的SQL语句构造、应用数 ...
analyze和dbms_stats函数都是收集一些统计信息,如下:
select table_name, num_rows, blocks, avg_row_len
from user_tables
where table_name = 'T';
analyze table t compute statistics;
删除统计信息
analyze table t delete statistics;
用dbms_stats函数如下:
SQL> exec dbms_stats.gather_table_stats(user,'T');
...
解释计划
语句EXPLAIN PLAN用来显示优化器为SQL语句所选择的执行计划。需要说明的是当你得到了解释计划输出的时候,你其实是得到了当SQL语句执行的时候应该采用的预期执行计划。你并没有得到实际的执行计划以及与其相关的数据源执行统计信息。你所得到的只是估计值,而不是实际值。将估计的信息称为解释计划输出
,而把实际信息称为执行计划输出
来区分实际和预期的执行计划。
解释计划例子:
SQL> explain plan for
2 select * from small_customers;
Explained
...
oracle 数据字典
- 博客分类:
- oracle基础
user_recyclebin
drop 一个表后,实际上并没有真正删除,放在回收上中,通过user_recyclebin可以进行恢复。
具体用法如下:
select * from user_recyclebin;
flashback table "BIN$1ygq8CJTQQm2mzqm90N/rg==$0" to before drop ;
user_constraints
外键的删除,启用,禁用
select 'alter table ' || table_name || ' disable ...
oracle总共只有两种基本的数据访问途径:全扫描或者索引扫描
。
统计信息在优化器准备确定最优方法的过程中扮演了关键的角色。
当对一个对象进行全扫描时,与该对象相关的所有数据块都必须取出并进行处理, ...
oracle总共只有两种基本的数据访问途径:全扫描
或者索引扫描。
默认的索引类型是B-树索引。索引建立在表中的一个或多个列或者是列的表达式上,将列值和行编号(ROWID)一起存储。在索引中还保存着一些其他信 ...
oracle表联结方法
- 博客分类:
- oracle sql编程及优化
联结的方法有:嵌套循环联结、散列联结、排序-合并联结、笛卡儿积联结。每种联结方法都有一定的最适合使用的条件,对于每对需要联结的表,优化器还必须确定表联结的顺序。
嵌套循环联结(NESTED LOOPS)
嵌套循环联结使用一次访问运算所得到的结果集中每一行来与另一个表进行对碰。如果结果集的大小是有限的,并且在用来联结的列上建有索引的话,这种联结的效率通常是最高的。嵌套循环联结的运算成本主要是读取外层表中的每一行并将其与所匹配的内层表中的行联结所需的成本。
顾名思义,嵌套循环联结就是一个循环嵌套在另一个循环当中。外层循环基本来说就是一个只 ...
oracle 行迁移、行链接
- 博客分类:
- oracle基础
转载自:http://www.eygle.com/archives/2011/11/oracle_block_header.html
sys_connect_by_path函数是用来返回组成层级的直到当前行的值。
例如:
select *
from (select ltrim(sys_connect_by_path(id, ','), ',') id,
ltrim(sys_connect_by_path(name, ','), ',') name,
level as lvl,
lpad(' ', 2 * (level - 1)) || id,
lpad(' ', 2 * (level ...