Sql server Sql server空间索引存储过程性能优化

Sql server Sql server空间索引存储过程性能优化,sql-server,Sql Server,您好,我正在对我的一个存储过程进行性能调整,该存储过程包含update语句: UPDATE e SET LNG_PROP = GEOGRAPHY::STPointFromText(A.geom.STPointN(A.geom.STNumPoints()/2).ToString(), 4326).Long ,LAT_PROP = GEOGRAPHY::STPointFromText(A.geom.STPointN(A.geom.ST

您好,我正在对我的一个存储过程进行性能调整,该存储过程包含update语句:

UPDATE e
        SET
            LNG_PROP  = GEOGRAPHY::STPointFromText(A.geom.STPointN(A.geom.STNumPoints()/2).ToString(), 4326).Long
            ,LAT_PROP = GEOGRAPHY::STPointFromText(A.geom.STPointN(A.geom.STNumPoints()/2).ToString(), 4326).Lat
        FROM
            Exports.SpatialKey_MTG22 e           
            INNER JOIN dbo.Addresses A WITH (NOLOCK) ON  A.FullName = e.ADDR_STREET_PROP AND ((e.ADDR_NUMBER_PROP BETWEEN LFROMHN AND LTOHN OR e.ADDR_NUMBER_PROP BETWEEN RFROMHN AND RTOHN) OR (e.ADDR_NUMBER_PROP BETWEEN LTOHN AND LFROMHN OR e.ADDR_NUMBER_PROP BETWEEN RTOHN AND RFROMHN))
            INNER JOIN dbo.ZipCodes Z WITH (NOLOCK) ON Z.ZipCode = A.ZipL OR Z.ZipCode = A.ZipR AND (Z.ZipCode = e.IC_PROP_ZIP OR (Z.State = e.IC_PROP_STATE AND Z.City = e.IC_PROP_CITY))
我试图修改:

Select                     e.SpatialKey_MTG22_ID,e.AC_ACCOUNT_NAME,e.IC_PROP_ADDR_1,e.ADDR_NUMBER_PROP,e.ADDR_STREET_PROP,e.IC_PROP_CITY,e.IC_PROP_STATE,e.IC_PROP_ZIP
                     ,[LNG_PROP]  = GEOGRAPHY::STPointFromText(e.geom.STPointN(e.geom.STNumPoints()/2).ToString(), 4326).Long
                     ,[LAT_PROP] = GEOGRAPHY::STPointFromText(e.geom.STPointN(e.geom.STNumPoints()/2).ToString(), 4326).Lat
          FROM
       (
              SELECT e.*,A.geom,A.ZIPL,A.ZIPR
              FROM
                     Exports.SpatialKey_MTG22 e               
                     INNER JOIN dbo.Addresses A WITH (NOLOCK) 
                           ON  A.FullName = e.ADDR_STREET_PROP 
           WHERE
                     ((e.ADDR_NUMBER_PROP BETWEEN LFROMHN AND LTOHN OR e.ADDR_NUMBER_PROP BETWEEN RFROMHN AND RTOHN) 
                                         OR (e.ADDR_NUMBER_PROP BETWEEN LTOHN AND LFROMHN OR e.ADDR_NUMBER_PROP BETWEEN RTOHN AND RFROMHN))
       ) e
INNER JOIN dbo.ZipCodes Z WITH (NOLOCK) 
                           ON     (Z.ZipCode = e.ZipL OR Z.ZipCode = e.ZipR) 
                                  AND (Z.ZipCode = e.IC_PROP_ZIP OR (Z.State = e.IC_PROP_STATE AND Z.City = e.IC_PROP_CITY))
我在地址表中有2600万条记录 它仍然需要1个多小时才能运行。
任何人都可以帮助我进行哪些更改以提高性能。

请用您的标签(删除标签)说明您使用的是SQL Server还是MySQL Server。SQL Server和MySQL是不同的产品。MySQL不引用您的SQL,SQL Server并不意味着恰好在服务器上运行的SQL。您知道表中有哪些索引吗?您是否试图一次更新2600万行?对于事务日志来说,这需要处理很多事情。你能批量更新吗?这本身可能会有所帮助。