Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#17

AW: Tool um Excel Daten in Db einzufügen

  Alt 15. Aug 2014, 07:14
Zum Thema SQL und "geht alles viel schneller"...
Es geht doch nicht um Spreadsheetfunktionen, sondern um den Import in bestehende Tabellen. Ich behaupte mal, das Typkonvertierungen ('May 27 Wed 15:23:56 GMT 2004' als DateTime), erstellen von FK-Beziehungen und sonstige Transformationen i.A. in SQL besser und vor allen Dingen schneller von statten gehen, als in EXCEL.

Ich habe das gerade die letzten Tage gemacht. So ein Import dauert schon ein paar Minuten und wenn ich die Millionen von Datensätzen in EXCEL erst konvertiert und dann über mehrere Versuche ins RDBMS importiert hätte, wäre ich jetzt noch nicht fertig.

Also erst -wupps- als Tabelle mit lauter 'varchar(max)' Spalten importiert, ein paar Indexe gesetzt, neue Spalten hinzugefügt, konvertiert und dann in die Zieltabellen transformiert. Und zwar jeweils in Transaktionen gekapselt:
Code:
begin transaction
-- do some stuff
select <stuff> into results from importedTable
update otherREsults set foo = bar from importedTable...
-- verify the results
select * from results
select * from otherResults
rollback transaction
Und dann, wenn die Verifizierung erfolgreich ist, aus dem 'rollback' ein 'commit', Skript nochmal laufen lassen, fertig.
Ich verwende jedes Werkzeug genau da, wo es am sinnvollsten/effektivsten ist. Wenn die Daten aufbereitet werden sollen, oder wenn ich Berechnungen vor dem Import vornehmen muss, würde ich vielleicht EXCEL einsetzen, das käme drauf an. Andererseits kann man mit SQL auch rechnen und Datensätze durchnummerieren, also wozu großartig mit EXCEL arbeiten? Ich bin auch nicht so versiert mit dem Teil, und wüsste jetzt gar nicht, wie ich eine Formal auf 2.5 Mio Zeilen anwenden soll, außer mit der Maus runterziehen (ächtz)

Aber bloß weil ich auf Vorschlaghammer stehe, heißt das ja nicht, das ich damit auch einen Nagel aus dem Holz ziehe. Also, kommt auf den Nagel an.
  Mit Zitat antworten Zitat