Tengo una aplicación donde básicamente tengo una gran tabla (100 millones de registros) de información, con cada fila que contiene un valor lat/long.¿Las características de SQL Server 2008 Spatial Data son útiles para el mapeo de consultas?
Estoy constantemente consultando esta tabla para obtener todos los registros que se ajustan dentro de un radio alrededor de cierto punto. Por ejemplo, "todos los registros dentro de 5 millas de 39.89288, -104.919434"
Para esto, tengo un índice sobre las columnas Lat/Long, obtengo el "cuadrado delimitador" de puntos y luego descarto todos los puntos que quedan fuera del círculo en mi aplicación ASP.Net, ya que eso fue más rápido que hacer el cálculo circular en SQL Server.
NOTA: Estos son todos los datos sobre los EE. UU., Por lo que considero que la Tierra es plana para mis cálculos, que es lo suficientemente precisa para mis necesidades.
Ahora, el principal problema con el índice Lat/Long es que es "un cuadrado" de puntos, y como estoy tratando de encontrar "Lat entre x y y" y "Long between x and y", realmente no puedo usar el índice de manera super eficiente, como podría hacerlo si estuviese buscando "una línea" de puntos.
He estado leyendo sobre las características espaciales de SQL 2008, pero no he encontrado suficiente información concreta para saber si esto es útil para mí.
Entonces, la pregunta es: ¿SQL 2008 tiene algún tipo de índice diferente que hará que este tipo específico de consulta sea mucho más rápido que con SQL 2005?
¡Buena pregunta! He hecho algo muy parecido a lo que estás haciendo ahora en SQL2005, por lo que me interesaría saber qué se le ocurre a la gente –