选择最有效的顺序表名(只有有效的基于规则的优化) ORACLE分析器按照订单处理从右到左FROM在FROM子句中的表名,故FROM写在最后的表(基础表 driving table)将被最先处理. 在FROM子句中包括多个表的情况下,你必须选择记录条数最少的表作为基础表.当ORACLE处理...
分类:
数据库 时间:
2015-09-26 18:35:34
阅读次数:
230
在非分区索引上使用并行hint:如下全表扫描并行hint可以生效:SQL>select/*+full(dept)parallel(dept2)*/deptnofromdept;
ExecutionPlan
----------------------------------------------------------
Planhashvalue:587379989
-------------------------------------------..
分类:
数据库 时间:
2015-09-25 18:46:59
阅读次数:
276
与表连接顺序的相关hint:执行顺序emp-jobs-deptSQL>select/*+ordered*/e.ename,j.job,e.sal,d.deptnofromempe,jobsj,deptdwheree.empno=j.empnoande.deptno=d.deptnoandd.loc=‘CHICAGO‘orderbye.ename;
6rowsselected.
ExecutionPlan
------------------------------------..
分类:
数据库 时间:
2015-09-25 18:41:24
阅读次数:
299
APPEDNDhint:用于控制insert语句是否能以直接路径插入的方式插入数据。CACHEhint:用于控制目标sql在执行时是否将全表扫描目标表的数据块放到buffercache的LRU链表的热端。MONITERhint:用于控制被执行的目标sql是否被sqlmonitor监控Gather_plan_statisticshint:用于在目标sql..
分类:
数据库 时间:
2015-09-25 16:33:22
阅读次数:
397
测试数据:SQL>createtabletest1asselect*fromdba_objects;
Tablecreated.
SQL>createtabletest2asselect*fromuser_objects;
Tablecreated.
SQL>createtabletest3asselect*fromdba_objects;
Tablecreated.收集统计信息:BEGIN
DBMS_STATS.GATHER_TABLE_STATS(ownname=..
分类:
数据库 时间:
2015-09-18 18:50:53
阅读次数:
310
这一节将讨论一下子查询更加复杂的应用,主要在于简化 SQL,从侧面提高性能,当然。。提高性能的地方有很多很多。。今天听了一场关于 Oracle 的性能调优的讲座,了解了 Oracle 性能、优化要注意的各个方面。虽然现在可能还遇不到那么复杂的问题,但是关于简化
SQL ,优化 SQL 还是目前可以做到并作为一个不断努力的地方。话不多说,通过几个例子先来讨论一下~(当然。。对于我这种菜鸟还是有难...
分类:
数据库 时间:
2015-08-29 14:04:55
阅读次数:
239
1.单表访问:分表,分区,建索引,全表扫描---开并行,永远把它放内存,压缩2.多表关联,任何时刻只能是2个表关联,得到的结果集再和其他表关联。3.嵌套循环:Oracle从较小结果集(驱动表/外部表)中读取一行,然后和较大结果集(被探查表/内部表)中的所有数据逐条进行比较(嵌套循..
分类:
数据库 时间:
2015-08-16 00:47:00
阅读次数:
236
1.先explainplanfor目标sql:explainplanforWITHsales_countriesAS
(SELECT/*+gather_plan_statistics*/
cu.cust_id,co.country_name
FROMsh.countriesco,sh.customerscu
WHEREcu.country_id=co.country_id),
top_salesAS
(SELECTp.prod_name,
sc.country_name,
s.channel_id,
..
分类:
数据库 时间:
2015-07-11 06:48:11
阅读次数:
205
1.execdbms_stats.FLUSH_DATABASE_MONITORING_INFO;Forperformancereasons,theOracleDatabasedoesnotpopulatetheseviewsimmediatelywhentheactualmodificationsoccur.RuntheFLUSH_DATABASE_MONITORING_INFOprocedureintheDIMS_STATSPL/SQLpackagetopopulatetheseviewswiththela..
分类:
其他好文 时间:
2015-07-11 06:47:44
阅读次数:
164
createtablet2asselect*fromdba_objects;建索引:createindexidx_t2ont2(object_id);2.收集T2的表所有列和表上所有索引的统计信息:execdbms_stats.gather_table_stats(ownname=>‘SYS‘,tabname=>‘T2‘,estimate_percent=>100,cascade=>true,degree=>4);degree表..
分类:
数据库 时间:
2015-07-07 19:51:52
阅读次数:
149