表形式のレポート用のPostgreSQLの内部選択に関するSQLパフォーマンスの問題

遺伝子b。

PostgreSQLデータベースの使用:

ユーザーがアクティビティを入力し、アクティビティに関する質問に回答する調査アプリケーションがあります。調査自体はと呼ばれRECALLS_T、入力されたイベントはEVENTS_T、、回答はANSWERS_Tです。回答は、提供されたアクティビティの質問に対するものであり、に保存されACTIVITY_QUESTIONS_T、ルックアップ(LOOKUP_Tによってマップされます。

次に、すべての行がEVENTS_Tすべてのリコールのイベントであるイベントベースのレポートを実行する必要があります(すべてのイベントがすべてのリコールに対して結合されます)。ただし、そのレポートの一部の列は、特定の回答の値を示す必要があります。そうでない場合、それらのセルはNULLです。したがって、これは表形式のレポートです。

例(最初は簡単なフラットなもの、次に複雑な表形式のもの):

RecallID | RecallDate | Event |..| WalkAlone | WalkWithPartner |..| ExerciseAtGym
256      | 10-01-19   | Exrcs |..| NULL      | NULL            |..| yes
256      | 10-01-19   | Walk  |..| yes       | NULL            |..| NULL
256      | 10-01-19   | Eat   |..| NULL      | NULL            |..| NULL
257      | 10-01-19   | Exrcs |..| NULL      | NULL            |..| yes

私のSQLには、表形式の回答ベースの列の内部選択があり、次のようになります。

select 
-- Easy flat stuff first
r.id as recallid, r.recall_date as recalldate, ... ,

-- Example of Tabulated Columns:
(select l.description from answers_t ans, activity_questions_t aq, lookup_t l 
where l.id=aq.answer_choice_id and aq.question_id=13 
and aq.id=ans.activity_question_id and aq.activity_id=27 and ans.event_id=e.id) 
     as transportationotherintensity,
(select l.description from answers_t ans, activity_questions_t aq, lookup_t l
where l.id=66 and l.id=aq.answer_choice_id and aq.question_id=14
and aq.id=ans.activity_question_id and ans.event_id=e.id) 
     as commutework,
(select l.description from answers_t ans, activity_questions_t aq, lookup_t l
where l.id=67 and l.id=aq.answer_choice_id and aq.question_id=14 and aq.id=ans.activity_question_id and ans.event_id=e.id) 
     as commuteschool,
(select l.description from answers_t ans, activity_questions_t aq, lookup_t l
where l.id=95 and l.id=aq.answer_choice_id and aq.question_id=14 and aq.id=ans.activity_question_id and ans.event_id=e.id) 
     as dropoffpickup,

SQLは機能し、レポートはレンダリングされますが、パフォーマンスは良くありません私はそれが比例して悪いことを確認しました:それを修正する特定のアイテムのための魔法の弾丸はありません。すべての内部選択は、パフォーマンスの低下につながります。1,000行の結果セットには15秒かかりますが、2〜3秒以内で完了します。

これらのインデックスはすでに存在することに注意してください

  • ANSWERS_T:オンACTIVITY_QUESTION_IDEVENT_ID
  • EVENTS_T: オン RECALL_ID
  • ACTIVITY_QUESTIONS_T:上ACTIVITY_IDQUESTION_IDANSWER_CHOICE_ID

これらの内部選択で私が間違っていることはありますか?

ゴードン・リノフ

質問を要約すると、条件付き集計を使用します。PostgreSQLでは、次を使用できます。

select ans.event_id,
       max(l.description) filter (where aq.question_id = 13 and aq.activity_id = 27) as transportationotherintensity
       max(l.description) filter (where l.id = 66 and aq.question_id = 14 and aq.activity_id = 67) as commutework,
       . . .
from activity_questions_t aq join
     lookup_t l
     on l.id = aq.answer_choice_id join
     answers_t ans
     on aq.id = ans.activity_question_id
group by ans.event_id

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

副選択でn個の最新の行を選択する際のパフォーマンスの問題

分類Dev

Oracleのパフォーマンスに関する質問、結合での内部選択、一時的なWITHテーブルのインデックス

分類Dev

選択可能なRecyclerViewのパフォーマンスの問題

分類Dev

SQL内部結合のパフォーマンスの問題

分類Dev

ResultSetExtractor内のgetIntに関するパフォーマンスの問題

分類Dev

各プレイヤーの最新レコードの選択と注文(パフォーマンスの問題)

分類Dev

PostgreSQLでは、citextのパフォーマンスに関する奇妙な問題はありますか?

分類Dev

MySQLはJDBCでパフォーマンスの問題を選択します

分類Dev

パフォーマンスカウンターの読み取りに関する問題(配列の問題)

分類Dev

リンクリストの選択ソートの実装パフォーマンスの問題?

分類Dev

SpriteKitプラットフォーマーゲームのパフォーマンスの問題に関する問題

分類Dev

SonataAdminエンティティのリストに関するパフォーマンスの問題

分類Dev

スプライトキットに関するiOS9の主なパフォーマンスの問題

分類Dev

Z3 forJavaに関するパフォーマンスの問題

分類Dev

AzureWebサイトのパフォーマンスの問題に関するSpringBoot jar

分類Dev

HikariCP での Postgresql のパフォーマンスの問題

分類Dev

VerticaへのSASのデータロードに関するパフォーマンスの問題

分類Dev

ノードjsの複数の接続に関するパフォーマンスの問題?

分類Dev

QSQLTableModelの値のフォーマットに関する問題

分類Dev

Postgresql 12:オーバーラップ演算子と非常に同じテーブルでの結合に関するパフォーマンスの問題

分類Dev

SQLのレポートに関するOracleの問題

分類Dev

WPFは、大量のデータに関するパフォーマンスの問題を制御します

分類Dev

SQLパフォーマンスの問題:明確な200人の顧客が見つかるまでN行を選択します

分類Dev

入力タイプの色とvモデルに関するVueのパフォーマンスの問題

分類Dev

入力タイプの色とvモデルに関するVueのパフォーマンスの問題

分類Dev

Tensorflow、OpenAI Gym、Keras-基本的な強化学習の例に関するrlのパフォーマンスの問題

分類Dev

ランダムフォレストのtuneGridパラメータに関する問題

分類Dev

以下のスクリプトを変更する方法のSQLパフォーマンスの問題?

分類Dev

関数を使用するときにeXSLTのパフォーマンスの問題を改善する方法

Related 関連記事

  1. 1

    副選択でn個の最新の行を選択する際のパフォーマンスの問題

  2. 2

    Oracleのパフォーマンスに関する質問、結合での内部選択、一時的なWITHテーブルのインデックス

  3. 3

    選択可能なRecyclerViewのパフォーマンスの問題

  4. 4

    SQL内部結合のパフォーマンスの問題

  5. 5

    ResultSetExtractor内のgetIntに関するパフォーマンスの問題

  6. 6

    各プレイヤーの最新レコードの選択と注文(パフォーマンスの問題)

  7. 7

    PostgreSQLでは、citextのパフォーマンスに関する奇妙な問題はありますか?

  8. 8

    MySQLはJDBCでパフォーマンスの問題を選択します

  9. 9

    パフォーマンスカウンターの読み取りに関する問題(配列の問題)

  10. 10

    リンクリストの選択ソートの実装パフォーマンスの問題?

  11. 11

    SpriteKitプラットフォーマーゲームのパフォーマンスの問題に関する問題

  12. 12

    SonataAdminエンティティのリストに関するパフォーマンスの問題

  13. 13

    スプライトキットに関するiOS9の主なパフォーマンスの問題

  14. 14

    Z3 forJavaに関するパフォーマンスの問題

  15. 15

    AzureWebサイトのパフォーマンスの問題に関するSpringBoot jar

  16. 16

    HikariCP での Postgresql のパフォーマンスの問題

  17. 17

    VerticaへのSASのデータロードに関するパフォーマンスの問題

  18. 18

    ノードjsの複数の接続に関するパフォーマンスの問題?

  19. 19

    QSQLTableModelの値のフォーマットに関する問題

  20. 20

    Postgresql 12:オーバーラップ演算子と非常に同じテーブルでの結合に関するパフォーマンスの問題

  21. 21

    SQLのレポートに関するOracleの問題

  22. 22

    WPFは、大量のデータに関するパフォーマンスの問題を制御します

  23. 23

    SQLパフォーマンスの問題:明確な200人の顧客が見つかるまでN行を選択します

  24. 24

    入力タイプの色とvモデルに関するVueのパフォーマンスの問題

  25. 25

    入力タイプの色とvモデルに関するVueのパフォーマンスの問題

  26. 26

    Tensorflow、OpenAI Gym、Keras-基本的な強化学習の例に関するrlのパフォーマンスの問題

  27. 27

    ランダムフォレストのtuneGridパラメータに関する問題

  28. 28

    以下のスクリプトを変更する方法のSQLパフォーマンスの問題?

  29. 29

    関数を使用するときにeXSLTのパフォーマンスの問題を改善する方法

ホットタグ

アーカイブ