4

すべての関数、プロシージャなどを大文字で指定すると、データベースのワークロードが高いときにデータベースのパフォーマンスが向上するという dba の言葉を聞いたところです。これはまったく本当ですか?私はそれを信じることはほとんど不可能だと思います。彼が正しいか間違っているかを証明するベンチマークまたは何かはありますか?

私は、特にチームにとって、コードを読むときにこのネーミングに価値があると思うだけです。ランダムなものよりも、適切な記述規則に従って記述されたコードを正常に変更できる可能性が高くなります。しかし、これはコンピュータのパフォーマンスとは何の関係もありません。同じように実行する必要があります。

また、このような場合、 orのFUNCような名前の関数を呼び出すことはできないはずです。funcFuncfunC

私はその発言はおかしいと思います、私は間違っていますか? つまり、私はデータベースの専門家ではなく、彼はデータベース管理者です。

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 文字以下) は、それらにアクセスするときに引用符を使用しないようにするためです。ただし、パフォーマンスへの影響については聞いたことがありません。

何かに名前を付けると、後でor (引用符なしで!)FUNCと呼ぶことができます。fUnCFunc

ただし、引用符で呼び出すとfunc、それが使用できる唯一の名前になります。

于 2013-06-25T19:15:15.383 に答える