Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Publiczne synonimy a wzorzec schema.object

Synonimy publiczne służą bardzo konkretnemu celowi; umożliwiają odwoływanie się do obiektu przez każdy użytkownik - zakładając, że posiada odpowiednie uprawnienia. Jeśli w przyszłości zechcesz zmienić sposób, w jaki określony użytkownik widzi obiekt, publiczne synonimy nie są dobrym rozwiązaniem.

Używają również określonej nazwy obiektu dla całej bazy danych. Jednak fakt, że istnieje publiczny synonim, nie uniemożliwia utworzenia obiektu o tej samej nazwie. To może być niewiarygodnie mylące.

Załóżmy na przykład, że masz procedurę test i schemat emp . Próba wykonania emp.test nie będzie działać, ponieważ masz już publiczny synonim emp na stole .

Tom Kyte , wydaje się napisałem liczba artykułów o tym.

Jeśli chodzi o aspekt wydajności, zdają się sugerować, że publiczny synonim zamiast prywatnego synonimu spowoduje niewielki spadek wydajności . Jednak użycie synonimu zamiast braku synonimu spowoduje również niewielki spadek wydajności. Sugeruje to, że jeśli każdy ostatni komputron jest cenne, nie powinieneś w ogóle używać synonimów.

Podsumowując, myślę, że oznacza to, że powinieneś unikać publicznych synonimów, jeśli to możliwe. Jeśli potrzebujesz jeden, to oczywiście używaj jednego, w końcu istnieją z jakiegoś powodu, ale jeśli nie, to po co go mieć? scott.emp konstrukcja jest przejrzysta, pokazuje dokładnie, do jakiego schematu i obiektu się odwołujesz, bez możliwości błędnej interpretacji, zarówno przez Ciebie, jak i przez kogoś nowego w bazie danych i kodzie.

Szybki punkt. Nie mówisz tego wprost, ale sformułowanie twojego pytania wydaje się sugerować, że tworzysz schemat dla każdego użytkownika. Wygląda na to, że byłoby to bardzo mylące...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przenieś kolumnę Oracle na pierwszą pozycję

  2. Jak wywołać procedurę składowaną w JDBC

  3. importowanie danych XML w Oracle DB

  4. Kopia zapasowa online vs offline

  5. Czy możemy mieć 2 różne zależności Oracle z 2 różnych baz danych w jednej aplikacji asp.net?