Oracle
 sql >> база данни >  >> RDS >> Oracle

Публични синоними срещу шаблон на schema.object

Публичните синоними служат за много специфична цел; те позволяват даден обект да бъде рефериран от всеки потребител - ако приемем, че имат съответните привилегии. Ако в някакъв момент в бъдещето може да искате да промените начина, по който конкретен потребител гледа на обект, тогава публичните синоними не са правилният начин.

Те също така използват конкретно име на обект за цялата база данни. Обаче фактът, че съществува публичен синоним, не ви пречи да създадете обект със същото име. Това може да бъде невероятно объркващо.

Да приемем например, че имате процедура test и схема emp . Опитвам се да изпълня emp.test няма да работи, тъй като вече имате публичен синоним emp на масата .

Том Кайт , изглежда са написали a брой статии за това.

Що се отнася до аспекта на производителността, те изглежда предполагат, че публичен синоним над частен синоним ще доведе до лек спад в производителността . Но използването на синоним вместо липса на синоним също ще доведе до лек спад в производителността. Това предполага, че ако всеки последен computron ценно е, че изобщо не трябва да използвате синоними.

Взети заедно мисля, че това означава, че трябва да избягвате публични синоними, ако е възможно. Ако имате нужда тогава, разбира се, използвайте такъв, все пак те съществуват с причина, но ако не го правите, тогава какъв е смисълът да имате такъв? scott.emp конструкцията е ясна, показва ви точно към каква схема и обект се отнасяте, без никаква възможност за погрешно тълкуване, било от вас самите, било от някой друг, който е нов в базата данни и кода.

Бърза точка. Не го казвате изрично, но формулировката на вашия въпрос изглежда предполага, че създавате схема за всеки потребител. Изглежда, че би било много объркващо...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да видите тялото на PL/SQL съхранена функция в Oracle

  2. Как да направите обвивка, която да връща нещо различно от референтен курсор

  3. Безопасно ли е да поставите индекс във временна таблица на Oracle?

  4. Извличане на съобщения от пощенска кутия с помощта на PL/SQL Mail_Client API

  5. JDBC връща празен набор от резултати