問題タブ [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.
postgresql - Postgres クエリのパフォーマンス
最適化したい次のクエリがあります。
EXPLAIN ANALYZE
次の情報を返します。
クエリのパフォーマンスを向上させるために何ができますか?
インデックスを追加しようとしましたが、これは事態を悪化させました(クエリはインデックスなしでより速く実行されます)。
更新 1 :
クエリ
次のパフォーマンス特性があります。
テーブル定義:
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 も参照してください)。
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?
postgresql - 「行なし」でも機能する max() 集計を最適化する
PostgreSQL 9.2 用に最適化しようとしているクエリがあります。
実行するには永遠に時間がかかるので、次のように書き換えることができると考えました
ただし0
、テーブルに行がない場合は返す必要があります。case ステートメントの組み合わせをいくつか試しましたが、うまくいかないようです。助言がありますか?
空のテーブルを計画します。
コストは 1,190,000 行のテーブルで 58k ですが、実行プランは同じです。
sql - 結果が得られるまで複数の SELECT を試す方法は?
たとえば、次のように、精度を下げてテーブル内の単一の行を検索したい場合はどうすればよいでしょうか。
これで結果が得られない場合は、次のことを試してください。
これで結果が得られない場合は、次のことを試してください。
たった一つの式でそれを行うことは可能ですか?
また、検索パラメータが 2 つではなく 3 つ以上ある場合にも問題が発生します。そのための一般的な解決策はありますか?もちろん、検索結果が関連性でソートされている場合に便利です。
postgresql - Postgres クエリの最適化 (インデックス スキャンの強制)
以下は私の質問です。インデックススキャンを使用するようにしようとしていますが、seq スキャンのみになります。
ちなみに、metric_data
テーブルには1億3000万行あります。テーブルにはmetrics
約 2000 行あります。
metric_data
表の列:
このクエリで PRIMARY KEY インデックスを使用するにはどうすればよいですか?
説明:
sql - PostgreSQLテーブルの行のカウントを高速化するにはどうすればよいですか?
PostgreSQLテーブルの行数を数える必要があります。この場合、条件が満たされる必要はありません。クエリ速度が大幅に向上した場合は、行の見積もりを取得することは完全に許容されます。
基本的に、select count(id) from <table>
正確な結果が得られないことを意味する場合でも、できるだけ速く実行したいと考えています。
sql - 関連性によるクエリと並べ替え
このようなクエリには複数の条件があります。
WHEREステートメントは、次の3つの条件で構成されます。
- テキスト一致
- 外部キーの一致
結果を関連性で並べ替えたい場合はどうなりますか?
- テキストがどの程度正確に一致しているか
- どれだけの条件が満たされているか(たとえば、テキストの一致と外部キー)
これは1つに2つの質問ですが、これらを組み合わせて使用すると便利な場合もあると思います。これによって、私は私の以前の投稿から生じる質問を参照しています(結果が利用可能になるまで複数のSELECTを試す方法は?)。
前もって感謝します!
postgresql - PostgreSQL の複数列部分インデックスに日時制約を追加する
queries_query
多くの列を持つという名前の PostgreSQL テーブルがあります。
これらの列のうちの 2 つ と はcreated
、user_sid
特定のユーザーが過去 30 日間に実行したクエリの数を判断するために、アプリケーションによって SQL クエリで頻繁に使用されます。直近の 30 日間よりも古い時間についてこれらの統計を照会することは非常にまれです。
これが私の質問です:
現在、次を実行して、これらの 2 つの列に複数列のインデックスを作成しました。
しかし、インデックスをさらに制限して、作成日が過去 30 日以内にあるクエリのみを対象にしたいと考えています。私は次のことを試しました:
しかし、これは私の関数が不変でなければならないという例外をスローします。
インデックスを最適化し、Postgres がこれらの繰り返しクエリを実行するために必要なリソースを削減できるように、これを機能させたいと思っています。
postgresql - postgresql での左外部結合のパフォーマンスの問題
以下のクエリのパフォーマンスを向上させる方法