PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Postgres pl/java zastrzeżenia

Od mojego doświadczenia pl/java ma kilka poważnych problemów:

  1. Trudno jest zainstalować go na serwerze postgresql. Nawet jeśli znajdziesz kompilację binarną dla swojej wersji postgresql (co też jest trudne) - wymaga trochę żonglowania konfiguracją i ścieżką biblioteki.
  2. Pierwsze wywołanie procedury składowanej Java spowoduje utworzenie nowego procesu JVM. Procesy JVM są ograniczone do połączeń i wymagają pewnej ilości pamięci dla sterty Java, więc jeśli użyjesz puli połączeń, skończysz z 10-20 uruchomionymi i nieużywanymi maszynami JVM, zużywając pamięć RAM serwera
  3. pl/java może komunikować się z bazą danych postgresql za pomocą samodzielnie stworzonego sterownika JDBC, który emuluje typowe użycie JDBC, ale ma pewne problemy z implementacją, które mogą Cię zaskoczyć. Zwłaszcza jeśli chcesz używać kursorów JDBC lub innych nie tak powszechnych rzeczy.
  4. Logowanie pl/java jest dość szczególne - wynika to z implementacji obsługi błędów wewnętrznych postgresql. Na przykład - jeśli zalogujesz coś za pomocą interfejsu API rejestrowania java na poziomie dziennika ERROR - zakończy to połączenie z serwerem.
  5. pl/java ma bardzo dobrą wydajność przetwarzania danych w porównaniu z logiką java opartą na serwerze aplikacji, ale jest całkowicie nieskalowalna - procedury pl/java są w pełni jednowątkowe - postgresql zabrania procedur wielowątkowych
  6. Jeśli używasz wewnętrznego sterownika JDBC, a instrukcja SQL zawiera błędy - otrzymasz tajemniczy komunikat o błędzie w dzienniku postgresql - całkowicie niezwiązany z prawdziwym problemem.

W rezultacie - możesz używać procedur pl/java z pewnym powodzeniem, ale musisz to robić bardzo ostrożnie i prawdopodobnie musisz pomyśleć o ulepszeniu projektu swojej aplikacji.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przegląd narzędzi do planowania zadań dla PostgreSQL

  2. Komentować znak/znaki w postgres / postgresql / psql?

  3. Jak zrobić kolejność bez rozróżniania wielkości liter w Railsach za pomocą postgresql

  4. Uzyskiwanie wyników między dwiema datami w PostgreSQL

  5. Zmiana typu danych na zmiennoprzecinkowe i zaokrąglanie do 2 cyfr dziesiętnych