AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Grosse Datenmengen in SQL einfügen - Tuning?
Thema durchsuchen
Ansicht
Themen-Optionen

Grosse Datenmengen in SQL einfügen - Tuning?

Ein Thema von Joerginger · begonnen am 10. Jun 2013 · letzter Beitrag vom 12. Jun 2013
Antwort Antwort
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 11. Jun 2013, 14:38
Für die Interessierten: Hab BULK ausprobiert, der glatte Wahnsinn...

Lesen der Positionsdatei und Ausgeben der Sätze (nur die Sinnvollen, ohne Umwandlungen) dauert ca. 5 Minuten. Import via BULK, naja, 10 Sekunden? Wenn überhaupt. Demgegenüber waren's vorher ca. 7 Stunden...

So, ab an das XML-Schreiben...

GLG, Erwin
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 11. Jun 2013, 17:36
Ähm, jetzt aber nicht die Daten in XML umwandeln, sondern eine Format-Datei in XML erstellen, die den Aufbau der Textdatei beschreibt.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 11. Jun 2013, 19:18
Thank you, Sir (Rufo)

I was about to mention that.
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 11. Jun 2013, 21:58
JoJo, mein Fehler, hab beim ersten Mal drüberlesen gedacht: Geil, XML und gut ist. Aaaaber, nach intensiver Lektüre auf der MSDN-Seite hab ich eben folgendes gezimmert:

TEXTDatei lesen (und die leeren / unnötigen Sätze filtern)
Ergebnis in Textdatei - die hat nur 'sinnvollen' Inhalt, ist fixedlength
Aus meinem Array mit Beginn / Länge und Feldname ein XML für fixedLength ausgeben (Der Import klappt ohne dass ich den DS auch nur 1 x angreifen muss...)
SQL Table droppen
SQL Table creatern
Table mittels Bulk füllen...

Hopsassa! Klappt sensationell... Und da ich alles Parametriert habe und quasi nur über eine einzige Dateinummer zugreife klappts mit egal welcher Table

GLG, Erwin
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#5

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 12. Jun 2013, 07:57
TEXTDatei lesen (und die leeren / unnötigen Sätze filtern)
Könnte in SQL schneller gehen.
[QUOTEUnd da ich alles parametriert habe [/QUOTE] Einmal will ich loswerden, was ich mal gelernt habe
Parametrisieren: Das Ausstatten mit Parametern.
Parametrieren: Das Belegen der Parameter mit Werten.

Du hast also dein Verfahren parametrisiert, damit Du es im Anwendungsfall mit den entsprechenden Werten parametrieren kannst.

Ich komm sonst nicht so als Klugscheißer daher (psst!), aber einmal darf man doch
  Mit Zitat antworten Zitat
Joerginger

Registriert seit: 22. Jan 2009
Ort: Wien
38 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: Grosse Datenmengen in SQL einfügen - Tuning?

  Alt 12. Jun 2013, 10:04
Zitat:
Könnte in SQL schneller gehen.
Jein. Die Verarbeitung 100%, aber dem SQL mal die BüroWARE-Logik zu erklären, warum manche Sätze leer sind, manche Sätze vom Programmierer für "andere" Zwecke mißbraucht wurden etc... Ich weiss warum was wo steht und in Delphi kann ich's gut abhandeln. Den SQL jetzt so zu erlernen dass ich schlafwandlerisch wie in Delphi fuhrwerken kann wird wahrscheinlich net sein. Abgesehen davon: Der gute Mann hat, da der Platz in 1024 Byte Positionssatz zu knapp wurde einfach eine 2te Datei drangehängt wo nochmal 1024 Bytes platz finden. D.h. ich muss die 1. Datei durchiterieren, wenn ich einen sinnvollen (Positions)Satz gefunden habe mit der aktuellen Satznummer als Index in der 2. Datei via Pervasive-Key suchen, das gelesene hinzufügen etc... You see Btw: Mit ca. 5 Minuten für die 2.6 Mio Sätze Grundabgleich kann ich aber 1000x leben... Wenn ich's im SQL mit allen Abfragen und Spielis auf 2 Minuten kriege: what 4? Die Jungs wissen wieviele Daten sie haben. 7 Stunden wäre arg gewesen, aber so...

Zitat:
Einmal will ich loswerden, was ich mal gelernt habe
Parametrisieren: Das Ausstatten mit Parametern.
Parametrieren: Das Belegen der Parameter mit Werten.
Danke (ernst gemeint), obschon ich ein recht eloquentes Kerlchen bin - das hab ich nicht gewusst...

Zitat:
Ich komm sonst nicht so als Klugscheißer daher (psst!), aber einmal darf man doch
Für diese Hilfe hast Du (fast) alle Rechte

GLG, Erwin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:59 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