AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Performance verbessern
Thema durchsuchen
Ansicht
Themen-Optionen

Performance verbessern

Ein Thema von Luncustaf · begonnen am 8. Dez 2006 · letzter Beitrag vom 7. Jan 2007
Antwort Antwort
Seite 4 von 9   « Erste     234 56     Letzte »    
Luncustaf

Registriert seit: 31. Jan 2003
80 Beiträge
 
Delphi 6 Enterprise
 
#31

Re: Performance verbessern

  Alt 10. Dez 2006, 19:21
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ß
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#32

Re: Performance verbessern

  Alt 10. Dez 2006, 19:25
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#33

Re: Performance verbessern

  Alt 10. Dez 2006, 19:28
Sollte sicher count(*) as anzahl heißen.
Aber ich hoffe das kategorie ein Fremdschlüssel ist
Markus Kinzler
  Mit Zitat antworten Zitat
Luncustaf

Registriert seit: 31. Jan 2003
80 Beiträge
 
Delphi 6 Enterprise
 
#34

Re: Performance verbessern

  Alt 10. Dez 2006, 19:30
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#35

Re: Performance verbessern

  Alt 10. Dez 2006, 19:31
Geb noch die Typen an und was PK und FK ist.
Markus Kinzler
  Mit Zitat antworten Zitat
Luncustaf

Registriert seit: 31. Jan 2003
80 Beiträge
 
Delphi 6 Enterprise
 
#36

Re: Performance verbessern

  Alt 10. Dez 2006, 19:32
was meinst du mit PK und FK und den Typen?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#37

Re: Performance verbessern

  Alt 10. Dez 2006, 19:34
Du solltest dir angewöhnen mit IDs zuarbeiten.

Ich schau mir das jetzt nochmal genauer an...
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#38

Re: Performance verbessern

  Alt 10. Dez 2006, 19:55
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
  Mit Zitat antworten Zitat
Luncustaf

Registriert seit: 31. Jan 2003
80 Beiträge
 
Delphi 6 Enterprise
 
#39

Re: Performance verbessern

  Alt 10. Dez 2006, 20:02
hi,

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

SQL-Code:
(SELECT kategorie, COUNT(DISTINCT name) anzahl
           FROM rezepte
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#40

Re: Performance verbessern

  Alt 10. Dez 2006, 20:04
as anzahl Ich würde aber einen künstlichen Schlüssel ID o.ä. anlegen und diesen als FK verwenden.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 9   « Erste     234 56     Letzte »    


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 07:52 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