Im MS SQL Server新增功能。但已經有一個問題。
我有一個查詢:如何加速SQL查詢
with by_segment as (
SELECT
Road.Road_ID,
GEOMETRY::STGeomFromText(Track.Track.STAsText(),4326) as the_geom,
row_number() over (partition by road_id order by Segment_Id) as [rn],
count(*) over (partition by road_id) as [c]
FROM dbo.Road
LEFT JOIN Segment_ID ON Road.Road_ID = Segment_ID.Road_ID
LEFT JOIN Track ON Segment_ID.Segment_ID = Track.Segment_ID
),
roads_by_segment as (
select
road_id,
the_geom,
[rn],
[c]
from by_segment
where [rn] = 1
union all
select
[a].road_id,
[a].the_geom.STUnion([b].the_geom),
[b].[rn],
[b].[c]
from by_segment as [a]
inner join roads_by_segment as [b]
on [a].segment_id = b.[segment_id]
and [a].[rn] = [b].[rn]+1
)
select * from roads_by_segment where [rn] = [c]
其作品,但時間對其採取了很多東西。我的意思是當我按執行查詢我得到的結果在2秒內,但查詢仍然工作大約5分鐘。
我覺得它太多選擇在這裏。有選擇需要功能geometry1.STUnion(geometry2)
。
它可能從這個怪物查詢功能?而使用函數可以使這個查詢更快?
UPDATE
我要創建視圖來發布它利用Geoserver。但是我有一個幾何問題。我有一段線段的幾何圖形。
我想我會談論表結構。我有3個表:
軌道
Segment_ID(character),
Track (geometry)
SEGMENT_ID
Segment_ID(character),
Road_ID(character)
路
Road_ID(character),
Road_Name(character)
而且在查詢結果我eant得到Road.Name,Road.Road_ID和所有分段連接在這條道路的單個特徵中。
UPDATE
我看到一些有趣的事情。在表道我有76行。當我按執行查詢我得到75行,5分鐘後,我得到所有76行。所以在上一次迭代中存在問題。什麼可能是錯誤的?
UPDATE
執行計劃http://sd.reborn.ru/download.php?fid=f52cb6c6146fdb993c1375f8b1da4787
好的。本網站不是「爲我工作」網站。具體來說,你已經採取了我在這裏爲你寫的查詢(http://stackoverflow.com/questions/14943346/how-to-connect-lines-in-single-feature-in-sql-server/14949585),把它作爲你自己的,並且現在要求人們調整它。你有什麼嘗試過自己?只有你有權訪問你的實際數據,所以在這裏投入的任何努力都將主要是投機性的。你看過查詢計劃嗎?這是什麼意思?告訴我們你試過了什麼,有沒有工作,我們可以幫助你。 – 2013-02-22 12:54:03