什么时绑定变量? Oracle中每一个提交的SQL语句都会经历解析,解析分为两种一种是软解析,这种解析在执行sql的时候直接到share pool中取出执行计划即 可,不是特别占用资源。而另一种硬解析,整个过程需要解析,制定执行路径,优化访问步骤等需要耗费大量的cpu资源同时也会占用门闩(latch... ...
分类:
数据库 时间:
2020-06-23 15:27:36
阅读次数:
67
SQL脚本存在TABLE ACCESS FULL行为对于SQL的执行计划,一般尽量避免TABLE ACCESS FULL的出现,那怎样去定位,系统里面哪些SQL脚本存在TABLE ACCESS FULL行为,对于9i及以后版本,使用以下语句即可select * from v$sql_plan v w... ...
分类:
数据库 时间:
2020-06-22 12:40:36
阅读次数:
974
使用这样一句sql语句可以查看sql的执行计划: EXPLAIN UPDATE tt_occp_collection_detail_dds_log SET lock_status=0 WHERE normal_status='ERROR'; 引用一篇博客看懂sql的执行计划 mysql explai ...
分类:
数据库 时间:
2020-06-16 11:32:34
阅读次数:
66
问题背景:有时候会遇到比较奇怪的现象,首次执行sql速度很快,后面再执行就变得很慢 正常来讲同样的一条SQL查询语句,根据执行计划,第一次查询完以后,后续再执行相同的语句应该很快才对。可是,现实却是第一次查询不慢(优化后2秒内查询),第二次以后就很慢。 对于执行计划中,在note部分有“cardin ...
分类:
数据库 时间:
2020-06-15 18:13:08
阅读次数:
91
sql优化器会重写sql sql在执行时,并不一定就会按照我们写的顺序执行,mysql优化器会重写sql,如何才能看到sql优化器重写后的sql呢?这就要用到explain extended和show warnings了。 explain extended sql语句,然后show warnings ...
分类:
数据库 时间:
2020-06-11 19:43:19
阅读次数:
114
查询优化--为什么要选用预处理语句 使用预处理语句会比多次执行查询效率高的多,原因如下: 服务器只需要解析一次查询,这节约了解析和其他的开销 因为服务器缓存了一部分执行计划,所以它只需要执行某些优化步骤一次 通过二进制发送参数比通过ASCII 码要快的多。比如,通过二进制发送DATE 类型的参数只需 ...
分类:
数据库 时间:
2020-06-08 18:56:11
阅读次数:
87
一、概述 执行计划:一条查询语句在ORACLE中的执行过程或访问路径的描述,即就是对一个查询任务,做出一份怎样去完成任务的详细方案。 如果要分析某条SQL的性能问题,通常我们要先看SQL的执行计划,看看SQL的每一步执行是否存在问题。 看懂执行计划也就成了SQL优化的先决条件。 通过执行计划定位性能 ...
分类:
数据库 时间:
2020-06-05 14:43:02
阅读次数:
85
业务反应某sql执行慢,影响部分业务。通过v$session视图获取会话当前的sql_id,在通过v$sql_bind_capture或dba_hist_sqlbind等视图获取该sql绑定变量的值。 设置会话级别参数(执行计划详细信息):ALTER SESSION SET statistics_l ...
分类:
数据库 时间:
2020-06-01 13:53:02
阅读次数:
88
一 概述 1.1 为什么需要工作流调度系统 1)一个完整的数据分析系统通常都是由大量任务单元组成: shell 脚本程序,java 程序,mapreduce 程序、hive 脚本等。2)各任务单元之间存在时间先后及前后依赖关系。3)为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行 ...
分类:
其他好文 时间:
2020-05-30 20:00:49
阅读次数:
59