sql >> データベース >  >> RDS >> Oracle

パブリックシノニムとschema.objectパターン

    パブリックシノニムは非常に特定の目的を果たします。 すべてがオブジェクトを参照できるようにします。 ユーザー-適切な特権を持っていると仮定します。将来、特定のユーザーがオブジェクトを表示する方法を変更したい場合は、パブリックシノニムを使用することはできません。

    また、データベース全体の特定のオブジェクト名を使い果たします。ただし、パブリックシノニムが存在するという事実は、同じ名前のオブジェクトを作成することを妨げるものではありません。これは信じられないほど混乱する可能性があります。

    たとえば、プロシージャtestがあるとします。 およびスキーマempemp.testを実行しようとしています パブリックシノニムempがすでにあるため、機能しません テーブル

    Tom Kyte を書いた 記事の数これについて。

    パフォーマンスの面では、プライベートシノニムよりもパブリックシノニムがパフォーマンスのわずかな低下 。ただし、同義語を使用しない代わりに同義語を使用すると、パフォーマンスがわずかに低下します。これは、最後のすべてのcomputer が 同義語をまったく使用しないでください。

    まとめると、これは、可能であれば公的な同義語を避けるべきであることを意味すると思います。 必要の場合 1つはもちろんそれを使用します、結局それらは理由のために存在します、しかしあなたがそうでないなら、それを持っていることのポイントは何ですか? scott.emp 構成は明確であり、自分自身またはデータベースとコードを初めて使用する他の誰かによる誤解の可能性なしに、参照しているスキーマとオブジェクトを正確に示します。

    クイックポイント。明示的には言いませんが、質問の文言は、すべてのユーザーのスキーマを作成していることを示唆しているようです。これは非常に混乱するようです...




    1. 複数のテーブルと結合に対するOracleテキスト検索

    2. 2つのリストを比較してPython/MySQLでマージするにはどうすればよいですか?

    3. GROUP_CONCATを使用しない理由は?

    4. Oracleの最大の関数でNullを処理する