上海品茶

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

Oracle兼容性和全局临时表的实现-内核专场(22页).pdf

编号:87310 PDF 22页 871.52KB 下载积分:VIP专享
下载报告请您先登录!

Oracle兼容性和全局临时表的实现-内核专场(22页).pdf

1、Oracle兼兼容容性性和和全全局局临临时时表表的的实实现现阿里云只能事业群-曾文旌大纲 兼容性的特点 全局临时表特性概述 全局临时表的实现 和 PostgreSQL 社区的交流 总结目标 更短的迁移时间 快速评估 相关设施工具化服务化 更小的迁移风险 复杂 SQL 不调整逻辑 更好的性能 SQL执行效率高相关兼容点 临时表 分区表 复杂 SQL connect by SQL 性能优化 执行器优化器 存储过程内置包兼容性的特点 SQL 层特性 影响用户体验 改造难度 SQL 标准 结合在PostgreSQL中的实现综合考虑全局临时表特点 大量用户反馈 80%的 oracle 改造评估报告中 改

2、造难度 业务需要每个会话不断创建的临时表。SQL 标准 有对全局临时表清晰的定义 各数据库产品没有广泛遵守临时表特点 PostgreSQL 支持本地临时表 local temporary table 仅支持全局临时表语法,不支持全局临时表特性 会话退出后临时表定义和数据被删除MySQL 仅支持 CREATETEMPORARYTABLE 定义和数据会话间不共享全局临时表的特点CREATE GLOBAL TEMPORARY|TEMP TABLE table-namecolumn-definition,column-definition*ON COMMIT DELETE|PRESERVEROWS G

3、lobalThemetadataispersistentThemetadataisvisibletoallsessions ONCOMMITWhenONCOMMITDELETEROWSisspecifiedorisdefault,thenthedatadisappearswhenCOMMIThappens.全局临时表优势 表定义持久化且会话间共享 每个会话不需要单独进行临时表和相关索引的创建 不会由于频繁 DDL 造成系统表膨胀 不会频繁创建和删除底层文件Global temp table vs local temp tableglobaltemptablelocaltemptablenoda

4、tashareacrosssessionyesyesSupportOnCOMMIT(DELETEROWS/PRESERVEROWS)withsamebehavioryesyesuselocalbufferyesyessharetableschemaacrosssessionsyesnodefinitiondeletedafterasessioncompletesnoyesONCOMMITDROPnoyesLocal temp table 的实现每个会话使用自己的 my_temp_namespace,同名不同oidTemp table 强制归属到 my_temp_namespace不同会话的my

5、_temp_namespace 不可以相互访问会话退出时,删除整个 my_temp_namespace使用 local buffer全局临时表的实现 实现上的考虑 持久化的表定义 一份定义多份数据 多份数据多份统计信息 数据可见性 mvcc 异常清理 DDL全局临时表的实现catalogRELPERSISTENCEONCOMMITClauserelpages,reltuples,relfrozenxidpg_statisticstoraget$(backendid)_$(relfilenode)全局临时表的实现DDLDroptable如何删除多个会话中的localbuffer 和storage

6、fileCreateindex其他会话中已经有数据怎么办Altertable需要重写所有会话中的数据文件么Truncatetable如何做到可回滚Cluster/vacuumfull改变 relfilenode全局临时表的实现统计信息和 dmlrelpages,reltuplespg_statisticNoautovacuumVacuum/analyzePlanner每个会话中的数据有一份独立的统计信息全局临时表的实现数据可见性 mvccrelfrozenxid同一张表,不同会话有不同的 relfrozenxidrelfrozenxid 的推进Vacuum会话级 Proc-relfrozenx

7、id需要保留 gtt 所需的 clog不能由于保留了“tooold”的数据导致资源无法回收全局临时表的实现和社区的互动全局临时表的实现社区的分歧Local buffer VS shared buffer统计信息的必要性Temp table on standbySession table VS global temp table全局临时表的实现社区的反馈global temp table 沿用local temp table 沿用 local buffer 的设计第一个版本包括核心特性不包括 temp table on standbyProposalGlobaltemporarytableshttps:/www.postgresql-archive.org/Proposal-Global-temporary-tables-td6107254.html全局临时表的实现todo list可变 relfilenodegtt 上更索引的使用体验优化自增列gtt on standby/ro总结很多兼容性问题实质是商业产品产品化程度更高SQL 标准细节很多,数据库产品选择性的遵守PG社区相对谨慎,完成一个特性往往不设完成时间点,需要充分讨论细节,这是完成高质量特性的一种方法。没有完美的方案,总是需要做取舍。

友情提示

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

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

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

专属顾问

商务合作

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

服务号

三个皮匠报告官方公众号

回到顶部