我有一個約210萬元的表。其中有經緯度專欄。我試圖將其轉換爲地理類型(與SRID點)。PostgreSQL:這是因爲鎖(行級)?
我寫的函數(過程),在限制條目的時候工作正常(比如說:SELECT id,longitude,latitude FROM list_of_location limit 50
)。
CREATE OR REPLACE FUNCTION convertlatlon() RETURNS VOID AS $$
DECLARE rec RECORD;
BEGIN
FOR rec IN SELECT id,longitude,latitude FROM list_of_location
LOOP
UPDATE list_of_location SET location= concat('SRID=4326;POINT(',rec.longitude,' ',rec.latitude,')') WHERE id=rec.id;
END LOOP;
END;
$$ LANGUAGE 'plpgsql' ;
- 當我嘗試在整個表上運行時,PostgreSQL似乎什麼也不做。已經等了一個半小時。
- 使用正在運行的核心的CPU的99%。
- 不會彈出PostgreSQL的其他實例來利用其他核心(因爲請求來自單個用戶?)。
- 這是因爲鎖(行級)?
- 如何規避此?
P.S.我非常肯定,這將關閉主題。但是,我必須尋找答案。
「我敢肯定,這將讓封閉的題外話。」爲什麼? – 2012-07-31 15:15:59
@MarkByers因爲這不是一個編程相關的問題。像這樣的東西http://stackoverflow.com/questions/11712318/problems-starting-postgresql-server-after-installing-9-1 – ThinkingMonkey 2012-07-31 15:17:16
爲什麼這一個不編程相關?它似乎*對我來說 - 你甚至發佈了一些程序代碼,所以我不明白爲什麼它不應該與編程有關。我錯過了什麼嗎?無論如何,如果你仍然覺得它不是編程相關的,你可以嘗試在[dba.se](http://dba.stackexchange.com/)中發佈它。 – 2012-07-31 15:18:17