パフォーマンスのよいプログラムの作り方を教えてください。
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
パフォーマンスのよいプログラムの作り方を教えてください。
msg# 1
noukan
投稿数: 44
名寄せ処理をするにあたりパフォーマンスのよいプログラムの作り方を教えてください。
対象データは金融系ファイルがで100万件のレコードがあります。
ファイルレイアウトはid+名前+生年月日+電話+住所になります。
前後のレコードをマッチンッグさせ条件に合えば前レコードのidを後レコードのidに入替します。
マッチング条件は名前が一致and (生年月日が一致 or 電話が一致 or 住所が一致 )になります。
そのため下記sortを3回行ってからマッチンッグさせます。
sort1:名前<生年月日<電話<住所
sort2:名前<電話<生年月日<住所
sort3:名前<住所<電話<生年月日
このような方法以外にパフォーマンスのよいプログラムの作り方ありましたら教えてください。
対象データは金融系ファイルがで100万件のレコードがあります。
ファイルレイアウトはid+名前+生年月日+電話+住所になります。
前後のレコードをマッチンッグさせ条件に合えば前レコードのidを後レコードのidに入替します。
マッチング条件は名前が一致and (生年月日が一致 or 電話が一致 or 住所が一致 )になります。
そのため下記sortを3回行ってからマッチンッグさせます。
sort1:名前<生年月日<電話<住所
sort2:名前<電話<生年月日<住所
sort3:名前<住所<電話<生年月日
このような方法以外にパフォーマンスのよいプログラムの作り方ありましたら教えてください。
投票数:1
平均点:10.00
Re: パフォーマンスのよいプログラムの作り方を教えてください。
msg# 1.1
Jiro123
投稿数: 271
DBMSなどの情報も書いておくと良いかと思います。
SQLServerやOracleなどをご利用であれば、埋め込みSQLを活用するのも一考かと思います。
SQLServerやOracleなどをご利用であれば、埋め込みSQLを活用するのも一考かと思います。
投票数:1
平均点:10.00
Re: パフォーマンスのよいプログラムの作り方を教えてください。
msg# 1.2
tkd
投稿数: 48
>>noukanさん
SQLで自己結合とかどうでしょうか
SELECT *
FROM CIF AS A
INNER JOIN CIF AS B
ON A.名前=B.名前
A.生年月日=B.生年月日
A.電話番号<>B.電話番号
みたいな感じで
経験上、名前や住所の内容でマッチングに苦労しそうですが
SQLで自己結合とかどうでしょうか
SELECT *
FROM CIF AS A
INNER JOIN CIF AS B
ON A.名前=B.名前
A.生年月日=B.生年月日
A.電話番号<>B.電話番号
みたいな感じで
経験上、名前や住所の内容でマッチングに苦労しそうですが
投票数:1
平均点:10.00
Re: パフォーマンスのよいプログラムの作り方を教えてください。
msg# 1.3
Tanda
投稿数: 2151
noukanさん、
Magic V10以降でしたら、Magic SQLも使えるんですけどね。
バージョンアップの予定はありませんか?
Magic V10以降でしたら、Magic SQLも使えるんですけどね。
バージョンアップの予定はありませんか?
投票数:0
平均点:0.00