![]() |
Datenbank: MS SQL Server • Version: 2000 SP4 • Zugriff über: ADO
Performante Möglichkeit für <= und >= gesucht
Hallo,
folgendes Problem: In unserem Programm gibt es u.a. eine Kundentabelle mit ca 20.000 Datensätzen und eine Routingtabelle mit 640 Zeilen. Nun soll anhand der Routingtabelle, in der Postleitzahlenbereiche und die zuständige Geschäftsstelle hinterlegt sind, für jeden Kunden anhand seiner PLZ die jeweils zuständige Geschäftsstelle ermittelt werden. Da bei der Verknüpfung der Tabellen über
SQL-Code:
bzw
Kunden.PLZ BETWEEN Routing.VonPLZ AND Routing.BisPLZ
SQL-Code:
das Ausführen der Abfrage jeweils ca 1 Minute dauert, wollte ich mal nachfragen, ob jemandem eine performantere Lösung für dieses Problem einfällt.
(Kunden.PLZ >= Routing.VonPLZ) AND (Kunden.PLZ <= Routing.BisPLZ)
|
Re: Performante Möglichkeit für <= und >= gesucht
Hallo Heiko,
liegt denn auf den PLZ-Feldern ein Index? Wenn nicht dürfte dies das Nadelöhr sein. |
Re: Performante Möglichkeit für <= und >= gesucht
Nein, auf den PLZ-Feldern liegen (noch) keine Indizes.
Da die Routingtabelle zwei PLZ-Felder enthält stellt sich dann noch die Frage, was besser ist: Für jedes Feld ein separater Index oder beide Felder in einen einzigen Index? |
Re: Performante Möglichkeit für <= und >= gesucht
Wenn du die between-Abfrage beschleunigen willst einen Index mit beiden Feldern
|
Re: Performante Möglichkeit für <= und >= gesucht
Hallo!
Oder wenn möglich, der Routingtabelle eine ID (inkl. (primär)schlüssel) spendieren und diese entsprechend in der Kundentabelle zuweisen. Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz