SQL优化第一章

术语:

数据库hang住:hang/hæ?/n:悬挂的样子; (动作的) 暂停; vt/vi悬挂; (被) 绞死; 贴,装饰; 使悬而未决;

optimizer/‘ɑ:pt?ma?z?r/:优化器、[计]优化程序、最优控制

access path:执行路径

一)优化器简介

优化器(Optimizer)是Oracle数据库中内置的一个核心子系统/核心功能组件。

优化器负责解析SQL,而SQL语句是用来访问存储在关系型数据库中的数据的,故优化器的好坏决定关系型数据库的强弱

优化器的目的:按照一定的判断原则来确认目标SQL在当前情形下的最高效的执行路径(access path)/

为了得到目标SQL的执行计划

Oracle数据的优化器分两种:RBO(Rule-Based Optimizer)直译“基于规则的优化器”

CBO(Cost-Based Optimizer)   .......“基于成本的优化器”

RBO:判断原则是以一种内置的硬编码在Oracle数据库的代码中的规则

CBO:从目标SQL诸多执行可能中选择成本值最小的一条来执行计划,成本值:根据目标SQL所涉及的表、索引、列等

相关对象统计信息计算得出

Oracle数据从库SQL语句的执行过程如下:

待执行的SQL语句——>解析——> |查询转换——>Query Optimization:CBO|RBO|——>执行计划——>实际执行

—>目标SQL的执行结果返回给用户|-----------  属于优化器范畴  ------------------|

二)RBO基于规则的优化器

时间: 2024-08-03 07:48:51

SQL优化第一章的相关文章

mysql 查询性能优化第一章 为什么查询速度会慢

一 为什么查询速度会慢 在尝试编写快速的查询之前,咱们需要清楚一点,真正重要的是响应时间.如果把查询看成是一个任务,那么它由一系列子任务组成,每个子任务都会消耗一定的时间.如果要有 优化查询,实际上要优化起子任务,要么消除其中一些子任务,要么减少子任务的执行次数,Mysql在执行查询的时候有哪些子任务,哪些子任务运行的速度很慢?这里还不好给出完 整的列表.一般来说,查询的生命周期大致可以按照顺序爱看:从客户端->服务器->然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中执行

SQL笔记-第一章,数据库入门

DBMS的分类DB2.Oracle.Microsoft SQL Server.Sybase SQLServer.Informix.MySQL数据库的结构元素库 database表 table列 column数据类型 datatype记录 record主键 primarykey索引 index表关联SQL语言

Linux性能优化 第一章 性能追踪建议

1.1常用建议1.1.1记大量的笔记(记录所有的事情)在做性能调优问题的时候很重要的一个操作就是记录下所有的事情,包括每一个输出.执行的结果.可以新建一个文件夹,然后把结果的文件都塞到该文件夹内.包括如下: 记录硬件/软件的配置情况,比如dmesg和uname –a的输出 保存并组织性能结果,记录系统配置的同时也要保存测试的结果. 写下命令行调用,可以把复杂的命令写成script或者记录到终端上. 记录研究信息和URL,将互联网找到的相关信息记录下来.记录这些信息之外,在调查问题时,还要牢记以下

Tsql2008查询性能优化第一章---APPLY

APPLY运算符涉及以下两个步骤中的一步或两步(取决于APPLY的类型): 1.A1把右表表达式应用于左表的行. 2.A2:添加外部行. Apply运算符把右表表达式应用左输入中的每一行.右表表达式可以引用左输入中的列,对于左表中的每一行,都要计算一次右边输入的表达式.这一步会把左边的每一行和来自右表达式的相应行进行匹配,并将生成的结果集合并起来,返回组合后的结果. Cross Apply和OUTER APPLY总是包含步骤A1,只有OUT APPLY才包含步骤A2. 如果内部(右)表表达式为外

SQL Server(第一章) 创建表 删除表 创建主键约束、唯一约束、外键约束、CHECK约束、默认约束

1.Employees员工表 /** 创建Employees员工表 **/ USE TSQL2012 IF OBJECT_ID('dbo.Employees','U') IS NOT NULL DROP TABLE dbo.Employees CREATE TABLE dbo.Employees ( empid INT NOT NULL, firstname VARCHAR(30) NOT NULL, lastname VARCHAR(30) NOT NULL, hiredate DATE NO

面试:聊聊sql优化(1)

mysql优化我一般遵从五个原则: 减少数据访问: 设置合理的字段类型,启用压缩,通过索引访问等减少磁盘IO 返回更少的数据: 只返回需要的字段和数据分页处理 减少磁盘io及网络io 减少交互次数: 批量DML操作,函数存储等减少数据连接次数 减少服务器CPU开销: 尽量减少数据库排序操作,和全表查询 减少cpu 内存占用 利用更多资源: 使用表分区,可以增加并行操作,更大限度利用cpu资源 sql语句常见的优化比如 sql优化第一最基本的为了最快的速度查询到数据,减少消耗,尽量避免全表查询,首

sql优化提速整理

sql优化提速整理 场景描述 在我们实际开发中,随着业务的不断增加,数据量也在不断的攀升,这样就离不开一个问题:数据查询效率优化 根据自己的以往实际项目工作经验和学习所知,现在对SQL查询优化做一个简单的梳理总结,总结的不好之处,望多多指点交流学习 主要通过以下几个点来进行总结分析:索引.语句本身.分区存储.分库分表 索引 在实际工作中,sql优化第一想到的应该就是索引,因为添加索引能够很直观的提升查询效率,但是在添加索引的时也不是越多多好,下面简单总结一下索引的实际使用 索引简介 关于索引的定

sql系列(基础篇)-第一章 关于sysdate

第一章 基本的SQL语句 1. 查询数据库系统时间,常以服务器默认的格式进行显示(根据数据库的字符集而定): 注意:dual 为数据库中的虚表,隶属于管理员 sys 用户,但所有的用户都可以访问:无实际意义,仅充当select 语句的结构(用 select取系统信息.临时结果等时,以 dual 充当语句结构): [email protected]>select sysdate from dual; SYSDATE --------- 18-JUN-14 1.1 修改系统时间的显示格式:(sess

Mysql必知必会 第一章 了解SQL

第一章 了解SQL 1.1 数据库基础 1.1.1 什么是数据库 数据库的定义:保存有组织的数据的容器 数据库软件不是数据库,而是DBMS 1.1.2 表 表(Table)的定义:某种特定类型数据的结构化清单 在同一个数据库中,表名唯一 模式(schema)的定义: 关于数据库和表的布局及特性的信息(有时,模式用作数据库的同义词) 1.1.3 列和数据类型 表由列组成.列中存储着表中某部分的信息 列(column)的定义: 表中的一个字段.所有表都是由一个或多个列组成的 数据类型(datatyp