sql >> データベース >  >> RDS >> PostgreSQL

Postgres pl/javaの警告

    私の経験の時点で、pl / javaにはいくつかの大きな問題があります:

    1. postgresqlサーバーにインストールするのは困難です。 postgresqlバージョンのバイナリビルドを見つけたとしても(これも難しいです)、設定とライブラリパスのジャグリングが必要です。
    2. Javaストアドプロシージャを最初に呼び出すと、新しいJVMプロセスが作成されます。 JVMプロセスは接続スコープであり、Javaヒープ用にある程度のメモリを必要とするため、接続プールを使用すると、10〜20個のJVMが開始され、ほとんどの時間使用されなくなり、サーバーのRAMが消費されます。
    3. pl / javaは、一般的なJDBCの使用法をエミュレートする自作のJDBCドライバーを使用してpostgresqlデータベースと通信できますが、いくつかの実装上の問題があり、驚くかもしれません。特に、JDBCcussorsまたはその他のあまり一般的ではないものを使用する場合。
    4. pl / javaロギングはかなり特別です-これは、postgresqlの内部エラー処理の実装が原因です。たとえば、エラーログレベルでjava logging apiを使用して何かをログに記録すると、サーバー接続が終了します。
    5. pl / javaは、アプリケーションサーバーベースのJavaロジックと比較して非常に優れたデータ処理パフォーマンスを備えていますが、完全にスケーラブルではありません-pl/javaプロシージャは完全にシングルスレッドです-postgresqlはマルチスレッドプロシージャを禁止しています
    6. 内部JDBCドライバーを使用していて、SQLステートメントにエラーが含まれている場合(postgresqlログに不可解なエラーメッセージが表示されます)、実際の問題とはまったく関係ありません。

    結果として、pl / javaプロシージャを使用してある程度の成功を収めることはできますが、それを非常に慎重に行う必要があり、おそらくアプリケーション設計の改善について考える必要があります。



    1. ORACLEとPostgreSQLの間で異なるデフォルトの順序

    2. 動的SQLステートメントでテーブル変数を使用する方法は?

    3. phpスクリプトでWordpressユーザー資格情報を使用してiOSアプリにデータを送信する

    4. INSERTパフォーマンス-ビットマップとBツリー