AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Suche optimale Programmieroberfläche: Delphi, .NET, PHP,...
Thema durchsuchen
Ansicht
Themen-Optionen

Suche optimale Programmieroberfläche: Delphi, .NET, PHP,...

Ein Thema von Silk · begonnen am 27. Dez 2006 · letzter Beitrag vom 28. Dez 2006
Antwort Antwort
Silk

Registriert seit: 14. Sep 2006
Ort: Torgau
12 Beiträge
 
#1

Suche optimale Programmieroberfläche: Delphi, .NET, PHP,...

  Alt 27. Dez 2006, 18:30
Hallo,

ich arbeite täglich mit sehr großen Textdateien (ca.500MB ASCII ... >1.000.000 Zeilen).
Das Prinzip ist immer das gleiche:
- Textdatei in MySQL DB einlesen (>1.000.000 Zeilen, Spalten mit "|" getrennt)
- Referenz (ebenfalls Textdatei) in MySQL DB einlesen (>1.000.000 Zeilen)
- beim Einlesen jeweils "on-the-fly" bestimmte Spalten anpassen/generieren
- beide Tabellen vergleichen
- unterschiedliche Datensätze (teilweise nur 10-100DS) in ein bestimmtes Textformat bringen und speichern


Z.Z. arbeite ich mit XAMPP (PHP, MySQL). Ein Abgleich wie oben beschrieben dauert ca. 40 Minuten auf einem Server mit
DualCore Prozessor und 4GB RAM.

Der Internet-Explorer als Bedienoberfläche ist ziemlich unpraktisch. Die Zeit könnte auch kürzer sein.

Ich würde gern auf ein anderes System "umschwenken". Ich programmiere privat in Delphi 2005 PE. Allerdings nicht in solchen dimensionen.

Welches System könnte für solche Zwecke optimal sein? Also Text auslesen, Text bearbeiten, in DB schreiben, DB auswerten und Textdatei generieren.

Was ist einigermaßen zukunftssicher und schnell (.NET?))

Vielen Dank!
  Mit Zitat antworten Zitat
Daniel G
(Gast)

n/a Beiträge
 
#2

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 18:36
Imho ist für alles, was Datenbanken betrifft, Delphi immer noch die beste Welt Wahl...

//Edit: Was hab' ich denn da geschrieben?
  Mit Zitat antworten Zitat
Silk

Registriert seit: 14. Sep 2006
Ort: Torgau
12 Beiträge
 
#3

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 19:39
Danke für die schnelle Antwort.

Habe gerade mal 500.000 DS (a 5 Spalten Text und 1x ID mit autoincrement) in ein und dieselbe DB eingelesen (nacheinander!).
Dabei waren die Zeiten ähnlich.

Jetzt will ich die Verarbeitung von Textzeilen testen. Leider gibt es in Delphi nicht so eine schöne Lösung wie die "explode-Funktion" in PHP

Wenn ich auf Delphi umstellen will, was für eine Version sollte man nehmen, um nächstes Jahr immer noch damit arbeiten zu können?
Es gibt ja allein von Delphi fast unendliche Versionen (TurboDelphi, Delphi2005 PE, Delphi 7,....).

Was ist mit .NET oder C#, davon hört man immer öfter?

Ist TurboDelphi wirklich kostenfrei?
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 20:11
Zitat von Silk:
Leider gibt es in Delphi nicht so eine schöne Lösung wie die "explode-Funktion" in PHP
Es kommt darauf an, was du vor hast. Wenn du nur eine Textdatei mit Zeilenumbrüchen einlesen willst, geht das mit eine TStringList sehr einfach. Und wenn du unbedingt eine Explode-Funktion benötigst, dann musst du nur die Suchfunktion in diesem Forum bemühen.

Zitat:
Ist TurboDelphi wirklich kostenfrei?
Turbo Delphi Explorer ist kostenlos. Für Turbo Delphi Professional musst du Geld hinlegen.
  Mit Zitat antworten Zitat
Benutzerbild von Sko
Sko

Registriert seit: 11. Sep 2005
327 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 20:22
Zitat von Silk:
... Leider gibt es in Delphi nicht so eine schöne Lösung wie die "explode-Funktion" in PHP ...
jbg hat eine Explode-(und Implode)-Funktion geschrieben: [klick]
MfG Sko
Zitat von Phoenix:
[OT]Phoenix guckt in die Glaskugel, zuckt mit den Flügelspitzen, krächzt etwas von wegen 'Boden' und 'Scherben' und schubbst die Kugel in Richtung Tischkante.[/OT]
Rockbox
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 20:28
Zitat von jbg:
Zitat von Silk:
Leider gibt es in Delphi nicht so eine schöne Lösung wie die "explode-Funktion" in PHP
Es kommt darauf an, was du vor hast. Wenn du nur eine Textdatei mit Zeilenumbrüchen einlesen willst, geht das mit eine TStringList sehr einfach.
Ein glück hat er 4 GB Ram sonst wäre der Rechner nur mit Swappen beschäftigt.


Ich denke mal eher das hier höchstwahrscheinlich die Datenbank das bremsende Element ist. Hast Du schon folgendes gemacht:

- Verwendung von Prepared Statements und Parametern?
- Keine Transkationstabellentyp verwenden (z.B. InnoDB)
- Falls möglich (neue MySQL-Version) Verwendung von Stored Procedures.
- Wenn keine Abhänigkeiten der Datensätze untereinander vorhanden sind: Threads verwendet?

