問題タブ [plv8]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
768 参照

postgresql - 複合型 plv8 の挿入方法

複合型配列を使用して db 構造を作成しました。plv8 を使用していくつかの値を挿入したいのですが、この配列を挿入するための正しい構造が見つかりません。

私が得ているエラーは次のとおりです。

ARRAY[ROW()] での挿入が機能することはわかっていますが、挿入する必要がある配列全体の長い文字列を作成する必要があります。以下は私が作った構造と私が試したインサートです。この配列/オブジェクトをplv8で挿入する正しい方法は何ですか?

0 投票する
0 に答える
92 参照

postgresql - トランザクションでの postgres メモリの問題

次のように動作する postgres プロセスがあります。

1) レコードごとに行を持つテーブルに分割された CSV ファイル

2) pagent は、各レコードを読み取り、それを新しいレコードまたは更新として新しいテーブルに書き込む postgres 関数を実行します。

3) トリガーが新しいテーブルで実行され、レコード値に応じて plv8 関数が実行されてデータが更新されます (かなりの量の json 処理が含まれており、plv8 が最も簡単なコーディング方法でした)。2 番目の更新は plv8 からのもので、以下のパターンを使用しました:-

これを監視すると、5000 件のレコードを処理すると 14Gb の仮想メモリが使用されることがわかります。したがって、CSV レコードのサイズが 1k 未満であるため、何かがおかしくなっています。テーブルに新しいインデックスを追加した後、これは深刻になりました。

これに対する解決策はどこにあるのでしょうか。それは正常ですか、それはトランザクションまたは別の要因で更新されているインデックスにリンクされていますか?

0 投票する
1 に答える
1014 参照

postgresql - PostgreSQL での PLV8 のデバッグ

少し前に、PostgreSQL の関数とトリガー内でPLV8 を使用することの欠点について尋ねました。それまでの間、私は plpgSQL と混合したシナリオを使用しており、気に入っています。しかし、前述のとおり、PLV8 ではデバッグのオプションが少なくなります。これまでのところ、plugin_debugger は plpgSQL でのみ機能することを理解しています。PLV8 のデバッグを別の方法で行うための良い方法を見つけた人が外部にいplv8.elog(NOTICE, 'this happens with my variable')ますか? たぶん、サードパーティのツールや秘密のプラグインはありますか?

0 投票する
0 に答える
94 参照

postgresql - 関数ベースのクエリと関数内の関数呼び出しのパフォーマンスとインデックスの使用

PostgreSQL 関数と関数内の関数呼び出しのパフォーマンスを改善しようとしています。

私たちのアプリケーションでは、PostgreSQL (9.6) クエリは完全に関数に基づいています。たとえば、多くの「アイテム」を取得するには、次のようなコードを使用できます。

ご覧のとおり、内部SELECTには、いくつかの単純なフィールドのほかに、別の関数呼び出しがあります。これらの内部関数は通常 plv8 ベースであり、データベース クエリを含む多くの JavaScript ロジックが含まれています。例は次のようになります。

この設計が理にかなっているのかという問題は別として、問題は次のとおりです。パフォーマンスを向上させる方法は?

item_status のような関数によって返されるデータは非常に安定しているため、インデックスに入れることは理にかなっていますが、方法はわかりません。

使用する PostgreSQL のバージョンは 9.6 です。