`
小码哥BASE64
  • 浏览: 122152 次
社区版块
存档分类
最新评论

oracle数据库性能影响之Sql parse

阅读更多

1,Sql parse的种

Sql parse又通常分为硬解析和软解析,当sql第一次执行的时候,会发生硬解析,之后的执行如果在shared pool中能找到就是软解析。因此,为提高数据性能,尽可能的让每次执行的SQLshared pool找到。

 

2,SQL在哪些情况下会发送硬解析?

统计信息改变

2Sql中的表上有做ddl操作,包括grantrevoke

3执行计划被踢出shared pool

4开启了trace

5绑定变量长度变化

6)启用outline11g启用SPM

7)SQL语句相同但是所引用的表不同,例如不是同一属主

8)环境发生变化,如Sort area sizeHash area sizelocale setting发生变化

 

3,软解析的条件

 当你向ORACLE 提交一个SQL语句,ORACLE会首先在共享内存中查找是否有相同的语句。这里需要注明的是,ORACLE对两者采取的是一种严格匹配,要达成共享,SQL语句必须完全相同(包括空格,换行等)如果完全相同,才会有软解析。

4,如何判断两个sql语句是否是同一个sql语句呢?

1)大小写和空格以及字母值不一致:

SELECT * FROM emp WHERE empno = 1000;

和下列每一个都不同

SELECT * from emp WHERE empno = 1000;

SELECT * FROM emp WHERE  empno = 1000;

SELECT * FROM emp WHERE empno = 2000;

在上面的语句中列值都是直接SQL语句中的,我们将这类sql称为硬编码SQL或字面值SQL

 

2)绑定变量名称不同

使用绑定变量的SQL语句中必须使用相同的名字的绑定变量(bind variables)

例如:

a. 2sql语句被认为相同

select * from emp where empno = :empno;

select * from emp where empno = :empno;

b. 2sql语句被认为不相同

select * from emp where empno = :empno1;

select * from emp where empno = :empno2;

我们将上面的这类语句称为绑定变量SQL

 

3)对象名称相同,但是属主不同

将所发出语句中涉及的对象与已存在语句所涉及对象相比较。

例如:

如用户user1与用户user2下都有EMP表,则

用户user1发出的语句:SELECT * FROM EMP;

用户user2发出的语句:SELECT * FROM EMP; 被认为是不相同的语句,

因为两个语句中引用的EMP不是指同一个表。

4) SQL语句中使用的捆绑变量的捆绑类型必须一致

0
0
分享到:
评论

相关推荐

    浅谈Oracle数据库性能的优化

    提出了一种优化Oracle 数据库的方法...Oracle 中SQL 语句的执行过程可分为解析(Parse)、执行(Execute)和提取结果(Fetch)三步,此方法就是通过对SQL 语句在Oracle 数据库中优化执行的三个过程来提高Oracle 数据库的性能。

    ORACLE数据库SQL语句的执行过程

    在回答这个问题前,我们先来回顾一下:在ORACLE数据库架构下,SQL语句由用户进程产生,然后传到相对应的服务端进程,之后由服务器进程执行该SQL语句,如果是SELECT语句,服务器进程还需要将执行结果回传给用户进程。...

    数据库oracle

    当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Shared pool的Library Cache中,当数据库第二次执行该...

    oracle动态性能表

    注:SQL语句的解析有软解析soft parse与硬解析hard parse之说,以下是5个步骤: 1:语法是否合法(sql写法) 2:语义是否合法(权限,对象是否存在) 3:检查该sql是否在共享池中存在 -- 如果存在,直接跳过4和5,运行sql....

    数据库性能监控

    parse count (total) parse count (hard) 指标项: #IO Latency db file sequential read(ms) log file parallel write(ms) log file sync(ms) db file scattered read(ms) #IO WorkLoad Oracle IOPS Oracle ...

    Oracle数据库优化策略总结篇

    本文主要介绍一些Oracle数据库的一些不常见却是非常有用的优化策略,希望能对您有所帮助。 SQL语句优化 这个好办,抓到挪借CPU高的SQL语句,依据索引、SQL技巧等修改一下,行之管用。 SELECT时不利用函数 在做频繁的...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    MLDN+李兴华+Java+Web开发实战经典.part3.rar )

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华Java Web开发实战经典.pdf (高清版) Part1

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华 Java Web 开发实战经典 高清扫描版Part3

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    李兴华Java Web开发实战经典(高清版) Part2

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    java web 视频、电子书、源码(李兴华老师出版)

    3.4、开发实战讲解(基于Oracle数据库) 第4章 Tomcat服务器的安装及配置 4.1、Web容器简介 4.2、Tomcat简介 4.3、Tomcat服务器的下载及配置 4.3.1、Tomcat下载 4.3.2、Tomcat安装 4.3.3、服务器配置 4.4、...

    CMS.DBUtility.dll

    /// 执行Sql和Oracle滴混合事务 /// /// <param name="list">SQL命令行列表 /// <param name="oracleCmdSqlList">Oracle命令行列表 /// 执行结果 0-由于SQL造成事务失败 -1 由于Oracle造成事务失败 1-整体事务...

    ddlparse:DDL parase并转换为BigQuery JSON模式和DDL语句

    支持的数据库是MySQL / MariaDB,PostgreSQL,Oracle,Redshift。 需求 Python> = 3.5 安装 安装 点安装: $ pip install ddlparse 命令安装: $ python setup.py install 更新资料 点更新: $ pip install ...

    Oracle Core Essential Internals for DBAs and Developers ■ ■

    数据库DBA必备手册 Jonathan Lewis 大神力作 Chapter 1: Getting Started . . . ................................................................................. 1 Oracle in Processes .......................

    百万商业圈 .NET 开发框架及开发框架API说明书 核心库

    数据访问层核心库:包括 DbHelperSQL,MySqlDbHelper,AccessDbHelper,实体层,数据库连接池 等 5、WebSystem.WebControls.dll 常用服务器控件核心库 主要提供后台开发使用 6、Business.Processing.dll 业务处理...

    springmybatis

    mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:...

    antlr4权威指南

    Oracle公司在SQL开发者IDE和迁移工具中使用了ANTLR;NetBeans公司的IDE使用ANTLR来解析C++;Hibernate对象-关系映射框架(ORM)使用ANTLR来处理HQL语言。  除了这些鼎鼎大名的项目之外,还可以利用ANTLR构建各种...

Global site tag (gtag.js) - Google Analytics