【DDL】DDL执行过程及其隐式COMMIT行为的探查与演示
1.先给出DDL语句执行过程的伪代码描述BEGIN commit; DDL语句的解析,包括语法解析和语义解析; BEGIN 执行DDL语句; commit; exception &...
【比较】Oracle不同版本中关于ALTER TABLESPACE的功能演进
1.分别看一下从9i到11gR2版本中关于“ALTER TABLESPACE”的语法。1).11g(R1和R2相同)的语法:ALTER TABLESPACE tablespace { DEFAUL...
【TKPROF】使用TKPROF格式化TRACE输出之“解剖麻雀”
《【SQL_TRACE】SQL优化及性能诊断好帮手》http://space.itpub.net/519536/viewspace-616240中简单的提到了使用TKPROF工具格式化SQL_TRACE的输出信息的方法,并没有对输出的内容做比较清楚...
【执行计划】格式化EXPLAIN PLAN的输出结果
在9iR2及以前的Oracle版本中,可以使用列格式化命令对EXPLAIN PLAN的输出结果进行格式化。这个方法在10g中已经无效,实验参考如下。1.与AUTOTRACE相关的列名大体有6个,关于AUTOTRACE和这6列的描述信息,可以参考官...
【SQL优化】LIKE vs INDEX
这里给一个常识性的,SQL中like与索引使用的原则。很熟悉的朋友可以飘过鸟~~1.包含一百万行记录的测试表sec@ora10g> select count(*) from t; COUNT(*)---------- 10000002.在x列上创建索引se...
【SQL*Plus】SPOOL到文件且在屏幕上打印SPOOL输出信息
如果您经常在SQL*Plus中书写脚本,一定会遇到这样一个场景:使用spool将“使用SQL生成SQL脚本”的内容输出到文件过程中,不想在屏幕上看到输出的SQL脚本信息,而直接可以调用生成的脚本来执...
【SQL_TRACE】SQL优化及性能诊断好帮手
SQL_TRACE作为SQL优化的工具的特点是:她可以对整个当前session或者其他特定的session做全面的跟踪,以便发现session中出现的异常现象,第一时间处理之。当然,针对一条SQL的跟踪同样有效,类似Explain Plan和AU...
【实验】列删除的一些细节探索
1.删除列语法示例(删除t表的x列)alter table sec.t drop column x cascade constraints checkpoint 10000;当然在表比较小,没有太大的维护成本的情况下,可以考虑使用最简洁的语法进行列删除:alter table...
【Explain Plan】查看SQL的执行计划
1.【使用方法】Explain Plan在sqlplus中使用起来非常的便捷,使用方法如下sec@ora10g> explain plan for select count(*) from t;Explained.sec@ora10g> select * from table(dbms_xplan.display());PLAN_TA...
【AUTOTRACE】SQL优化的重要工具--AUTOTRACE
提到SQL优化,不能不提AUTOTRACE的强大功能。使用起来非常便捷,不过在是使用之前,需要做一些配置的工作。简要的描述一下这个过程,供没有使用过的朋友参考。1.使用sys用户执行plustrce脚本sys@ora10g> @?/...
【实验】分析函数之魅力展示
众所周知,Oracle的分析函数在BI类的分析数据库中起到了非常大的作用,不仅仅是因为它能做的事情非常的丰富,同时,分析函数作为Oracle的内部实现,较之其他的实现形式(例如使用group by实现)效率也是出奇的高...
【实验】IN与EXISTS效率测试一例——CBO效率一样,RBO下EXISTS效率高于IN
1.这个实验有以下场景和实验结论:CBO没有索引的情况下:IN与EXISTS效率一样(IN:00:00:00.85 EXISTS:00:00:00.85)CBO在列上创建索引后:IN与EXISTS效率一样(IN:00:00:00.16 EXISTS:00:00:00.16)RBO没有索引的情...
【实验】IN与EXISTS效率测试一例——CBO效率一样,RBO下IN效率高于EXISTS
1.创建测试表,并初始化数据(千万级别的big_table表和百万级别的big_table1表)sec@ora10g> @big_table 10000000sec@ora10g> create table big_table1 as select * from big_table where rownum<1000001;2.创建...
【共鸣】勿将数据库当成收音机中的电池那样的可换日用品
Tom大叔《Effective Oracle by Design》中有一段关于“避免黑盒综合症”的描述堪称经典,目前的项目中确实存在这样的问题,感同身受ing,感慨颇深,不吐不快。开发人员没有Oracle数据库的基本...
【实验】where子句的解析顺序及执行效率
有一种声音叫做:where子句的解析顺序是从右向左(如果上下书写的话,就是从下到上),因此能够过滤掉大部分数据的条件要书写到where子句的后面,同时具有表关联的条件要放到where子句的前面。这种说法在Oracle ...
【实验】IN与EXISTS效率测试一例
1.创建测试表,并初始化数据(千万级别的big_table表和百万级别的big_table1表)sec@ora10g> @big_table 10000000sec@ora10g> create table big_table1 as select * from big_table where rownum<1000001;2....
【实验】【INSERT】一步到位式分表插入
通过这个实验,给大家展示一下INSERT语句的强大之处:按条件同时插入多张表。利用这个功能可以实现很多具体的需求。大家慢慢体会。实验目的:使用一条SQL语句完成用户下数据库对象的分类存放。1.创建测试表sec@ora10...
【SQL优化】UNION替换OR效率测试及总结
大家在做SQL优化的过程中,可能都知道一个事实:某些情况下使用UNION替换OR可以提高SQL的运行效率。您知道这个“某些情况”指的是什么么?解释一下,“某些情况”指的是:使用的表字段要有索引。这个实验,...
【实验】【Archived Log】归档日志格式和归档路径之change趣谈
小文儿思路:先对归档日志格式和生成路径的修改流程进行阐述,再展开讨论一些有趣的细节。1.修改归档日志的格式默认格式是:“ %t_%s_%r.dbf”,我们尝试将格式修改为“%t_%s_%r.arch”,这是一个静态参数,...
【PGA】通过10g新特性得到PGA的调整建议
10g Oracle给出了一系列的自动优化的建议,PGA分配多大能给系统带来最大的性能?V$PGA_TARGET_ADVICE视图给出了很好的“预测”!看一下这个视图能给我们带来什么样的信息(视图中每个列都很有帮助):sys@or...