我有數據庫表,其中包含許多(70,000+)多邊形GEOGRAPHY
多邊形。 (這些多邊形是屬性地塊。)我們需要對聚合形狀(一個MULTIPOLYGON
)執行多次計算,其中包含所有這些地塊的地理聯合,例如「這些多邊形覆蓋的凸包的百分比「? (注意:這不像聽起來那麼簡單,重疊的包裹確實發生了,我們不希望對它們進行重複計數,所以我們不能簡單地將這些包裹的面積加起來。)計算多邊形地理聯盟的高效技巧
In爲了執行這些計算,我們希望生成一個表示所有多邊形的地理聯合的新形狀。基於答案this question,我想下面的查詢:
DECLARE @Shape GEOGRAPHY
SET @Shape = GEOGRAPHY::STGeomFromText('MULTIPOLYGON EMPTY', 4326)
SELECT @Shape = @Shape.STUnion(Shape)
FROM Parcel
但查詢需要永遠(60分和計數,到目前爲止,沒有答案了)。我想知道其他什麼技術可以想到哪些更有效。這個查詢不需要是實時查詢,但60+分鐘也不會起作用。
我的感覺是,這樣的優化是滿足這個請求是取g1∪g2,取這個結果∪g3,取* that * result∪g4等等。作爲一個測試,看看1,10和100行需要多長時間。如果它大致是線性的,我會說我的理論是有效的,我們將不得不欺騙引擎來有效地做到這一點。 –