Performance
pete
- programmiertechnik
0 Vinzenz Mai0 pete
0 Daniel Thoma
Hi zusammen, kleine Frage:
Das ziel ist, Daten aus einer Produktetabelle aus der Datenbank in folgendem Format anzuzeigen Bezeichung, Nr, *Text*
Was denkt ihr ist performanter? Wenn ich bereits im SQL Concats solange verschachtle, bis es bereits aus der Datenbank im richtigen Format geliefert wird, oder wenn ich (Java) vor der Anzeige auf dem GUI die Dinger aus der ObjektListe zusammensetze (Es werden mehrere angezeigt, also würde man das in einer for-schleife machen)
vielen dank für eure antworten
Hallo Pete,
leider habe ich Deine Problemstellung nicht verstanden.
Das ziel ist, Daten aus einer Produktetabelle aus der Datenbank in folgendem Format anzuzeigen Bezeichung, Nr, *Text*
Meinst Du eine kommaseparierte Liste?
Welche Bedeutung haben die Sternchen vor und nach dem Wort 'Text'?
Geht es Dir um diesen Text?
Was denkt ihr ist performanter? Wenn ich bereits im SQL Concats solange verschachtle, bis es bereits aus der Datenbank im richtigen Format geliefert wird,
Bezieht sich dieser Satz hier auf das Zusammensetzen von 'Text'?
oder wenn ich (Java) vor der Anzeige auf dem GUI die Dinger aus der ObjektListe zusammensetze (Es werden mehrere angezeigt, also würde man das in einer for-schleife machen)
Was für ObjektListe? Woher kommt diese?
Ohne nähere Informationen zu Deinem Problem kann man Dir höchstens mit Hellseherei helfen. Die besonders effizienten Glaskugeln mit dem SELFHTML-Logo sind jedoch leider noch nicht lieferbar.
Freundliche Grüße
Vinzenz
Hallo Pete,
leider habe ich Deine Problemstellung nicht verstanden.
Meinst Du eine kommaseparierte Liste?
Welche Bedeutung haben die Sternchen vor und nach dem Wort 'Text'?
Geht es Dir um diesen Text?
* sind Stringteile. in einer Liste soll auf dem gui der inhalt der tabelle angezeigt werdein in oben genanntem format:
Bezeichung, Nr, *Text*
Produkt, 01, *Aktion*
Test, 23, *Neulieferung*
die frage ist also
Bezieht sich dieser Satz hier auf das Zusammensetzen von 'Text'?
dieser satz meint, ist es besser, es direkt im sql zu machen, oder später, direkt vor der anzeige
Was für ObjektListe? Woher kommt diese?
na das resultset aus der db
Hallo Pete,
leider habe ich Deine Problemstellung nicht verstanden.
das gilt immer noch.
* sind Stringteile.
Bezieht sich dieser Satz hier auf das Zusammensetzen von 'Text'?
Was für ObjektListe? Woher kommt diese?
na das resultset aus der db
Darf ich Dich so verstehen:
Du hast insgesamt x+2 Spalten in Deiner Ergebnismenge, die Du "Objektliste" nennst. Davon nennst Du x "Stringteile". Du möchtest nun wissen, was performanter ist:
1. Möglichkeit:
x = 1, weil Du die Spalten mit dem Zeichenverkettungsoperator oder der Zeichenverkettungsfunktion, die Dir Dein Datenbankmanagementsystem (DBMS) bietet, miteinander verknüpfst
2. Möglichkeit:
x > 1. Du fragst die Spalten so ab, wie sie in der DB stehen und verknüpfst die Werte mittels Deiner API (also in Java).
Die Performance müsstest Du schlicht und einfach messen. Nein, ich kann Dir nicht sagen, was performanter ist.
Für mich persönlich gilt folgendes: wenn ich Daten nicht einzeln benötige, dann frage ich sie nicht einzeln ab, d.h. nutze die Funktionalität des DBMS mir genau das zurückzuliefern, was ich benötige.
Freundliche Grüße
Vinzenz
Hallo pete,
Wenn ich das richtig verstanden habe, hast Du die Möglichkeit, die einzelnen Datensätze gleich durch SQL in die entsprechende Darstellung zu bringen oder das mit Java zu tun.
Von der Performace dürfte das keinen nennenswerten Unterschied machen. Stringverknüpfung geht schnell. Du solltest also vielmehr überlegen, wo es geschickt ist, das zu tun.
Normalerweise ist es sinnvoll, Daten erstmal strukturiert zu lassen und erst im eigentlichen GUI-Teil einer Anwendung zu formatieren. So bald Du sie nämlich irgendwie verwurstelt hast, kannst Du sie nicht mehr vernünftig weiter verarbeiten.
Vielleicht willst Du ja irgendwann in der GUI alle Einträge mit einem bestimmten Nummernbereich farblich hervorheben. Spätestens dann wirst Du fluchen, dass Du das nicht im GUI-Code ändern kannst, sondern dass Du bis zur Datenbankabfrage runter musst.
Grüße
Daniel