Oracle的强大之处就在于他能总帮助让你选择正确的执行计划,即使你给了它错误的指示。
实验:
1. 创建测试表:
收集统计信息:
创建B树索引:
2. 执行select id from tbl_plan;查看它的执行计划:
因为创建了B树索引,正常讲可以从索引中获得id的值,不用全表扫描,但这里使用了全表扫描的方式。
即使使用...
分类:
数据库 时间:
2014-10-30 10:23:31
阅读次数:
270
我们写一条sql语句给Oracle,Oracle是需要将他解析之后才去执行的,也就是要明确先干啥后干啥。这就是所谓的执行计划。优化器就是用来得出最后的执行计划的工具,Oracle的优化器有两种一种是基于规则的,一种是基于成本的。1.基于规则的,就是明确了步骤,比如说必须是先把where 条件中最后一...
分类:
数据库 时间:
2014-10-30 01:43:34
阅读次数:
196
如果在SQL Server 里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现。 1、管理->SQL Server代理->作业(按鼠标右键)->新建作业-> 2、新建作业属性(常规)->名称[自定义本次作业的名称]->.....
分类:
数据库 时间:
2014-10-29 19:12:42
阅读次数:
197
2014年10月29日 09:51:10情景: 记录用户登录的信息日志, 为不影响打开游戏的速度,使用队列去记录日志每次执行计划任务,就会执行记录日志的程序,执行500次,也就是记录500条用户的登录信息这样,就涉及到出队列的频率第一, 一天内, 出队列的量要大于入队列的量: 每天有3万个用户登录,...
分类:
其他好文 时间:
2014-10-29 10:30:40
阅读次数:
182
《查看Oracle执行计划的几种常用方法-系列1》(http://blog.csdn.net/bisal/article/details/38919181)这篇博文中曾提到一个隐藏问题:
“隐藏问题2:
实验这部分内容发现使用select * from table(dbms_xplan.display_awr('sql_id'));并没有结果,@黄玮老师说有可能是AWR收集的是top的SQL,...
分类:
数据库 时间:
2014-10-28 13:53:24
阅读次数:
215
如何最大限制利用cpu?如何最快速的扫描完大表。如果大表有主键,count(*)就会走主键,oracle只需要扫描主键就能完成。
假设这个表没有主键,那么count(*)的时候只能走全表扫描,数据就非常慢。这里用full(a)强制走全表来模拟。
--找100G以上的分区表
SQL> @getsegsize_big
Enter value for tablespace_name:
Enter v...
分类:
数据库 时间:
2014-10-28 10:25:54
阅读次数:
194
上一篇博客讲了可以使用慢查询日志定位耗时sql,使用explain命令查看mysql的执行计划,以及使用profiling工具查看语句执行真正耗时的地方,当定位了耗时之后怎样优化呢?这篇博客会介绍mysql中最简单快速的优化方法——添加索引。一、索引的添加 ...
分类:
数据库 时间:
2014-10-28 09:13:29
阅读次数:
247
How to connect PDB after you install Oracle12c?...
分类:
数据库 时间:
2014-10-28 00:48:03
阅读次数:
198
优化器根据开消确定选择哪个执行计划,开消又与行数统计信息有关,默认情况下统计信息是在优化的过程中自动生成的。一旦列被标记为需要统计信息,查询优化器就会查找该列以有的统计信息,如果以有一个统计信息,下一步就会对它进行,检查以确定它足够新。如果过期就重建统计信息。(由此可见统计信息是基于列的)。----...
分类:
数据库 时间:
2014-10-28 00:15:42
阅读次数:
322
当你在用explain工具查看sql语句的执行计划时,若select_type 字段中出现“DEPENDENT SUBQUERY”时,你要注意了,你已经掉入了mysql子查询慢的“坑"。。。下面我们来看一个具体的例子 有这样一条查询语句: SELECT gid,COUNT(id) as count FROM shop_goods g1 WHERE status =0 and gid...
分类:
数据库 时间:
2014-10-25 23:08:20
阅读次数:
467