Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
konsti3000
Starting Member
1 Post |
Posted - 2011-02-08 : 17:03:41
|
Guten Tag!Habe eine Datenbank mit 2.6 Millionen ortschaften und deren Koordinaten von der Ganzen Welt, nun möchte ich in einer Suche ermöglichen alle Benutzer anzuzeigen die in einem gewissen umkreis sind. Also jede Ortschaft besitz eine ID die jedem Benutzer zugeordnet ist und so kann man dann die am nahest gelegenen User anzeigen.Aber die Distanz berechnung dauert auf meinem Atom 1ghz 18 sek und mit koordinaten einschräkung (zb. "and lat<10 and lng>200") 7sek und ich möchte eine Seite im millisekunden bereich natürlich auf einem schnellen server. Nun habe ich überlegt von jedem einzelnen ort die in diesem Umkreis sind, die Ids durch komma getrennt (oder durch einen punkt bei bereichen) in einer anderen Tabelle zu speichern und Gzip komprimieren. Nur das Problem, dass die SQL agfrage zb."select id from user where locid=4545 or locid=9934 or (locid<344 and locid>540) or locid=234" usw, mehere tausend zeilen lang, das währe auch etwas bedenklich wenn die SQL query in den Megabyte bereich geht.Die Usertabelle im kommagewühle suchen zu lassen kommt auch nicht in frage, da die usertabelle ja auch in den milliionenbereich gehen könnte und jeder einzelne Eintrag durchsucht werden müsste.Nun bleibt nur noch die möglichkeit die Tabelle zu joinen und alle 2.6 Millionen Diatanzen zu berechnen, vielleicht eine Memory tabelle nehmen, geht es dann schnell? oder was gibt es für möglichkeiten?vielen dank!Good day! A data base with 2,6 million localities and their coordinates of the whole world, now would like I have in a search to make all users possible to indicate in a certain periphery am. Thus each locality possession an ID each user is assigned and can one then to approaches convenient user in such a way to indicate. But the distance computation takes 18 sec. on my atom 1ghz and with coordinates einschräkung (e.g. " and lat200") 7sek and I would like a side within milliseconds the range naturally on a fast server. Now I have of each individual place in this periphery am considered, which compress Ids by comma separately (or by one point with ranges) in another table to store and Gzip. Only the problem that the SQL agfrage zb." SELECT ID from user where locid=4545 or locid=9934 or (locid540) or locid=234" etc., mehere thousand lines long, which lasts also somewhat precariously if the SQL query into the megabyte range goes. The user table in kommagewühle search to let is not also applicable, since the user table could go also into the milli ion range and each individual entry would have to be scanned. Now only does the possibility the table remain joinen and compute all 2,6 million dia. dancing, perhaps to MEMORY a table take, does go it then fast? or which gives it for possibilities? thank you!www.konsti.tk |
|
|
|
|
|
|