問題タブ [database-sequence]

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 に答える
62 参照

postgresql - プロダクション Postgres UPDATE の分析 - RETURNING クエリの遅さ

私たちは平均 10,000 人のアクティブ ユーザーを持つ Web アプリケーションを実行しており、6 つの Web ノードによってサービスを提供され、Postgres 9.4.6 によって支えられています。

私たちの監視ツールは、以下の実行速度の遅いクエリを特定しました。このクエリは、応答時間が許容できないことが多く、過去数日間で時折停止を引き起こしました。

これは小さなテーブルで、基本的に社内シーケンス実装 (レガシー アプリケーション) であり、他のテーブルごとに一意の ID を追跡します。

このテーブルには約 200 レコードしかありません。私たちの webapp ノードは、このクエリを使用して、使用する専用の ID のバッチを取得します。

上記のクエリのパフォーマンスが過去数日間で大幅に低下した理由を突き止める必要があります。平均で約 1 秒ですが、30 ~ 60 秒かかることもあります。高負荷時には、すべてのノードが複数の接続に対してまったく同じクエリを並行して実行しています。

UPDATE : 単一の (遅い) クエリによって保持されている (pg_lock、pg_class、および pg_stat_activity からの) ロックに関する情報を照会すると、待機中の他のトランザクションからのまったく同じクエリであることが示されました。そのため、同じ行を更新 (ID 値をインクリメント) しようとする同時トランザクションがあるため、必要なすべてのロックでアクティブな 1 つが他のすべてをブロックします。

それ以外の場合、データベースは正常です。運用チームは、ストレージ、メモリ、または接続に関してまったく問題を発見しませんでした。ただし、別のテーブルのサイズが最近 64GB に達したため、関連している可能性があります。

このようなパフォーマンスの低下を引き起こす可能性のあるものは誰にも分かりますか? 以前と同じ負荷ですが、このボトルネック クエリは以前よりも 5 倍遅くなります。

0 投票する
3 に答える
4578 参照

postgresql - ERROR: more than one owned sequence found in Postgres

I'm setting up a identity column to my existing columns for the Patient table.
Here I would like to use GENERATED ALWAYS AS IDENTITY.

So I setup the identity column by using the following statement (previously it was serial):

For the existing patient table I have a total of 5 records. (patientId 1 to 5)
When I insert a new record after the identity setup, it will throw an error like:

Even after resetting the identity column, I still get the same error.

Let me know if you have any solutions.