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)
---------------------------(end of broadcast)--------------------------- TIP 3: if posting/reading through Usenet, please send an appropriate subscribe-nomail command to [EMAIL PROTECTED] so that your message can get through to the mailing list cleanly