4

我刚刚听一个 dba 说,如果你将所有函数、过程等命名为大写,那么当数据库中的工作负载很高时,db 的性能会更好。这是真的吗?我觉得这几乎是难以置信的。有没有什么基准或者什么可以证明他是对是错?

我只觉得这个命名的东西在阅读代码的时候才有价值,特别是对于一个团队来说。您更有可能成功地修改遵循良好书写约定编写的代码,而不仅仅是随机的东西。但这与计算机性能无关,它应该执行相同的操作。

另外,如果是这样,我应该无法调用名为FUNClike funcor Funcor的函数funC

我认为这种说法很疯狂,我错了吗?我的意思是,我根本不是数据库专家,他是 dba。

4

2 回答 2

5

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

CREATE FUNCTION myFunction ...

CREATE FUNCTION MyFuNcTiOn ...

CREATE FUNCTION MYFUNCTION ..

CREATE FUNCTION myfunction ...

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

于 2013-06-25T19:28:09.090 回答
2

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

如果您命名某物FUNC,您将可以稍后调用它fUnCFunc(不带引号!)。

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

于 2013-06-25T19:15:15.383 回答