sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgres pl/java varningar

Från och med min erfarenhet har pl/java några stora problem:

  1. Det är svårt att installera det på en postgresql-server. Även om du hittar binär build för din postgresql-version (vilket också är svårt) - det behöver lite konfiguration och biblioteksväg jonglering.
  2. Första anropet till den lagrade Java-proceduren kommer att resultera i en ny JVM-process. JVM-processer är anslutningsomfattade och kräver en viss mängd minne för java-högen, så om du använder anslutningspool kommer du att sluta med 10-20 JVM:er startade och oanvända för det mesta, vilket förbrukar serverns RAM-minne
  3. pl/java kan kommunicera med postgresql-databasen med hjälp av egentillverkad JDBC-drivrutin som emulerar vanlig JDBC-användning, men har några implementeringsproblem som kan överraska dig. Speciellt om du vill använda JDBC-visare eller andra inte så vanliga saker.
  4. pl/java-loggning är ganska speciell - det är på grund av postgresql intern felhanteringsimplementering. Till exempel - om du loggar något med Java-loggnings-API på ERROR-loggnivå - kommer det att avsluta din serveranslutning.
  5. pl/java har mycket bra databehandlingsprestanda jämfört med applikationsserverbaserad java-logik, men det är helt omöjligt - pl/java-procedurer är helt enkeltrådade - postgresql förbjuder flertrådiga procedurer
  6. Om du använder intern JDBC-drivrutin och din SQL-sats innehåller fel - kommer du att få ett kryptiskt felmeddelande i postgresql-loggen - helt orelaterade till det verkliga problemet.

Som ett resultat - du kan använda pl/java-procedurer med viss framgång, men du måste göra det mycket noggrant och förmodligen måste du tänka på att förbättra din applikationsdesign.



  1. executemany för MySQLdb-fel för stort antal rader

  2. MySql Query- Datumintervall inom ett datumintervall

  3. Hittar fråga från oracle som blockerar sessionen

  4. Hur ändrar man ANVÄNDARNAMN och LÖSENORD för MySQL?