Need some help with crafting a query to do major update
От | Sean Shanny |
---|---|
Тема | Need some help with crafting a query to do major update |
Дата | |
Msg-id | 4034087C.6090606@earthlink.net обсуждение исходный текст |
Ответы |
Re: Need some help with crafting a query to do major update
|
Список | pgsql-sql |
To all, This is part of a data warehouse. Made the mistake of using a natural key in one of the fact tables. :-( The f_test_pageviews is a simple testing table while I work this out. The real table has an identical schema. I have built a mapping table, d_user, to allow the replacement of the text based (32 characters wide) subscriber_key in f_test_pageviews with an int4 mapping key. I need to replace all of the f_test_pageviews.subscriber_key values with the d_user.id value putting it in f_test_pageviews.sub_key column. I have tried this sql: update f_test_pageviews set sub_key = t2.id from f_test_pageviews t1, d_user t2 where t1.subscriber_key = t2.user_id; but it is taking forever to complete. I would appreciate it if anyone could tell me a faster way to do this. I have to update 250 million plus rows over 4 tables. (We break the page view tables into calendar months) Thanks. --sean Table "public.d_user"Column | Type | Modifiers ---------+---------+--------------------------------------------------------id | integer | not null default nextval('public.d_user_id_seq'::text)user_id| text | not null Indexes: "d_user_pkey" primary key, btree (id) "d_user_user_id_key" unique, btree (user_id) Table "public.f_test_pageviews" Column | Type | Modifiers ------------------------+---------+-----------id | integer |date_key | integer |time_key | integer |content_key | integer |location_key | integer |session_key | integer |subscriber_key | text |persistent_cookie_key | integer |ip_key | integer |referral_key | integer |servlet_key | integer |tracking_key | integer |provider_key | text |marketing_campaign_key | integer |orig_airport | text |dest_airport | text |commerce_page | boolean |job_control_number | integer |sequenceid | integer |url_key | integer |useragent_key | integer |web_server_name | text |cpc | integer |referring_servlet_key | integer |first_page_key | integer |newsletterid_key | text |sub_key | integer | Indexes: "idx_temp_pageviews_id" unique, btree (id)
В списке pgsql-sql по дате отправления: