大量 Oracle 包
Large number of Oracle Packages
我正在根据依赖图为 Oracle 存储过程 (SP) 生成代码。为了减少重新编译单元的大小,我将它们组织在 Oracle 包中。但这会导致大量包裹(250 多个)。程序数1000+.
我的问题:如此大量的包是否会导致 Oracle 11gR2+ 出现任何性能问题?或者会不会有任何 deployment/management 相关的问题?有人可以分享他们使用大量 Oracle 包的经验吗?
在我开发的其中一个产品中,模式有数千个存储过程、函数和包,总计将近 50 万行代码。甲骨文不应该对此有任何问题。最头疼的是objects的维护和版本控制。
我们将每个包 header 和 body 存储在单独的文件中,以便我们可以独立地对它们进行版本控制(header 通常比 body 更频繁地更改) ,并且我们使用了支持 ctags to make navigation within a package more manageable. When you have a hundred or more procedures and functions within a package, finding the right place to actually make changes takes as much time as actually doing the work! Another great tool was OpenGrok 的编辑器,它为整个代码库编制索引并使搜索变得超级快。
在部署方面,我们只是使用了一个简单的脚本来包装 SQL*Plus 来加载文件并记录编译或连接方面的任何问题。有更多高级工具位于源代码控制系统和 "manage" 部署和依赖项之上,但我们从未发现它是必要的。
oracle中写包的目的是为了实现模块化方法论的概念,解释如下:
- 将逻辑过程和功能整合在一个包中
- 可以在全局中定义成员变量,可以在包内或包外访问
- 包中定义的程序单元会被一次性加载到内存中处理,减少上下文切换时间
link 下提供了更多详细信息:
https://oracle-concepts-learning.blogspot.com/
我正在根据依赖图为 Oracle 存储过程 (SP) 生成代码。为了减少重新编译单元的大小,我将它们组织在 Oracle 包中。但这会导致大量包裹(250 多个)。程序数1000+.
我的问题:如此大量的包是否会导致 Oracle 11gR2+ 出现任何性能问题?或者会不会有任何 deployment/management 相关的问题?有人可以分享他们使用大量 Oracle 包的经验吗?
在我开发的其中一个产品中,模式有数千个存储过程、函数和包,总计将近 50 万行代码。甲骨文不应该对此有任何问题。最头疼的是objects的维护和版本控制。
我们将每个包 header 和 body 存储在单独的文件中,以便我们可以独立地对它们进行版本控制(header 通常比 body 更频繁地更改) ,并且我们使用了支持 ctags to make navigation within a package more manageable. When you have a hundred or more procedures and functions within a package, finding the right place to actually make changes takes as much time as actually doing the work! Another great tool was OpenGrok 的编辑器,它为整个代码库编制索引并使搜索变得超级快。
在部署方面,我们只是使用了一个简单的脚本来包装 SQL*Plus 来加载文件并记录编译或连接方面的任何问题。有更多高级工具位于源代码控制系统和 "manage" 部署和依赖项之上,但我们从未发现它是必要的。
oracle中写包的目的是为了实现模块化方法论的概念,解释如下:
- 将逻辑过程和功能整合在一个包中
- 可以在全局中定义成员变量,可以在包内或包外访问
- 包中定义的程序单元会被一次性加载到内存中处理,减少上下文切换时间
link 下提供了更多详细信息: https://oracle-concepts-learning.blogspot.com/