Oracle中的大写函数名称比小写更快?

时间:2013-06-25 19:10:44

标签: oracle oracle10g

我只是听了一个dba说如果你用大写命名所有的函数,程序等,当数据库中的工作量很高时,db会表现得更好。这是真的吗?我发现几乎不可能相信。是否有任何基准或某事证明他是对还是错?

我只认为这些命名事物在阅读代码时具有价值,特别是对于团队而言。您更有可能成功修改遵循良好编写约定而不仅仅是随机内容编写的代码。但这与计算机性能无关,它应该执行相同的。

此外,如果是这样的话,我就不能发送名为FUNC的函数,例如funcFuncfunC

我认为这句话很疯狂,我错了吗?我的意思是,我根本不是数据库专家,而且他是dba。

2 个答案:

答案 0 :(得分:5)

默认情况下,Oracle标识符不区分大小写。除非您明确create a case-sensitive function name(通过将名称括在双引号中),这会产生许多与性能无关的问题,否则Oracle将以大写形式将函数名称存储在数据字典中。

CREATE FUNCTION myFunction ...

CREATE FUNCTION MyFuNcTiOn ...

CREATE FUNCTION MYFUNCTION ..

CREATE FUNCTION myfunction ...

将创建一个函数,该函数在数据字典中以全部大写形式命名为MYFUNCTION。您可以使用任何对您有意义的外壳来调用该函数,因为它是一个不区分大小写的标识符。数据库不知道您用什么外壳来创建函数,因此它不会影响性能。

答案 1 :(得分:2)

您只使用大写实体名称(不再长,然后是30个字符)的唯一原因是在访问它们时避免使用引号。我没有听说过任何性能影响。

如果您为FUNC命名,您可以稍后将其称为fUnCFunc(不带引号!)。

但如果你用引号称呼它func,那么这将是你可以使用的唯一名称。