Delphi-PRAXiS
Seite 4 von 9   « Erste     234 56     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Performance verbessern (https://www.delphipraxis.net/82215-performance-verbessern.html)

Luncustaf 10. Dez 2006 18:21

Re: Performance verbessern
 
hmm ich benutze mysqlfront - damit geht es auch bekomme aber eine fehlermeldung das etwas bei der syntax nicht stimmt und zwar hier

Delphi-Quellcode:
(SELECT kategorie AS name, COUNT(*) anzahl
           FROM rezepte
gruß

omata 10. Dez 2006 18:25

Re: Performance verbessern
 
Das hatte ich befürchtet, deshalb wollte ich mehr über deine Datenbankstruktur wissen.

Welche Tabellen, Welche Spalten in Tabellen, Welche Verknüpfungen zwischen den Tabellen...

Gruss
Thorsten

mkinzler 10. Dez 2006 18:28

Re: Performance verbessern
 
Sollte sicher
SQL-Code:
count(*) as anzahl
heißen.
Aber ich hoffe das kategorie ein Fremdschlüssel ist

Luncustaf 10. Dez 2006 18:30

Re: Performance verbessern
 
Delphi-Quellcode:
kategorie
   name //namen der kategorien

unterkat
   kat  //hauptkategorie -> aus tabelle kategorie
   unter //name der unterkategorie

rezepte
   name   //name des rezepts
   unterkat //dazu gehörige unterkategorie -> aus tabelle unterkat
   kategorie //hauptkategorie -> aus tabelle kategorie

zutaten
   kategorie //hauptkategorie -> aus tabelle kategorie
   unterkat //dazu gehörige unterkategorie -> aus tabelle unterkat
   name     //name des rezepts
   zutat    //name der zutat
   menge    //menge der zutat
   mass     //maß der zutat
   zubereitung //zubereitung als BLOB
hmm das sind die 4 tabellen mit den einzelnen spalten - beziehungen bestehen so eigentlich keine - ich speicher halt jedesmal den namen der kategorie und unterkategorie mit und frage danach ab.
aber fremdschlüssel usw hab ich nicht eingebaut da ich nicht mehr 100% wusste wie das ging.
also im endeffekt steht jede tabelle für sich.
die einzelnen felder sind alles charakter felder.

mkinzler 10. Dez 2006 18:31

Re: Performance verbessern
 
Geb noch die Typen an und was PK und FK ist.

Luncustaf 10. Dez 2006 18:32

Re: Performance verbessern
 
was meinst du mit PK und FK und den Typen?

omata 10. Dez 2006 18:34

Re: Performance verbessern
 
Du solltest dir angewöhnen mit IDs zuarbeiten.

Ich schau mir das jetzt nochmal genauer an...

omata 10. Dez 2006 18:55

Re: Performance verbessern
 
So, hier mal ein neuer Versuch...

SQL-Code:
SELECT k.name AS kategorie, NULL AS unter, NULL AS rezept, ka.anzahl, '1' typ
FROM kategorie k
LEFT JOIN (SELECT kategorie, COUNT(DISTINCT name) anzahl
           FROM rezepte
           GROUP BY kategorie, unterkat) ka
  ON k.name = ka.kategorie

UNION

SELECT k.name AS kategorie, uk.unter, NULL AS rezept, ka.anzahl, '2' typ
FROM kategorie k
INNER JOIN unterkat uk
  ON k.name = uk.kat
LEFT JOIN (SELECT kategorie, unterkat, COUNT(*) anzahl
           FROM rezepte
           GROUP BY kategorie, unterkat) ka
  ON    k.name = ka.kategorie
     AND uk.unter = ka.unterkat

UNION

SELECT kategorie, unterkat, r.name, NULL AS anzahl, '3' typ
FROM rezepte r

ORDER BY kategorie, unter, rezept, typ
Gruss
Thorsten

Luncustaf 10. Dez 2006 19:02

Re: Performance verbessern
 
hi,

danke für deine mühen, wieder ein fehler an der gleichen stelle

SQL-Code:
(SELECT kategorie, COUNT(DISTINCT name) anzahl
           FROM rezepte

mkinzler 10. Dez 2006 19:04

Re: Performance verbessern
 
SQL-Code:
as anzahl
Ich würde aber einen künstlichen Schlüssel ID o.ä. anlegen und diesen als FK verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:02 Uhr.
Seite 4 von 9   « Erste     234 56     Letzte »    

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