2017-01-26 19 views
0

ユーザリストを格納するjsonbカラムを持つテーブルを設計し、そのカラムにジンインデックスを設定します。Postgresql gin index高いCPU使用率

select * from table where userlist @> '"Username":"a01"'::josnb 

テーブル内の私のデータタイプIは、バックエンドのユニットテストを持っていた場合は、クエリの速度が速かった

`[{"Username":"a01"},{"Username":"a02"},{"Username":"a03"}....`] 

のような。

しかし、私はこのspを呼び出す関数を書いたとき、私はそれが非常に高いCPU使用率の問題(ほぼ100%)を持っていることがわかった。

このテーブルを空にしてこのインデックスを再作成した後、それは80%まで下がりましたが、まだ高いです。

問題を軽減する方法がわかりません。 ご意見がありましたら、お待ちしております。ありがとうございます。

DECLARE @EndCNT; 
SET @EndCNT = 10000; 

WHILE @EndCNT > 0 
BEGIN 

SELECT public.query_cust('a01'); 
SET @EndCNT = @EndCNT - 1; 
END 

答えて

0

最後に、私はそれがjsonbデータ型の問題であることを発見しました。

システムがデータをメモリにロードするときに、長すぎるjsonbデータ( )を保存すると、CPU使用率が高くなります。