oracle同义词需要多少磁盘空间?

时间:2015-02-05 11:21:37

标签: oracle storage space disk synonym

我们公司遇到了问题,因为每个人都共享开发oracle数据库。因此,如果开发人员想要修改过程或包,例如,其他应用程序将失败,直到第一个开发人员结束他的工作。

所以我认为,如果我可以在我的数据库中为数据对象的同义词(或许多)中的每个工作需求创建一个用户,那将会很棒。

以下是示例:

例如,我有一个名为 D9877 的需求。我对此要求的工作是改变名为 MYPCKG 的包。因此,要开始分配,我首先在 MYPCKG 的同义词中创建一个Oracle用户 D9877 。这样,任何修改都将应用于同义词,而不会影响任何其他开发人员。

以下是我的问题:

  • 我可以在没有服务器存储爆炸的情况下这样做吗?

  • oracle同义词需要多少磁盘空间?

2 个答案:

答案 0 :(得分:2)

我认为你对同义词的理解并不完全正确。

同义词是另一个对象的链接。作为Windows上的文件快捷方式或Linux上的链接。

为了能够并行更改某些软件包,您需要确保可以将应用程序安装在专用模式上。您可以在主表应用程序模式中创建本地同义词(因为表占用空间!),并在模式中编译包。另一个开发人员可以拥有自己的应用程序版本(即包,视图)。

但是你需要考虑一些像触发器这样的情况(在同一个表上有两个版本的触发器可能很棘手),一些动态DDL到应用程序执行的表,比如truncate table等。

答案 1 :(得分:1)

Synonym占用几个字节的磁盘空间,但它根本不重要。这种方法不能解决这个问题。

首先,您似乎误解了同义词的含义。它是同一个对象的另一个名称。您不能“对同义词应用修改”,但即使可以,也可以修改对象本身。

有时,可以使用同义词来区分包版本。说,你有包A;都使用它。您可以创建包A_VERSION_1和A_VERSION_2,A_VERSION_2的公共同义词A和A_VERSION_2的私有同义词A.如果您这样做,您可以使用A_VERSION_2调试您的应用程序,而所有其他人都可以使用A_VERSION_1。

坏消息是这种方法也不起作用。仅当您从应用程序直接调用A时,它才有效。但是让我们假设我们有两个包,A和B(authid definer)。 B使用A.你从你的应用程序中调用B,你应该修改A.在这种情况下,B永远不会查找你的私有同义词。您也需要使用它的私有同义词来制作B_VERSION_2等。鉴于数据库对象之间的间接呼叫数量,这是不可能的使用方式。