РЕДАКТИРОВАТЬ После исследования ответ с функцией Haversine - это маршрут, который я бы выбрал ... он не такой интенсивный, как функция, используемая нашей БД (которая будет исправлена:))
Вы должны , а не вычислять расстояния каждый раз, это тяжелый расчет от длинного / широты до длинного / широты, и если вы делаете это более одного раза, это не нужно.
При этом я не уверен, почему вы уже списали вариант №2. Мы на самом деле делаем что-то похожее на это. Возможно, меня смущают цифры, но то, о чем вы говорите, не должно вызывать у SQL2k ничего.
Даже если вы вычислите в автономном режиме расстояние от zip до zip в США, строк будет всего ~ 2 млрд. Да, это много, но оно очень статично, может быть повреждено, если оно медленное и т. Д.