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)為本站 (云閑) 主動上傳,三個皮匠報告文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對上載內容本身不做任何修改或編輯。 若此文所含內容侵犯了您的版權或隱私,請立即通知三個皮匠報告文庫(點擊聯系客服),我們立即給予刪除!

溫馨提示:如果因為網速或其他原因下載失敗請重新下載,重復下載不扣分。
客服
商務合作
小程序
服務號
折疊
午夜网日韩中文字幕,日韩Av中文字幕久久,亚洲中文字幕在线一区二区,最新中文字幕在线视频网站