2つのテーブルの2つの値を比較する最速の方法

user7889679

2つの異なるテーブルの都市を一致させる必要があります。どちらにも、郵便番号と名前があります。しかし、たとえば、1つの「BOURGES」と「18000」ともう1つの「BOURGESCEDEX」と「18006」があります。

私はこれを初めて試しました:

INNER JOIN b_agence ag ON ag.ville = c.li_commune AND ag.code_postal = c.cd_postal

私はそれをに変更しました:

INNER JOIN b_agence a ON (trim(c.li_commune) = trim(replace(a.VILLE,'CEDEX','')) AND left(a.CODE_POSTAL,2) = left(c.cd_postal,2) )

それは機能しますが、残念ながら私の要求は30秒以上かかります。どうすれば最速の方法でそれを達成できますか?

ジンリー

問題は、TRIMを導入することにより、クエリを実行するたびにSQLエンジンに全表スキャン(文字列操作も含む)を強制することです。高速にしたい場合は、VILLE_TRIMMEDなどの新しいフィールドを作成し、「CEDEX」を削除した値を一度に入力します(値が追加または変更されている場合は、値を最新の状態に保つためのトリガーを導入する必要がある場合があります) )、その新しいVILLE_TRIMMEDフィールドにインデックスを付け(そして、ソースli_communeフィールドにもインデックスが付けられ、両方のテーブルの郵便番号フィールドにもインデックスが付けられていることを確認します)、それに結合します。そうすれば、クエリは毎回全表スキャンを実行するのではなく、インデックスを使用して結合を実行できるため、桁違いに高速になります。

ここで非正規化を導入していることに気付くでしょう。これは一般的なパターンです。データを整理するために正規化します。速度を非正規化します。

データベースがSQLServerの場合、計算列としてVILLE_TRIMMEDを実行し(最後から「CEDEX」のトリミングを実行)、PERSISTEDとしてマークしてから、それに参加することができます。トリガーなどの手間を省き、列を最新の状態に保ちます。SQLServerエンジンがそれを処理します。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

2つのテーブルの内容がまったく同じかどうかを比較する最速の方法

分類Dev

同じテーブル内の2つの列の値を比較する方法PowerBIDAX

分類Dev

mysqlの2つのテーブル間の比較差列値を取得する方法

分類Dev

2つのデータテーブルのセル値を比較する方法

分類Dev

2つのデータテーブル列の値を比較する方法

分類Dev

2 つのテーブルのデータを比較する方法

分類Dev

テーブルの2つの行を比較する方法

分類Dev

2つのテーブルの列を比較する方法は?

分類Dev

SQLの3つの関連テーブルで2つの関連する列の値を比較する方法

分類Dev

2つのMySQLテーブル間で最高値を比較する

分類Dev

TypeScriptで2つのブール値を比較する方法

分類Dev

2つのテーブル値の比較

分類Dev

2つのmysqlテーブルを比較する方法は?

分類Dev

異なるテーブルの2つのmysql列の値を比較する

分類Dev

2つのテーブルの2つの列をDISTINCT値と比較します

分類Dev

2つのテーブルの2つの列をDISTINCT値と比較します

分類Dev

2つのデータベーステーブルの値を比較する-> MySQL

分類Dev

SASの列の値が一致するように2つのテーブルを比較する方法は?

分類Dev

(挑戦的なSQL)異なる値の2つのテーブルを比較する

分類Dev

異なるテーブルの2つの値を比較する-MySql

分類Dev

異なるデータ型の2つの列を比較する最速の方法

分類Dev

1つのテーブルの2つの列値の合計を2番目のテーブルのSQLServerの別の列値と比較する

分類Dev

2つのテーブルのデータを比較する

分類Dev

2 つのリスト オブジェクトを比較する最速の方法

分類Dev

Mysqlでテーブルの2つの異なる行を比較する方法

分類Dev

2つの異なる行の列値を比較しながらテーブルをクエリする方法は?

分類Dev

同じテーブルSQLの2つの行を比較する

分類Dev

MYSQLの2つのテーブルを比較する

分類Dev

HIVEの2つのテーブルを比較する

Related 関連記事

  1. 1

    2つのテーブルの内容がまったく同じかどうかを比較する最速の方法

  2. 2

    同じテーブル内の2つの列の値を比較する方法PowerBIDAX

  3. 3

    mysqlの2つのテーブル間の比較差列値を取得する方法

  4. 4

    2つのデータテーブルのセル値を比較する方法

  5. 5

    2つのデータテーブル列の値を比較する方法

  6. 6

    2 つのテーブルのデータを比較する方法

  7. 7

    テーブルの2つの行を比較する方法

  8. 8

    2つのテーブルの列を比較する方法は?

  9. 9

    SQLの3つの関連テーブルで2つの関連する列の値を比較する方法

  10. 10

    2つのMySQLテーブル間で最高値を比較する

  11. 11

    TypeScriptで2つのブール値を比較する方法

  12. 12

    2つのテーブル値の比較

  13. 13

    2つのmysqlテーブルを比較する方法は?

  14. 14

    異なるテーブルの2つのmysql列の値を比較する

  15. 15

    2つのテーブルの2つの列をDISTINCT値と比較します

  16. 16

    2つのテーブルの2つの列をDISTINCT値と比較します

  17. 17

    2つのデータベーステーブルの値を比較する-> MySQL

  18. 18

    SASの列の値が一致するように2つのテーブルを比較する方法は?

  19. 19

    (挑戦的なSQL)異なる値の2つのテーブルを比較する

  20. 20

    異なるテーブルの2つの値を比較する-MySql

  21. 21

    異なるデータ型の2つの列を比較する最速の方法

  22. 22

    1つのテーブルの2つの列値の合計を2番目のテーブルのSQLServerの別の列値と比較する

  23. 23

    2つのテーブルのデータを比較する

  24. 24

    2 つのリスト オブジェクトを比較する最速の方法

  25. 25

    Mysqlでテーブルの2つの異なる行を比較する方法

  26. 26

    2つの異なる行の列値を比較しながらテーブルをクエリする方法は?

  27. 27

    同じテーブルSQLの2つの行を比較する

  28. 28

    MYSQLの2つのテーブルを比較する

  29. 29

    HIVEの2つのテーブルを比較する

ホットタグ

アーカイブ