以下SQL执行时间按序号递减。1,动态SQL,没有绑定变量,每次执行都做硬解析操作,占用较大的共享池空间,若共享池空间不足,会导致其他SQL语句的解析信息被挤出共享池。create or replace procedure proc1asbeginfor i in 1..100000 loop e....
分类:
数据库 时间:
2015-01-09 08:05:53
阅读次数:
253
先来张大图:结合上图来说明一下解析的各个步骤涉及的锁。软解析、硬解析、软软解析区别的简单说明:为了将用户写的sql文本转化为oracle认识的且可执行的语句,这个过程就叫做解析过程。解析分为硬解析和软解析,SQL语句第一次解析时必须进行硬解析一句话说明硬解析与软解析的区别是:硬解析=需要生成执行计划...
分类:
数据库 时间:
2014-12-30 11:21:18
阅读次数:
179
2014-12-19 Created By 鲍新建一、摘要在做咨询时,经查遇到以前SQL的运行情况,和查询使用的条件查询绑定变量时,有硬解析和软解析之分,如果是软解析,变量的值就很难找到了查询绑定变量的几个视图如下:查询v$sql视图查询v$sql_bind_capture查询dba_hist_sq...
分类:
数据库 时间:
2014-12-30 09:56:58
阅读次数:
260
个人对SQL预编译的认识: 1、效率提升,对SQL语句编译一次可多次使用.避免了硬解析和软解析等步骤,当执行的语句上规模的时候性能差异还是很明显的。 2、安全提升,预编译之后的SQL语句,语义不会发生变化,安全性有相当大的提升。using System;using System.Collection...
分类:
数据库 时间:
2014-12-18 00:13:32
阅读次数:
235
在10G之前,使用DBMS_STATS收集统计信息将会导致与此对象相关的游标失效,下次执行此的时候将会进行HARD PARSE,除非收集的时候NO_INVALIDATE设置为TRUE。由于硬解析会消耗大量的CPU,还会导致大量的library cache 和 shared pool 的LATCH竞争...
分类:
其他好文 时间:
2014-12-09 17:37:59
阅读次数:
326
一、客户端通过监听连接到数据库,数据库开启一个server process进程来接收客户端传过来的sql。 1.这条sql语句从来都没有被执行过。(硬解析) 2.这条sql语句被执行过。(软解析)二、我们来看一条SQL语句内部解析到底经历了什么?sql硬解析解析的步骤 1.语法检测:检测sq...
分类:
数据库 时间:
2014-10-12 20:55:48
阅读次数:
263
2014-09-25 BaoXinjian一、绑定变量用法和使用场合使用绑定变量的重要性:如果不使用绑定变量而使用常量,会导致大量硬解析。由于硬解析的种种危害,不使用绑定变量往往是影响oracle性能和扩展性的最大问题以下为一些错误写法和正确写法的例子1. PLSQL中普通查询(1). 错误写法SE...
分类:
数据库 时间:
2014-09-28 19:01:34
阅读次数:
392
2014-08-11 BaoXinjian一、摘要Oracle硬解析和软解析是我们经常遇到的问题,所以需要考虑何时产生软解析何时产生硬解析,如何判断1. SQL的执行过程当发布一条SQL或PL/SQL命令时,Oracle会自动寻找该命令是否存在于共享池中来决定对当前的语句使用硬解析或软解析。通常情况...
分类:
数据库 时间:
2014-09-28 17:58:04
阅读次数:
418
之前给南京某客户优化一套OLTP数据库,其数据库中在某个时间段,会执行大量结构非常相似的查询语句,造成shared_pool被大量占用,导致数据库性能下降。碰到这种情况,其实最佳优化方案,就是让应用厂商修改相应代码,通过增加绑定变量,来有效减少相似SQL语句执行时的硬解析数,降低对shared_pool的消耗。下面来做一个关于绑定变量的测试:
1.创建测试用户并赋予权限
[oracle...
分类:
其他好文 时间:
2014-09-14 16:44:27
阅读次数:
278
Oracle OCP之硬解析在共享池中获取内存锁的过程...
分类:
数据库 时间:
2014-08-19 19:09:55
阅读次数:
185