提到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:1、语法检查(syntax check)检查此sql的拼写是否语法。2、语义检查(semantic check)诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。
转载
2024-02-26 11:54:17
233阅读
点赞
概述作为DBA,binlog2sql是一项必须掌握的工具。binlog2sql是一个开源的Python开发的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,以便做数据恢复。gihub:https://github.com/danfengcao/binlog2sql一、闪回原理简析开始之前,先说说闪回。我们都知道 MySQL binlo
转载
2024-04-09 10:16:37
1031阅读
Python 理解解析式,列表解析式是我最喜欢的Python特性之一。列表解析式乍看起来有点神秘,但在完全理解之后就会发现其结构实际上非常简单。理解的关键在于,相比针对各种容器的for循环,列表解析式相当于语法上更加简化紧凑的改进版。这种东西有时称为语法糖,用来快速完成一些常见功能,从而减轻了Python程序员的负担。来看下面的列表解析式:这个解析式生成一个列表,包含从0到9的所有整数的平方:如果
先postgresql的页结构、页物理布局 postgresql 记录(元祖)物理布局 源码定义如下: struct
原创
2022-10-21 14:56:49
310阅读
在执行和获取结果前,数据库系统对此sql将进行几个步骤的处理过程: 1、语法检查(syntax check) 检查此sql的拼写是否语法。 2、语义检查(semantic check) 诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。 3、对sql语句进行解析(prase) 利用内部算法对sql进行解析,生成
--pg_catalog
SELECT * from pg_class c,pg_attribute a,pg_type t where c.relname='BookKindList' and a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid
SELECT a.attname from pg_class c,pg_attribute a,
原创
2021-08-10 15:54:49
917阅读
--pg_catalog
SELECT * from pg_class c,pg_attribute a,pg_type t where c.relname='BookKindList' and a.attnum>0 and a.attrelid=c.oid and a.atttypid=t.oid
SELECT a.attname from pg_class c,pg_attribute a,
原创
2021-08-10 15:54:50
735阅读
Druid源码分析
1. 入口类: DruidDataSource
1.1 结构
继承抽象类:DruidAbstractDataSource
接口方法:
DruidDataSourceMBean
ManagedDataSource
Referenceable
Closeable
Cloneable
Connect
转载
2024-05-26 16:56:57
257阅读
一、概述:
PL/pgSQL函数在第一次被调用时,其函数内的源代码(文本)将被解析为二进制指令树,但是函数内的表达式和SQL命令只有在首次用到它们的时候,PL/pgSQL解释器才会为其创建一个准备好的执行规划,随后对该表达式或SQL命令的访问都将使用该规划。如果在一个条件语句中,有部分SQL命令或表达式没有被用到,那么PL/pgSQL解释器在本次调用中将不会为其准备执行规划,这样的好处是
转载
2022-01-20 17:53:50
254阅读
摘要:标签: SQL内嵌用户定义函数 SQL内嵌用户定义函数在我们使用SQL 数据库中,用途很广泛。下面就为您详细介绍一些SQL内嵌用户定义函数方面的知识,供您参考。SQL内嵌用户定义函数 SQL内嵌用户定义函数是返回 table 的用户定义函数的子集。内嵌函数可用于实现参数化视图的功能。请看下面的视图: 1. CREATE VIEW vw_CustomerNamesInWA AS
--数据缓存技术--PGA和SGA---SGA:系统全局区域--PGA:Process Global Area是为每个连接到Oracle的用户进程保留的内存。 ---PLSQL从PGA获取信息的速度要比从SGA快--基于PGA的缓存为改善性能提供了许多有趣的机会--基于包的缓存--基于包的缓存使用的是包级别的一个或多个变量,而不是在包中子程序的任何子程序里声明的变量--包级别的数据会一直存在于会
转载
2024-10-21 14:15:02
46阅读
查看表字段注释 Select a.attnum,(select description from pg_catalog.pg_description where objoid=a.attrelid and objsubid=a.attnum) as descript,a.attname,pg_cat ...
转载
2021-08-31 16:52:00
347阅读
2评论
1.SELECT...GROUP BY的使用 PostgreSQL9.3官方文档:http://www.postgres.cn/docs/9.3/sql-select.html#SQL-GROUPBY SELECT查询在通过了WHERE过滤器之后,生成的输出表可以继续用GROUP BY 子句进行分组,然后用HAVING子句删除一些分组行
一、ORACLE的启动和封闭1、在单机环境下要想启动或封闭ORACLE系统必须首先切换到ORACLE用户,如下
su - oracle
a、启动ORACLE系统
oracle>svrmgrl
SVRMGR>connect internal
SVRMGR>startup
SVRMGR>quit
b、封闭ORACLE系统
oracle>sv
需求 postgresql这么一个字段a,字段类似是字符串,字段值如'{1,3,1}',null, '{2}',现在需求是新增一列b,类型为int,提取字段a的值,
原创
2024-01-03 15:46:34
100阅读
使用绑定提高动态 SQL 性能
由于几个方面的原因,开发人员通常会选择不在 PL/SQL 中使用动态 SQL。一个方面的原因是这样做有风险,因为 SQL 语句到运行时期才解析,所以捕获简单语法错误的难度会更大。此外,很多动态 SQL 的尝试都会带来性能问题,简单编写动态 SQL 的复杂性对动态 SQL 也有负面的影响。
这里给出一个简单的测试,我们使用
简介PostgreSQL查询优化器执行过程语法分析:生成查询树语义检查:对SQL表达的语义进行检查查询优化
视图重写逻辑优化:子查询优化,条件化简,等价谓词重写,连接消除,得到逻辑计划物理优化:基于代价优化,得到物理计划。PostgreSQL主要采用动态规划和遗传算法非SPJ优化:主要针对分组,排序,去重等操作查询计划执行在PostgreSQL中,语法树并不是一棵树状结构的,把关系平面化到
同样还是这张图,之前发过shared_buffer和os cache、wal buffer和work mem的文章,今天的主题是图中的clog,即 commit log,PostgreSQL10之前放在数据库目录的pg_clog下面。PostgreSQL10之后修更名为xact,数据目录变更为pg_xact下面,表现形式是一些物理文件。PostgreSQL为什么要使用clog呢,众所周知,Post
原创
2023-10-17 16:27:50
4阅读
本文介绍PG DDL操作上层接口。1、DDL操作的入口函数是ExecModifyTable,insert、delete、update都会进入这个函数,如果为insert,执行ExecPr...
原创
2022-09-14 10:11:29
839阅读
原创
2022-09-14 10:13:32
121阅读