Hallo,
ich bin auf der Suche nach der schnellsten Methode zwei Tabellen miteinander zu vergleich.
Tabelle A hat ca 360000 Datensätze. Tabelle B hat ca 1300 Datensätze.
Jetzt möchte ich jeden Datensatz aus Tabelle B mit jedem Datensatz aus Tabelle A vergleichen (verglichen werden 4 definierte Felder)
Wenn eine Übereinstimmung gefunden wurde wird die Id von Datensatz B und Datensatz A in eine dritte Tabelle geschrieben.
Versteht Ihr was ich vorhabe? Welche Programmiersprache ist dafür am besten geeignet (Geschwindigkeit)?
Ok.
Was gibt es sonst für Möglichkieten ausser eien SQL-Prozedur direkt aufm Server?
Was gibt es sonst für Möglichkieten ausser eien SQL-Prozedur direkt aufm Server?
Naja - ADO.NET in Verbindung mit einem C#-Programm, z.B.
Aber das beste wird wohl sein, du probierst das einfach mal aus und optimierst. Profiler existieren ja zu Haufe sowohl für .NET als auch für SQL.
Hallo zerberos,
Was gibt es sonst für Möglichkieten ausser eien SQL-Prozedur direkt aufm Server?
Du vergisst zu sagen wie momentan die Daten gespeichert sind.
Sind sie in einer XML-Datei wirst du wohl LINQ2XML verwenden.
In einer Datenbank kommst du um SQL nicht herum.
Kurz um gesagt kann ich den Vorredner nur Recht geben. Speichere irgendwie deine Daten in einen SQL Server. Dieser hat mehrere Importoptionen, sodass du ohne Probleme Dateien von Excel importieren kannst (falls die Spalten konsequent gehalten sind, sprich in der Spalte "Preis" sind nur Zahlenwerte)
Gruß
Michael
Was gibt es sonst für Möglichkieten ausser eien SQL-Prozedur direkt aufm Server?
Sofern die Datenquelle eine SQL-Datenbank ist: Naja, jegliche Vorgehensweise, die erstmal die ganzen Daten zum Client übertragen muss, wird performancetechnisch weit hinter eine SQL-Abfrage liegen.
Aber warum so viel Aufwand treiben? Der Vergleich ist doch mit einem einfachen Join gegessen und in die andere Tabelle kannst du mit einem Insert Into Select füllen.
Gruß,
dN!3L
Ich würde dir raten, einfach mit nem Miniprogramm eine SQL Abfrage dieser Art an den Server zu schicken:
INSERT INTO tabelle3(i1, id2) SELECT tabelle1.id, tabelle2.id FROM tabelle1, tabelle2 WHERE tabelle1.x1 = tabelle2.x1 AND tabelle1.x2 = tabelle2.x2 AND tabelle1.x3 = tabelle2.x3 AND tabelle1.x4 = tabelle2.x4
(das ganze sollte so zumindest für mysql funktionieren, sofern ich mich nicht vertan habe. Bei mssql sollte es genauso, oder ähnlich funktionieren
Hallo,
danke schonmal für eure Antworten.
Ich hab vielliecht noch nicht genug Info's geliefert. Die Daten werden in einer Oracle Datenbank liegen (Alle drei Tabellen)
habe von oracle eigendlich keinen schimmer, habe mich aber kurz ein wenig umgesehen, und mein Ansatz sollte dort doch auch funktionieren, oder lege ich da falsch?
Gruß pdelvo
habe von oracle eigendlich keinen schimmer, habe mich aber kurz ein wenig umgesehen, und mein Ansatz sollte dort doch auch funktionieren, oder lege ich da falsch?
Auch Oracle wird mit Sicherheit Subqueries unterstützen. Genaueres wird der Themenersteller sicher in der zuständigen Dokumentation finden.
Gruß
Michael