一,共享池 SGA
1,执行过的每一条SQL语句在共享池中都存有解析后的内容,存储这些语句的地方称为库高速缓存(library cache).不管多少用户要执行同样的语句sql,Oracle都会只解析一次;
2,数据字典高速缓存(dictionary cache)存储所有的系统参数等数据库信息;
3,分配给共享池的内存是有限,当新语句执行时,oracle用最近最少用算法(LRU)管理共享池的内存,将最近执行频率成高的覆盖执行频率低的sql内容。
4,软解析和硬解析:解析包括验证语句的语法,检验提交的对象以及确认对象的用户权限,如果检查通过,再去检查该语句是否执行过,如果是,oracle重用直接解析过的内容,称为软解析;否则oralce将执行所有的工作来为当前的sql语句生成执行计划,并将它存在缓存中以便后续重用,此解析称为硬解析;
5,可以通过查询v$sql 试图来查询当前存放在库高速缓存的SQL语句。
6,在执行sql时,即使是代表同一个功能的语句,大小写不一样,有无注释,Oracle都将视为不同的sql语句,如select * from employee 和 SELECT * FORM EMPLOYEE;oracle将为之生成不同的执行计划;
7,条件查询时,如果使用常量查询,如select * from employee where employee_id = 101 和 select * from employee where employee_id = 102,oracle将进行硬解析。但是如果采用绑定变量,则可以重用,如:select * from employee where employee_id =:v_empl_id.
8,锁存器:用来保护库高速缓存避免被两个同时进行的会话修改,也就是说如果oracle为了检查你要执行的sql语句是否已经存在而要在库高速缓存中获取一个锁存器,检查锁存器是否空闲。如果空闲则获取锁存器并做它的工作,否则会迭代轮询锁存器是否空闲 spinning. 故,正确编写代码使其较少使用锁存器也是非常重要的.
9,SGA-缓存区缓存 在数据库从硬盘读取数据出来后或者写入硬盘之前,缓存区缓存用来存储数据块。块是oracle进行操作的最小单位,验证块是否在缓存区都必须获取锁存器,写sql获取数据应该尽可能的访问尽可能少的数据块。如果数据库在缓存区,访问该数据块是一次逻辑读取,否则为物理读取。
二, 查询转换
1,在sql语句通过语法权限检查后,查询就进入了转换为一系列查询快的转换阶段。查询转化器可能会改变你最初所写查询的结构,但是不会改变最终的结果集。查询转换的目的就是确定如果改变查询结构的写法是否会提供更好的查询计划。
2,试图合并
3,谓语前推
4,使用物化试图进行查询重写
相关推荐
精通Oracle SQL【第2版】ORACLE SQL高级编程【第二版】学习笔记
这篇学习笔记将深入探讨这两个系统的概念、特性和应用。 一、Oracle数据库系统 Oracle数据库是由甲骨文公司开发的一款强大、高性能的数据库解决方案。其主要特点包括: 1. **分布式数据库**:Oracle支持多节点的...
Oracle SQL高级编程笔记是针对数据库管理员、开发人员和数据分析师的重要参考资料,涵盖了SQL在Oracle数据库系统中的高级应用。这些笔记详尽地阐述了如何利用Oracle SQL进行高效的数据查询、操作和管理,旨在提升...
Oracle 10g SQL 学习笔记涵盖了Oracle数据库的基础知识,包括版本信息、数据库系统特点、关系型数据库结构、SQL语言、操作环境以及常见的数据库操作。以下是对这些知识点的详细说明: 1. **Oracle 9i基础知识**: ...
Oracle PROC编程学习笔记涵盖了对这一技术的深入理解和实践应用。 Oracle PROC允许程序员在C程序中嵌入PL/SQL代码,通过预编译过程将PL/SQL块转换为C函数或过程,然后在C程序中调用这些函数,从而实现高效的数据...
### Oracle PL/SQL编程核心知识点解析 #### 一、创建基本表与操作 在Oracle数据库中,使用PL/SQL进行数据库编程前,首先需掌握如何创建表与进行基本的CRUD(创建、读取、更新、删除)操作。示例中的`CREATE TABLE`...
这篇笔记主要涵盖了Oracle SQL的基础知识、高级特性和实际应用技巧。 一、基础SQL语法 Oracle SQL遵循标准的SQL语法,包括SELECT、INSERT、UPDATE、DELETE四大语句。用于查询数据的基本结构是SELECT字段列表FROM...
【Java SSH Oracle SQLServer 学习笔记】 Java是一种广泛使用的面向对象的编程语言,它以其跨平台、开源和丰富的库而闻名。SSH是三个开源框架的缩写,分别是Spring、Struts和Hibernate,它们在Java Web开发中起着至...
PL/SQL(Procedural Language/SQL)是 Oracle 的一种过程式语言,结合了 SQL 与传统的编程语言特性,用于编写存储过程、函数、包等高级数据库程序。它扩展了 SQL 的功能,使开发者能够创建复杂的业务逻辑和数据库...
### Oracle学习笔记知识点详解 #### 一、Oracle简介 Oracle是一家知名的软件公司,以其数据库管理系统闻名全球。该公司成立于1977年,总部位于美国加利福尼亚州。Oracle不仅提供数据库解决方案,还涉及中间件、...
Oracle SQL编程是数据库管理的重要组成部分,特别是在Oracle数据库系统中,SQL与PL/SQL结合使用,大大增强了数据库操作的灵活性和效率。以下是一些关键知识点的详细说明: 1. **PL/SQL**: PL/SQL(Procedural ...
### 精通Oracle 10g PL/SQL编程学习笔记 #### 一、PL/SQL综述 **1.1 PL/SQL的功能与作用** PL/SQL (Procedural Language for SQL) 是一种专门为Oracle数据库设计的过程化语言,它结合了SQL的数据处理能力与过程化...
这篇资源是一个全面的SQL,特别是针对Oracle数据库的学习笔记集合。Oracle是世界上最广泛使用的数据库管理系统之一,它提供了丰富的功能来处理各种类型的数据和满足复杂的业务需求。SQL,全称Structured Query ...
通过系统学习《Mastering Oracle SQL学习笔记》中的这些章节,初学者不仅能够掌握Oracle SQL的基本操作,还能深入了解高级查询技巧和数据库管理的最佳实践,从而成为一名熟练的Oracle数据库管理员或数据分析师。
这个"oracle sql语句学习"资源包显然旨在帮助初学者逐步提升到高级水平,通过全面的笔记资料,使用户能够从基础概念到复杂操作都能熟练掌握。 首先,我们从基础开始。SQL,全称Structured Query Language(结构化...
根据给定的“数据库(Oracle+SQL) 学习笔记”的标题、描述及部分内容,我们可以归纳出以下几个重要的知识点: ### 一、SQL基础语法 #### 1. SELECT语句 SELECT 语句用于从数据库表中选取数据。基本格式如下: ``` ...
Oracle数据库是全球广泛使用的...总的来说,Oracle数据库SQL学习笔记应该涵盖这些核心领域,并深入探讨每个主题,包括实例、最佳实践和问题解决策略。通过持续学习和实践,你可以成为一名熟练的Oracle数据库专业人员。
本资料包是针对Oracle SQL的学习笔记,包含了丰富的练习题及解答,旨在帮助学习者深入理解和掌握SQL在Oracle环境中的运用。 1. **SQL基本查询操作** "1.SQL基本查询操作.txt"这部分内容可能涵盖了简单的SELECT语句...
【Oracle SQL笔记详解】 Oracle SQL是用于访问和操作Oracle数据库的强大工具,涵盖了各种查询、更新和管理数据的方法。以下是对笔记中提及的一些关键知识点的详细解释: 1. **登录Oracle数据库**:通常以超级管理...