上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

PLPGSQL基本原理与兼容Oracle最佳实践(16页).pdf

编号:86226 PDF 16页 4.13MB 下载积分:VIP专享
下载报告请您先登录!

PLPGSQL基本原理与兼容Oracle最佳实践(16页).pdf

1、PL/PGSQL基本原理与兼容Oracle最佳实践阿里云智能事业群-数据库产品事业部-张扬p简介p整体架构p变量处理与表达式计算p事务行为p异常p多级缓存p兼容Oracle最佳实践主要内容简介概念可加载程序语言。SQL语言的扩充。对标Oracle的PL/SQL优势 实现复杂的业务逻辑。降低网络延迟。避免多轮查询解析,优化性能。重要性 使用普遍,传统金融、保险等行业广泛依赖其实现后端逻辑。基础架构基本框架解释型架构。有编译器/执行器,无优化器。工作在SQL引擎上层。只处理控制语句,依赖SQL引擎处理实际的增删改查、表达式计算等功能。变量处理与表达式计算变量处理(编译阶段)PL/PGSQL的sca

2、nner和parser负责识别变量语义。DECLARE段parse阶段创建出变量的namespace栈。BEGIN/END块parse阶段查找栈将变量和普通表/列/关键字语义区分开。变量处理与表达式计算变量处理(执行阶段)通过在编译器/优化器/执行器不同阶段设置回调函数处理。回调函数回到PL引擎,从命名栈查找变量并返回SQL引擎。在优化器/执行器中统一表示为param节点,处理逻辑与带参数的cursor/prepared_stmt一致。变量处理与表达式计算表达式处理所有表达式和SQL语句的计算和执行均丢给SQL层处理。简单表达式:缓存其ExprContext,多次执行时可以直接调用执行器计算结

3、果。复杂表达式:计算expr_a等同于执行select expr_a;语句:pl块内执行任意SQL语句等效于执行prepared statement。事务行为异常异常PL的exception机制通过set_jump,long_jump结合子事务实现。带exception的pl块默认运行在子事务中。事务控制与异常相关,带exception的pl块内无法进行事务控制。多级缓存兼容Oracle最佳实践事务行为差异(事务控制)参考上文事务控制章节,PL/PGSQL仅在非原子上下文允许进行事务控制。右侧是Oracle中常见写法,在PL/PGSQL中执行,t1中不会成功插入任何数据。方案:对于需要执行事务

4、控制的存储过程,使用匿名块或procedure而非函数。兼容Oracle最佳实践事务行为差异(异常回滚)PL/PGSQL暂不支持语句级回滚,出错回滚时,所有未能显式commit的修改将丢失。右侧存储过程在Oracle中执行后表中将有前两条数据,PL/PGSQL中执行则不会有任何数据插入成功。方案:长时间执行的大事务根据需求适当进行显式提交,如循环指定次数后commit一次,可有效避免提交丢失。兼容Oracle最佳实践动态Record导致执行计划失效与Oracle不同,PL/PGSQL的record类型可以绑定任意表的rowtype,编译期间不做校验。存储过程中使用%rowtype后对相关表做D

5、DL,执行计划不会失效。右侧存储过程第二次调用会出错,因为此时执行计划已过期。方案:需要频繁修改的表或视图尽量避免在存储过程中将record绑定到其rowtype上。兼容Oracle最佳实践游标生命周期不一致PL/PGSQL的游标生命周期仅存在单个事务内部。Commit/rollback等事务控制语句会结束当前事务并开启新事务,因此会导致已打开的游标被清除。右侧存储过程在Oracle中执行正常,PL/PGSQL中第二次fetch会出错,此时游标已不存在。方案:避免在提交或回滚后操作之前打开的游标。兼容Oracle最佳实践更多的兼容性问题如何在PL/PGSQL中使用PL/SQL里的集合类型?包功能不支持/大量内置包找不到有效替代品?想使用批处理语句优化性能减少大量的循环开销?语法差异大,大量业务代码需要修改如何解决?等等PolarDB for PG Oracle兼容版提供业界最好的兼容能力,助力业务无缝迁移,平滑去O。

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(PLPGSQL基本原理与兼容Oracle最佳实践(16页).pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部