oracle-sql语句解析类型

语句执行过程:1. 解析(将sql解析成执行计划) 2.执行 3.获取数据(fetch)

1. shared pool的组成。

share pool是一块内存池。

主要分成3块空间。free, library(库缓存,缓存sql以及执行计划),row cache(字典缓存)

sql 复制代码
select * from v$sgastat a where NAME = 'library cache';
select * from v$sgastat a where NAME = 'shared pool' and a.NAME = 'free memory';
select * from v$sgastat a where a.NAME = 'row cache';

硬解析(hard parse), 软解析(soft parse)。 都要频繁的访问数据字典信息。

从一个sql语句的n种执行方案中挑选出最优的执行方案作为执行计划。

软硬解析具体情况。

sql 复制代码
select name,value from v$sysstat a where a.NAME like 'parse%';

shared pool内存块组成。

free空间。

chain,chunk

free空间有很多chain(链条), 链上挂着空闲的块,不同的链条挂的块的大小不一样。

用锁(latch)保护chain(链条)

ora-4031错误。

原因一:大量的硬解析

原因二:小碎片,又突然来了大的sql语句,需要大的内存空间。

library cache

也是用链管理chunk。这里的链用的不是chunk的大小来管理chunk。而是将sql翻译成ascii,用ascii对应的数字计算出sql在哪个链条上。

sql 复制代码
select count(*) from x$ksmsp;  -- shared pool的总的chunk数

 alter system flush shared_pool;  -- 将shared pool的library cache和row cache的内容清空。
相关推荐
Nturmoils16 分钟前
一份 KDMS 评估报告,怎样排出迁移先后顺序
数据库
这个DBA有点耶16 分钟前
异构数据集成怎么做?5 种同步方案对比 + 金融级 CDC 实战解析
数据库·oracle·架构
独泪了无痕16 分钟前
SQL函数实战:GREATEST与LEAST的技巧
数据库·sql·mysql
码少女1 小时前
Linux--多路转接之select
java·服务器·数据库
梁辰兴1 小时前
软件工程:软件维护的副作用
数据库·软件工程·梁辰兴·控制方法·软件维护的副作用·副作用类型·副作用原因
这个DBA有点耶1 小时前
MySQL 8.0.20移除了Block Nested Loop,之前学的JOIN优化知识还适用吗?
数据库·mysql·架构
吉甫作诵2 小时前
Redis 常用命令大全:11 大类命令速查手册
运维·数据库·redis·缓存·nosql
2501_933670792 小时前
库存管理分析岗校招能力模型:SQL、库存周转、补货预测怎么准备
数据库
属于自己的天空3 小时前
不用再手动查表结构了:配好 MCP,Claude Code 自己读数据库生成代码
数据库·后端
Y3815326623 小时前
SERP 数据清洗实战:字段标准化、日期解析与去重键
开发语言·数据库·python·python数据库