問題タブ [postgresql-performance]

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

postgresql - Postgres クエリのパフォーマンス

最適化したい次のクエリがあります。

EXPLAIN ANALYZE次の情報を返します。

クエリのパフォーマンスを向上させるために何ができますか?

インデックスを追加しようとしましたが、これは事態を悪化させました(クエリはインデックスなしでより速く実行されます)。

更新 1 :

クエリ

次のパフォーマンス特性があります。

ここに画像の説明を入力

テーブル定義:

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

sql - Postgresql で複雑なクエリを高速化する方法

次のクエリの実行を高速化するにはどうすればよいですか? 37 レコードを取得するだけで 65 秒かかりました。解決策はありますか?(gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4)、64 ビットでコンパイルされた、x86_64-unknown-linux-gnu で PostgreSQL 9.1.6 を使用しています) これはクエリです。

そして、これは Explain 分析の出力です ( Explain.depesz.com も参照してください)。

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

postgresql - Optimize Postgres query on timestamp range

I have the following table and indices defined:

I created an index on the created timestamp as follows:

Here's my query:

This was working fine until the number of records started to grow (about 5 million) and now it's taking forever to return.

Explain analyze reveals this:

So far I've tried setting:

Also created:

Nothing works. What am I doing wrong? Why is it selecting sequential scan? The indexes are supposed to make the query fast. Anything that can be done to optimize it?

0 投票する
2 に答える
1173 参照

postgresql - 「行なし」でも機能する max() 集計を最適化する

PostgreSQL 9.2 用に最適化しようとしているクエリがあります。

実行するには永遠に時間がかかるので、次のように書き換えることができると考えました

ただし0、テーブルに行がない場合は返す必要があります。case ステートメントの組み合わせをいくつか試しましたが、うまくいかないようです。助言がありますか?

空のテーブルを計画します。

コストは 1,190,000 行のテーブルで 58k ですが、実行プランは同じです。

0 投票する
4 に答える
424 参照

sql - 結果が得られるまで複数の SELECT を試す方法は?

たとえば、次のように、精度を下げてテーブル内の単一の行を検索したい場合はどうすればよいでしょうか。

これで結果が得られない場合は、次のことを試してください。

これで結果が得られない場合は、次のことを試してください。

たった一つの式でそれを行うことは可能ですか?

また、検索パラメータが 2 つではなく 3 つ以上ある場合にも問題が発生します。そのための一般的な解決策はありますか?もちろん、検索結果が関連性でソートされている場合に便利です。

0 投票する
4 に答える
55559 参照

postgresql - Postgres クエリの最適化 (インデックス スキャンの強制)

以下は私の質問です。インデックススキャンを使用するようにしようとしていますが、seq スキャンのみになります。

ちなみに、metric_dataテーブルには1億3000万行あります。テーブルにはmetrics約 2000 行あります。

metric_data表の列:

このクエリで PRIMARY KEY インデックスを使用するにはどうすればよいですか?

説明:

0 投票する
6 に答える
25966 参照

sql - PostgreSQLテーブルの行のカウントを高速化するにはどうすればよいですか?

PostgreSQLテーブルの行数を数える必要があります。この場合、条件が満たされる必要はありません。クエリ速度が大幅に向上した場合は、行の見積もりを取得することは完全に許容されます。

基本的に、select count(id) from <table>正確な結果が得られないことを意味する場合でも、できるだけ速く実行したいと考えています。

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

sql - 関連性によるクエリと並べ替え

このようなクエリには複数の条件があります。

WHEREステートメントは、次の3つの条件で構成されます。

  • テキスト一致
  • 外部キーの一致

結果を関連性で並べ替えたい場合はどうなりますか?

  1. テキストがどの程度正確に一致しているか
  2. どれだけの条件が満たされているか(たとえば、テキストの一致外部キー)

これは1つに2つの質問ですが、これらを組み合わせて使用​​すると便利な場合もあると思います。これによって、私は私の以前の投稿から生じる質問を参照しています(結果が利用可能になるまで複数のSELECTを試す方法は?)。

前もって感謝します!

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

postgresql - PostgreSQL の複数列部分インデックスに日時制約を追加する

queries_query多くの列を持つという名前の PostgreSQL テーブルがあります。

これらの列のうちの 2 つ と はcreateduser_sid特定のユーザーが過去 30 日間に実行したクエリの数を判断するために、アプリケーションによって SQL クエリで頻繁に使用されます。直近の 30 日間よりも古い時間についてこれらの統計を照会することは非常にまれです。

これが私の質問です:

現在、次を実行して、これらの 2 つの列に複数列のインデックスを作成しました。

しかし、インデックスをさらに制限して、作成日が過去 30 日以内にあるクエリのみを対象にしたいと考えています。私は次のことを試しました:

しかし、これは私の関数が不変でなければならないという例外をスローします。

インデックスを最適化し、Postgres がこれらの繰り返しクエリを実行するために必要なリソースを削減できるように、これを機能させたいと思っています。

0 投票する
2 に答える
1083 参照

postgresql - postgresql での左外部結合のパフォーマンスの問題

以下のクエリのパフォーマンスを向上させる方法