我正在基于依赖图生成Oracle存储过程(SP)的代码。为了减少重新编译单元的大小,我在Oracle Packages中对它们进行了组织。但这导致了大量的包(250+)。程序数量为1000 +。
我的问题:这个大量的软件包是否会在Oracle 11gR2 +中产生任何性能问题?或者是否会出现与部署/管理相关的问题?有人可以分享他们使用大量Oracle软件包的经验吗?
答案 0 :(得分:3)
在我所使用的其中一个产品中,架构有数千个存储过程,函数和包,总共有近50万行代码。 Oracle根本不应该遇到任何问题。最令人头痛的是对象的维护和版本控制。
我们将每个包标题和正文存储在单独的文件中,以便我们可以单独对它们进行版本化(标题通常比主体更改频率更低),并且我们使用了支持ctags的编辑器在包装更易于管理。如果一个包中有一百个或更多的过程和函数,找到实际进行更改的正确位置需要花费与实际工作相同的时间!另一个很棒的工具是OpenGrok,它可以为整个代码库编制索引,并使搜索速度非常快。
部署方面,我们只是使用一个简单的脚本来包装SQL * Plus来加载文件并记录编译或连接的任何问题。有更多高级工具可以放在源控制系统之上,并且可以管理"部署和依赖,但我们从未发现它是必要的。
答案 1 :(得分:0)
在oracle中编写软件包的目的是为了实现模块化方法论的概念,其解释如下:
链接下提供了更多详细信息: https://oracle-concepts-learning.blogspot.com/