Comment calculer la distance entre les coordonnées EFFICACEMENT dans Oracle

J'ai une grande base de données Oracle ( 720,000 enregistrements aprox) où chaque enregistrement possède ses propres coordonnées géographiques (lat & gnl) et j'ai besoin de sélectionner uniquement les enregistrements qui sont à une certaine distance d'un point à l'intérieur d'un rayon spécifique).

Actuellement, j'ai implémenté une fonction de distance (basé sur haversine) que j'ai trouvé dans un oracle forum, mais parce que la base de données est un peu grand, il passe environ 50 secondes pour sélectionner.

Toute recomendations sur la façon de faire thi efficacement?. Je sais qu'il y est une extension appelée oracle spatial & localisateur mais je ne sais pas si je peux l'acheter ou même comment cela fonctionne. Merci beaucoup à l'avance. En ce qui concerne meilleur

OriginalL'auteur Fgblanch | 2009-10-19