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

Предупреждения за Postgres pl/java

От моя опит pl/java има някои големи проблеми:

  1. Трудно е да се инсталира в postgresql сървър. Дори ако намерите двоична компилация за вашата версия на postgresql (което също е трудно) - тя се нуждае от известно жонглиране на конфигурацията и пътя на библиотеката.
  2. Първото извикване на съхранена процедура на Java ще доведе до нов JVM процес. JVM процесите са с обхват на връзката и изискват известно количество памет за java heap, така че ако използвате пул за връзки, ще завършите с 10-20 стартирани JVM и неизползвани през повечето време, консумирайки RAM на вашия сървър
  3. pl/java може да комуникира с базата данни postgresql, използвайки самостоятелно създаден JDBC драйвер, който емулира обичайното използване на JDBC, но има някои проблеми с внедряването, които може да ви изненадат. Особено ако искате да използвате JDBC cusrors или други не толкова обичайни неща.
  4. Регистрирането на pl/java е доста специално - това се дължи на внедряването на вътрешна обработка на грешки в postgresql. Например - ако регистрирате нещо с java logging api на ниво на регистрационен файл ERROR - това ще прекрати връзката ви със сървъра.
  5. pl/java има много добра производителност при обработка на данни в сравнение с базираната на сървър на приложения java логика, но е напълно неразширяема - pl/java процедурите са изцяло еднонишкови - postgresql забранява многонишкови процедури
  6. Ако използвате вътрешен JDBC драйвер и вашият SQL израз съдържа грешки - ще получите криптично съобщение за грешка в журнала на postgresql - напълно несвързано с реалния проблем.

Като резултат - можете да използвате pl/java процедури с известен успех, но трябва да го правите много внимателно и вероятно трябва да помислите за подобряване на дизайна на вашето приложение.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Колко схеми могат да бъдат създадени в postgres

  2. Как да актуализирам всички колони с INSERT ... ON CONFLICT ...?

  3. PostgreSQL - Получаване на статистически данни

  4. Проучване на забавянето на PostGIS (издание 2019 г.)

  5. Как да получите деня на годината от дата в PostgreSQL