![]() |
|
große Datenmengen (Array) schnell in SQL schreiben - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: große Datenmengen (Array) schnell in SQL schreiben (/Thread-grosse-Datenmengen-Array-schnell-in-SQL-schreiben) |
große Datenmengen (Array) schnell in SQL schreiben - logan - 20.01.2026 13:21 Hallo zusammen, Nach einer Weg-Kraftmessung habe ich eine große Datenmenge (500.000 Zeilen, 4 Spalten). Diese speichere ich bisher in eine tdms Datei (sind dann ca. 6MB groß). Jetzt soll das Ganze in SQL (Microsoft SQL Server Management Studio) abgespeichert werden. Wenn ich einzelne Zeilen speichere (Insert) dann ist das kein Problem und funktioniert. Dies dauert allerdings viel zu lang. (für 1000 Zeilen ca. 9 sek... ich habe aber 500.000 Zeilen). Kann mir wer behilflich sein, wie ich das angehe, bzw. mit welchen Bausteinen ich das komplette riesige Array wegspeichern kann (in einem Wisch bzw. in mehreren Paketen). Habe irgendwas schon von KI gelesen wegen bulk insert. Kam damit aber nicht ganz klar. LV2018 hätte ich. Danke VG RE: große Datenmengen (Array) schnell in SQL schreiben - TpunktN - 21.01.2026 11:50 Hallo logan, Ich habe mal getestet bei uns lese ich zwar nur, aber ich komme mit dem Befehl SELECT * FROM tbl_Kalibrierung WHERE Prüfer = ('Ich') auf ca 6000 Werte in 210ms. Das ist ein richtiger SQL Server. Leider kann ich eine .accdb-Datei aktuell nicht lesen (Access 2016 und LabVIEW 2025 sind inkompatibel), dort merke ich aber mit Access selbst, das die Daten richtig arsch lahm sind und ich für eine Abfrage fast 20s brauche. Wir sind dabei die DB im Hintergrund zu optimieren, aber das könnte evtl auch ein Grund für dein Problem sein. Ein Bulk schreiben mache ich auch über mehrmaliges aufrufen von: insert into %s (%s) values (%s) das erste %s ist der Tabellenname, das erste in (%s) sind die Spaltennamen und am ende die Werte. Vielleicht hilft dir etwas davon, ich weiß ja nicht wie du das machst Timo RE: große Datenmengen (Array) schnell in SQL schreiben - th13 - 21.01.2026 13:06 MS SQL hat einen Bulk Insert, um mehrere Datensätze auf einmal zu importieren: Code: BULK INSERT [dbo].[TargetTable] 1) öffne deine TDMS Datei in Excel (TDM Excel Add-In for Microsoft Excel) 2) speichere die Daten als csv-Datei 3) rufe obige SQL-Anweisung im Management Studio auf Wenn du direkt nach der Messung deine Daten in MS SQL speichern willst: 1) speichere deine Arrays als csv-Datei 2) schicke obige SQL-Anweisung an die Datenbank mit dem Database Connectivity Toolkit Evtl. unterstützt das Database Connectivity Toolkit ja auch einen Bulk Insert, bei dem du direkt deine Arrays übergeben kann. Aber dazu kenne ich das Tool zu wenig. RE: große Datenmengen (Array) schnell in SQL schreiben - Martin.Henz - 23.01.2026 07:22 Der MS SQL Server ist bei mir nicht dafür bekannt, dass er besonders schnell sei. Eher das Gegenteil. Das macht es nicht einfacher. Ein Datenbankwechsel könnte hier zusätzlich viel helfen - sofern das eine Option ist. Wenn du so viele Zeilen in eine Tabelle schreiben willst, dann ist es keine gute Idee, die Zeilen einzeln an die Datenbank zu übergeben. Die Verwendung von DB Tools Insert Data.vi aus dem NI Databse Toolkit macht es noch schlimmer. Mit SQL können auch mehrere Zeilen mit einem INSERT Statement in die Datenbank übergeben werden. Siehe hierzu zum Beispiel https://www.w3schools.com/sql/sql_insert.asp und dort unter der Überschrift "Insert Multiple Rows". Damit könntest du die 500k Zeilen in größeren Blöcken in die Datenbank schreiben. RE: große Datenmengen (Array) schnell in SQL schreiben - logan - 04.02.2026 13:24 Hallo Leute, ![]() vielen Dank für eure Unterstützung. Firmenintern hat sich die Anforderung zwar inzwischen geändert, weshalb ich das nicht ganz anwenden kann, aber trotzdem merci VG |