ループ内のSQL選択クエリを最適化する

hulkbuster001

SQLプロシージャのループでselectクエリを最適化したい。ループは約10000回繰り返され、選択クエリには約10000回かかります。反復ごとに30ミリ秒。これにより、プロシージャの全体的な実行時間が長くなります。

SELECT *
FROM BANKACCOUNTS B,
     MAPPING M,
     UPL_DTR_UPLOAD UP,
     (SELECT * FROM MAPPING WHERE SOURCE = 'KARVY_BANK_CODE') M1
 WHERE B.SCHEME_CODE = M.INTERNALCODE
   AND M1.INTERNALCODE = B.BANK_CODE
   AND M.SOURCE        = 'R0'
   AND B.AC_TYPE       = 'FUNDING'
   AND M.EXTERNALCODE IS NOT NULL
   AND UPPER(TRIM(M.EXTERNALCODE || M1.EXTERNALCODE || B.AC_NO)) =
           Upper(UP.Scheme || UP.Fundingbnk || UP.fundingacc);
ケダールリマエ

解決策はたくさんあります

  1. ただし、最初に最新の明示的な結合を使用します。

  2. 列m1のクエリには*、必要な列のみを使用するが含まれています

  3. 説明計画とインデックスの使用を確認してください

コード:

SELECT * 
FROM bankaccounts B 
JOIN mapping M ON B.scheme_code = M.internalcode 
JOIN 
    (SELECT internalcode, externalcode
     FROM mapping 
     WHERE source = 'KARVY_BANK_CODE') M1 ON M1.internalcode = B.bank_code 
JOIN upl_dtr_upload UP ON UPPER(TRIM(M.externalcode || M1.externalcode || B.ac_no)) = UPPER(UP.scheme || UP.fundingbnk || UP.fundingacc) 
WHERE  
    M.source = 'R0' 
    AND B.ac_type = 'FUNDING' 
    AND M.externalcode IS NOT NULL; 

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

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

編集
0

コメントを追加

0

関連記事

2つの選択でSQLクエリを最適化する

テーブルから特定の列を選択するためのSQLクエリの最適化

複数選択でSQLクエリを最適化する方法

大きなループで「選択」クエリを実行する速度を最適化する

テーブルから特定の素数を選択するときにクエリを最適化する

複数のテーブルからデータをサブ選択するクエリの最適化

MySQLの複数のテーブル選択クエリを最適化する方法は?

グループ化されたクエリの各カテゴリに「最適な」行を選択するためのエレガントな方法

内部の選択を使用するリクエストを最適化する

このSQLクエリを最適化するためのヘルプが必要

Djangoクエリセットの最適化-注釈付きフィールドの選択を防止します

MSSQL選択クエリの最適化

グループ化されたクエリ内で選択して、そのグループの最後のレコードを返します

MySQL:グループクエリの最大行を最適化する

Laravelの雄弁でループクエリを最適化する方法

SQLの「選択」クエリ内で一時テーブルを定義する

選択の確率を伴うT-SQLクエリの最適化

SQLグループ化と結合クエリの最適化

sql最適化更新とクエリの選択

選択クエリの最適化EFCore + Azure SQL Server

SQLクエリを最適化し、引数が異なる複数選択

SQLクエリの相互適用を最適化する方法

副選択を使用して削除クエリを最適化する方法は?

2つのテーブルの副選択によるクエリの最適化

副選択によるMySQLクエリの最適化

実行に1分かかった選択クエリを最適化する

このSQLクエリを最適化/簡素化する

特定の非プライマリフィールドの最後のXエントリを選択するSQLクエリ

タイムツリーを構築するためのループでCypherクエリを最適化する

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    Modbus Python Schneider PM5300

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    どのように関係なく、それがどのように「悪い」、すべてのSSL証明書でのHttpClientを使用しないように

  6. 6

    インデックス作成時のドキュメントの順序は、Elasticsearchの検索パフォーマンスを向上させますか?

  7. 7

    ラベルとエントリがpythontkinterに表示されないのはなぜですか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    パンダは異なる名前の列に追加します

  10. 10

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  11. 11

    Elasticsearch - あいまい検索は、提案を与えていません

  12. 12

    変数値を含むElasticSearch検索結果

  13. 13

    グラフ(.PNG)ファイルをエクスポートするZabbix

  14. 14

    Elasticsearchの場合、間隔を空けた単語を使用したワイルドカード検索

  15. 15

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  18. 18

    Elasticsearchでサーバー操作を最適化:低いディスク透かしに対処する

  19. 19

    テキストフィールドの値に基づいて UIslider を移動します

  20. 20

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  21. 21

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

ホットタグ

アーカイブ