迁移 Oracle 到 PostgreSQL: SGA 和 PGA 内存配置
Oracle 实例分配多个单独的服务器 RAM “池”,用作数据库的各种缓存。其中包括缓冲区缓存、重做缓冲区、Java 池、共享池、大型池等。缓存驻留在系统全局区域(SGA)中,并在所有 Oracle 会话之间共享。
除了 SGA 之外,每个 Oracle 会话都被授予一个额外的内存区域,用于会话专用操作(排序、专用 SQL 游标元素等),称为专用全局区域(PGA)。
Oracle 实例分配多个单独的服务器 RAM “池”,用作数据库的各种缓存。其中包括缓冲区缓存、重做缓冲区、Java 池、共享池、大型池等。缓存驻留在系统全局区域(SGA)中,并在所有 Oracle 会话之间共享。
除了 SGA 之外,每个 Oracle 会话都被授予一个额外的内存区域,用于会话专用操作(排序、专用 SQL 游标元素等),称为专用全局区域(PGA)。
数据库用户帐户用于对连接会话进行身份验证,并授权单个用户访问特定数据库对象。数据库管理员向用户帐户授予权限,应用程序使用用户帐户访问数据库对象。
Oracle 角色是授予数据库用户的一组特权。数据库角色可以包含单个系统和对象权限以及其他角色。数据库角色使您能够在一个操作中向用户授予多个数据库权限。将权限组合在一起以简化权限管理非常方便。
Oracle OLAP 函数通过提供基于一组行计算聚合值的功能来扩展标准 SQL 分析函数的功能。可以将 OLAP 函数应用于单个查询表达式范围内的逻辑分区结果集。OLAP 函数通常与商业智能报告和分析结合使用。它们可以帮助提高查询性能,作为使用更复杂的非 OLAP SQL 代码实现相同结果的替代方法。
摘要:在本教程中,您将学习如何将 Oracle 的内置 SQL 函数,包括单行函数和聚集函数,迁移到 PostgreSQL。
PL/SQL是Oracle内置的数据库编程语言,提供了几种方法来存储和运行数据库中可重用的业务逻辑。过程和函数是使用CREATE PROCEDURE
和CREATE FUNCTION
语句创建的可重用代码片段。
您可以使用 Oracle 的EXECUTE IMMEDIATE
语句来解析和运行动态 SQL 语句或匿名 PL/SQL 块。它还支持绑定变量。
Oracle 的 DBMS_SQL
包提供了一个接口来解析和运行动态 SQL 语句、DML 命令和 DDL 命令(通常是在 PL/SQL 包、函数或过程里面)。DBMS_SQL
支持对 SQL 游标进行非常精细的控制,并在某些情况下可以提高游标性能。
Oracle 的 DBMS_OUTPUT 包通常用于调试或显示来自 PL/SQL 过程的输出消息。
摘要:Oracle PL/SQL 和 PostgreSQL PL/pgSQL 都支持游标的功能。语法TYPE … IS REF CURSOR
不受 PostgreSQL 支持。语法上的细微差异可能需要重写一些代码。PostgreSQL 不支持%ISOPEN
、%BULK_EXCEPTIONS
和%BULK_ROWCOUNT
。
Copyright (c) 2017 - 2025, Redrock Data Services, Inc. All rights reserved.