0
私はアカウントとIPアドレスのリストを持っており、場所の要約を取得しようとしています。しかし、私たちのサーバが処理するには計算が重すぎるので、私のコードを変更する方法があるのかどうか疑問に思っています。すべての結果を得ることができます。アカウントデータセットは約150k行と2列です。IPアドレスを場所に変換するには、最適化が必要です
select city, state, count(*) from(
select account_id, 256*256*256*one+256*256*two+256*three+four as Converted, city, state from
(select *, convert(bigint, split_part(ip_address, '.', 1)) as one, convert(int, split_part(ip_address, '.', 2)) as two,
convert(int, split_part(ip_address, '.', 3)) as three, convert(int, split_part(ip_address, '.', 4)) as four from AccountsIP)
inner join
(select city, state, ip_from, ip_to from ip_ranges a left join ip_locations b on a.ip_location_id = b.ip_location_id
where country = 'US') b
on (256*256*256*one+256*256*two+256*three+four) between ip_from and ip_to
)
group by city, state