PostgreSQL 源码解读(24)- 查询语句#9(查询重写)
本节简单介绍了PG查询语句优化部分查询重写相关的内容。查询重写在pg_rewrite_query函数中实现,该函数位于文件postgres.c中。一、测试脚本testdb=# CREATE VIEW vw_dwxx AS SELECT * FROM t_dwxx; CREATE VIEW testdb=#
PostgreSQL 源码解读(23)- 查询语句#8(PlannedStmt与QUERY P...
本小节简单介绍了PG的PlannedStmt结构与Explain命令输出的Query Plan的对应关系。
PostgreSQL 源码解读(22)- 查询语句#7(PlannedStmt结构详解-日志分析)
本文通过分析日志输出简单介绍了PG根据查询树生成的执行计划的详细结构。
PostgreSQL 源码解读(21)- 查询语句#6(PlannedStmt详解-跟踪分析)
本文简单介绍了PG根据查询树生成的执行计划的详细结构,生成执行计划的输入是上一节介绍的查询树Query。一、PlannedStmt结构生成执行计划在函数pg_plan_queries中实现,返回的是链表plantree_list,链表中的元素是PlannedStmt.PlannedStmt结构: /* ---------------- * &
PostgreSQL 源码解读(20)- 查询语句#5(查询树Query详解)
本文简单介绍了PG查询优化重写后生成的查询树Query的详细结构,查询重写优化的输入是上一节介绍的解析树Parsetree。
PostgreSQL 源码解读(19)- 查询语句#4(ParseTree详解)
本文简单介绍了PG解析查询语句后生成的解析树Parsetree的详细结构。词法和语法解析是执行SQL的第一步,解析树Parsetree是后续查询重写优化、生成计划等步骤的输入信息。一、解析树结构查询语句:testdb=# select * from ( testdb(# select t_dwxx.dwmc,t_grxx.grbh,t_
PostgreSQL 源码解读(17)- 查询语句#2(查询优化基础)
本文简单介绍了数据库系统实现中查询优化的关系代数基础,包括优化所基于的关系代数等价规则等.查询优化的主要目标是把表达式树变换成等价的表达式树,使得在树中的子表达式生成的关系的平均大小比优化前更小。次要目标是在一个单一查询中,或在要同时求值多于一个查询的时候的所有这些查询中,尽可能形成公共子表达式。一、等价规则一个关系表达式可以表示成多种形式,前提是这些形式是等价的。如何把一个表达式变换为其他形式的
PostgreSQL 数据页Page解析(2)- 页头和行数据指针
本文简单介绍了PG数据页Page中存储的原始内容以及如何阅读它们,包括页头PageHeader和行数据指针ItemId(Line Pointer)。一、测试数据-- 创建一张表,插入几行数据drop table if exists t_page;create table t_page (id int,c1 char(8),c2 varchar(16));insert into t_page val
PostgreSQL 数据页Page解析(1)- 基础
本文简单介绍了PG数据表的存储基础知识以及可用于解析Block内容的pageinspcet插件。
让业务实现回归数据库
让时间回到2000年,当年流行的MIS系统绝大多数均采用C/S架构,也就是使用PowerBuilder/Delphi/VB等工具开发的胖客户端通过OCI或其他接口直接连接Oracle或其他数据库,业务逻辑在数据库端实现,也就是通过PL/SQL、T-SQL语言等实现存储过程、函数、触发器等,由胖客户端进行调用。C/S架构,其中一个很大的问题是不利于扩展,由于Client直接连接数据库,在业务繁忙的时
坑爹的Oracle 11.2.0.3
Oracle 11.2.0.3,CLOB或XMLType(使用CLOB存储),如使用ENABLE STORAGE IN ROW存储选项,在数据大小超过4000 Bytes时存在问题。
Oracle vs PostgreSQL,研发注意事项(2)-DDL语句与事务
Oracle执行 DDL语句如CREATE, DROP, RENAME, or ALTER时,会隐式提交事务;PG在执行这类语句时,不会提交事务,需显式提交。
VIM 字符编码相关操作
linux vim
Oracle常用脚本
Oracle 脚本
MySQL基本管理
MySQL 管理
Informix数据库安装 Q&A
Informix 安装 Q&A
DB2 Q&A
DB2 Q&A