Für die "pumpende" Anwendung ist es egal ob sie unter .NET, Win32 oder Java auf die Datenbank wartet.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Silk

Registriert seit: 14. Sep 2006
Ort: Torgau
12 Beiträge
 
#7

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 20:55
...werde demnächst die Performance zw. den beiden Explode-Funktionen vergleichen.

Ich denke auch, dass die DB der Flaschenhals ist.
Allerdings werde ich trotzdem auf Delphi (oder ähnliches) umsteigen, da mir wie gesagt die Sache mit dem InternetExplorer auf Dauer nicht gefällt.

Zitat:
- Verwendung von Prepared Statements und Parametern?
- Keine Transkationstabellentyp verwenden (z.B. InnoDB)
- Falls möglich (neue MySQL-Version) Verwendung von Stored Procedures.
- Wenn keine Abhänigkeiten der Datensätze untereinander vorhanden sind: Threads verwendet?
- zu Prepared Statements und Parametern muß ich mich informieren -> noch nie gehört
- ich verwende MyISAM Tabellen
- Stored Procedures -> das gleiche wie bei Punkt 1
- Threads habe ich noch nicht verwendet, aber da bin ich gerade dabei
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 27. Dez 2006, 20:59
Zitat von Silk:
...werde demnächst die Performance zw. den beiden Explode-Funktionen vergleichen.
Wird vermutlich zu vernachlässigen sein ...

Zitat von Silk:
Allerdings werde ich trotzdem auf Delphi (oder ähnliches) umsteigen, da mir wie gesagt die Sache mit dem InternetExplorer auf Dauer nicht gefällt.
Komisch Und das in Zeiten indene man mit AJAX die tollsten Webseiten zabert.

Zitat von Silk:
Zitat:
- Verwendung von Prepared Statements und Parametern?
- Keine Transkationstabellentyp verwenden (z.B. InnoDB)
- Falls möglich (neue MySQL-Version) Verwendung von Stored Procedures.
- Wenn keine Abhänigkeiten der Datensätze untereinander vorhanden sind: Threads verwendet?
- zu Prepared Statements und Parametern muß ich mich informieren -> noch nie gehört
- ich verwende MyISAM Tabellen
- Stored Procedures -> das gleiche wie bei Punkt 1
- Threads habe ich noch nicht verwendet, aber da bin ich gerade dabei
[/quote]
Dann machmal (Forensuche ist hier sehr hilfreich). Ich denke wenn du die Punkte befolgst holst du noch einiges raus.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Silk

Registriert seit: 14. Sep 2006
Ort: Torgau
12 Beiträge
 
#9

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 28. Dez 2006, 12:50
Prepared Statements klingen im ersten Augenblick nicht schlecht, aber wenn ich sie bei meinen 500.000 Inserts anwende, dann benötige ich dieselbe Zeit

Ich benutze PDO unter PHP als Test.

Kann es sein, dass es nur etwas bei SELECTs bringt? Im Internet gibt es aber auch viele Beispiele auf INSERTs.

Was mich auch in der Theorie überzeugt, aber nicht in der Praxis, sind die Transaktionen.
Also das, dass die 500.000 Insert-Befehle auf einmal nach der Schleife an die DB geschickt werden können und nicht jedesmal neu nach einem der 500.000 Querys ("beginTransaction" vor der Schleife und "Commit" danach). Habe ich das falsch verstanden?

Zu den "Stored Procedures": Macht das Sinn, wenn man eh lokal auf dem DB-Server arbeitet und so keine Netzlast erzeugt?

Ich habe folgenden PHP-Code verwendet:

<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);

$dbh->beginTransaction();
for ($i=0;$i<500000;$i++) {
$name = 'one';
$value = 1;
$stmt->execute();
}
$dbh->commit();

?>
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Suche optimale Programmieroberfläche: Delphi, .NET, PHP,

  Alt 28. Dez 2006, 19:59
Zitat von Silk:
Prepared Statements klingen im ersten Augenblick nicht schlecht, aber wenn ich sie bei meinen 500.000 Inserts anwende, dann benötige ich dieselbe Zeit
Komisch ...

Zitat von Silk:
Kann es sein, dass es nur etwas bei SELECTs bringt? Im Internet gibt es aber auch viele Beispiele auf INSERTs.
Sollte auch bei Inserts was bringen, da nur einmal der Executen-Plan auf DB-Seite aufgebaut werden muss.

Zitat von Silk:
Was mich auch in der Theorie überzeugt, aber nicht in der Praxis, sind die Transaktionen.
Also das, dass die 500.000 Insert-Befehle auf einmal nach der Schleife an die DB geschickt werden können und nicht jedesmal neu nach einem der 500.000 Querys ("beginTransaction" vor der Schleife und "Commit" danach). Habe ich das falsch verstanden?
Ja. Wenn du mit MyISAM einen Tabellentyp verwendest der keine Transaktionen unterstützt ist das egal.

Zitat von Silk:
Zu den "Stored Procedures": Macht das Sinn, wenn man eh lokal auf dem DB-Server arbeitet und so keine Netzlast erzeugt?
Der vorteil von SP's ist das der Executen-Plan schon vorliegt und auch keine Recordsets aufgebaut werden müssen (Ok, bei Inserts egal).


Zitat von Silk:
Ich habe folgenden PHP-Code verwendet:
PHP sagt mir nicht viel aber Code schaut gut aus.
Windows Vista - Eine neue Erfahrung in Fehlern.
  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 04:54 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz