- 締切済み
重複レコードを高速で取得するSQL
Access(mdb)から約2万件レコードのあるテーブルがあるとします。 列数は20ほど。 その中から、3つの列において重複しているレコードを取得したいのですが、 高速に取得する方法はありますでしょうか? (VB.NETで、重複レコードをユーザーに示す処理を作成したいのです) 以下のSQLを試したところ、1分以上時間がかかってしまいました。 ----------------------------- SELECT * FROM テーブルA table1 WHERE EXISTS ( SELECT * FROM テーブルA table2 WHERE table1.列A = table2.列A table1.列B = table2.列B table1.列C = table2.列C GROUP BY table2.列A HAVING COUNT(table2.列A) > 1 ) ----------------------------- アドバイスをお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- maiko0333
- ベストアンサー率19% (839/4401)
回答No.1
1)列A,B,CのINDEXを貼ること。 2)SELECT count(*),列A, 列B, 列C from テーブルA group by列A 列B 列C HAVING COUNT(*) > 1 とやってキーを取得してからselect * でその他の列を取得する。 3)2)のVIEWを作ってしまう。 と、読むだけでほしい条件のデータが存在します。