优化此地理位置更新查询?

时间:2017-04-05 17:49:59

标签: sql sql-server

以下查询会导致服务器上的负载非常繁重,并且目前每60秒运行一次。它查找表中没有纬度/经度数据的所有行,并根据每个行所代表的源和目标位置,根据城市和州查找纬度/经度。刚刚开始,我认为LTRIM / RTRIM功能可能会减慢速度,如果是这样,那么通过确保数据在途中被清理,这将是一个相当容易的补救措施。但邮政编码/地理数据库是巨大的,甚至是索引,事情都非常缓慢和CPU密集(完全有可能我没有正确创建索引)。任何建议都是受欢迎的 - 即使最好的方法是以某种方式限制每次执行查询的行数,以便稍微分散负载。

UPDATE
        T1

    SET
            T1.coordinatesChecked   = 1
        ,   T1.FromLatitude         = T2.Latitude
        ,   T1.FromLongitude        = T2.Longitude
        ,   T1.ToLatitude           = T3.Latitude
        ,   T1.ToLongitude          = T3.Longitude

    FROM
        LoadsAvail AS T1
            LEFT JOIN
        ZipCodes AS T2 ON LTRIM(RTRIM(T1.FromCity)) = T2.CityName AND LTRIM(RTRIM(T1.FromState)) = T2.ProvinceAbbr
            LEFT JOIN
        ZipCodes AS T3 ON LTRIM(RTRIM(T1.toCity)) = T3.CityName AND LTRIM(RTRIM(T1.toState)) = T3.ProvinceAbbr

    WHERE
        T1.coordinatesChecked = 0

0 个答案:

没有答案