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

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监控数据库性能的SQL

    通过这些SQL语句,我们可以获取Oracle数据库的实时和历史性能数据,从而对系统进行深入分析,找出性能瓶颈,进行优化。在实际应用中,还可以结合AWR(Automatic Workload Repository)和ASH(Active Session History...

    优化SQL对ORACLE数据库性能的提高.pdf

    在探讨如何通过优化SQL语句来提高ORACLE数据库性能之前,我们首先需要了解ORACLE数据库的基本架构及其与SQL的关系。ORACLE数据库是一种广泛使用的商业关系型数据库管理系统,它支持结构化查询语言(SQL),允许用户...

    浅谈Oracle数据库性能的优化

    综上所述,通过对Oracle数据库中的SQL语句执行过程进行优化,特别是针对Parse、Execute和Fetch这三个阶段的优化,可以显著提高数据库的整体性能。此外,多表联结和子查询的优化也是不可忽视的关键环节。通过实施上述...

    Oracle数据库动态性能视图

    Oracle 数据库动态性能视图 Oracle 数据库动态性能视图是指 Oracle 数据库中的一种视图,用于存储数据库实例的性能统计信息。这种视图可以帮助DBA实时监控数据库的性能,检测性能瓶颈,优化数据库性能。 v$sysstat...

    XML配置文件连接Oracle数据库

    Oracle数据库是全球领先的数据库管理系统之一,尤其在企业级应用中广泛应用。它提供了丰富的功能和高级特性,如事务处理、数据仓库、分布式数据库等。为了与Oracle数据库交互,开发者通常需要提供数据库连接信息,...

    Oracle数据库中SQL语句的优化与分析.pdf

    Oracle数据库是目前广泛使用的关系型数据库管理系统之一,其性能的优劣直接影响到整个系统的效率。SQL语句作为与数据库交互的基本语言,其执行效率自然成为数据库优化的关键。本文将详细介绍Oracle数据库中SQL语句的...

    使用AWR诊断ORACLE数据库性能问题

    ### 使用AWR诊断ORACLE数据库性能问题 #### AWR简介与基本概念 自动工作负载资料库(Automatic Workload Repository,简称AWR)是Oracle数据库中一个内置且自动化的性能统计数据仓库,它为数据库管理员(DBA)提供...

    关于Oracle数据库SQL优化系统的研究.pdf

    【Oracle数据库SQL优化系统研究】 随着信息技术的飞速发展,数据在日常生活和工作中扮演着越来越重要的角色。Oracle数据库作为一款广泛使用的大型关系型数据库管理系统,其SQL优化系统对于提升系统性能至关重要。...

    查看数据库性能

    本文将深入探讨如何通过Oracle数据库内置的动态性能视图来监控和分析数据库性能,具体包括如何查看数据库的CPU使用率、等待时间比例、SQL服务响应时间以及其他关键性能指标。 ### 重要知识点:查看数据库性能 ####...

    ORACLE数据库使用动态SQL的方法.pdf

    Oracle数据库中的动态SQL是编程时的一种重要技术,它允许在程序运行时构建和执行SQL语句,而不是在编译时确定。动态SQL提供了更大的灵活性,能够应对不断变化的查询需求和用户输入,使得应用程序能够适应各种不同的...

    Oracle数据库维护常用SQL语句集合

    根据提供的文件信息,我们可以归纳出一系列与Oracle数据库维护相关的SQL语句知识点。这些知识点主要涵盖了查询当前会话...这些SQL语句对于Oracle数据库管理员来说非常实用,可以帮助他们更好地管理和优化数据库性能。

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

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

    PHP Oracle 数据库操作类

    这表明该类具有良好的兼容性和稳定性,可以适应不同版本的Oracle数据库。 类文件“DbOracle.class.php”很可能是这个操作类的核心代码,其中包含了建立连接、执行SQL查询、处理结果集、事务管理等功能。下面我们将...

    AWR分析报告,用于分析Oracle数据库整体性能

    通过深入分析AWR报告,数据库管理员能够识别性能问题,优化SQL语句,调整内存分配,优化I/O操作,以及解决等待事件,从而提高Oracle数据库的整体性能。同时,定期审查和对比AWR报告可以帮助监控数据库性能的变化,...

    这个是用OCI接口在VC平台上对Oracle 数据库的操作.包括对数据库的连接,数据表的提取,查询,删除,修改等基本功能.这个代码已经编译实现

    oci接口vc平台oracle数据库操作详解 Oracle Call Interface (OCI) 是Oracle公司提供的一个C语言编程接口,用于在各种操作系统上与Oracle数据库进行交互。在这个压缩包中,包含了一组使用OCI在Visual C++ (VC) 平台...

    ORACLE数据库运作原理

    在Oracle数据库中,当用户发起一个SQL查询请求时,系统首先会对其进行解析(Parse)。这个过程包括语法检查、语义分析等步骤,确保SQL语句符合Oracle数据库的规范。接下来,Oracle会基于查询的内容生成一个或多个...

    提高ORACLE数据库检索速度.pdf

    《提高ORACLE数据库检索速度》一文主要探讨了在ORACLE数据库中如何通过优化SQL语句来提升查询速度,从而提高整个数据库系统的运行性能。在数据库领域,ORACLE以其高效处理海量数据的能力和广泛应用于各行各业的事务...

    oracle动态性能视图

    Oracle动态性能视图是Oracle数据库管理系统中一套重要的监控工具,它们提供了数据库实例运行时的各种统计信息。这些视图使得数据库管理员(DBA)可以实时监控数据库的状态和性能,进而进行问题诊断和性能调优。其中...

    浅谈ORACLE数据库的优化 (2).pdf

    【Oracle 数据库优化】Oracle数据库的优化主要集中在SQL语句的解析(Parse)、执行(Execute)和提取结果(Fetch)这三个阶段。优化这些步骤能够显著提升数据库的性能。以下是对这三个阶段的详细讨论: 1. **优化...

Global site tag (gtag.js) - Google Analytics