AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabelle optimieren???

Ein Thema von romber · begonnen am 14. Okt 2010 · letzter Beitrag vom 25. Okt 2010
Antwort Antwort
Seite 3 von 3     123   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#21

AW: Tabelle optimieren???

  Alt 19. Okt 2010, 17:46
Also Indexe auf Bit-Feldern sind relativ witzlos, weil ein Index darauf im Schnitt nur 50% ausfiltern kann. (aber ich sehe gerade, du hast keinen Index auf ein Bit-Feld gesetzt)

Ich würde noch die Reihenfolge der Felder f_ez_monat und f_ez_jahr tauschen und den Index darauf löschen und neu erzeugen.
Dann kann man z.B. auch folgende Abfrage ausführen:
SELECT * FROM SCHWACKE_TDATA WHERE f_ez_jahr <= 1980 Weil das Jahr dann am Anfang des zusammengesetzten Index steht, würde der SQL-Server den Index benützen, auch wenn der Monat nicht in der Abfrage enthalten ist.

Ansonsten würde ich den Datentyp "nvarchar" nach "varchar" und "ntext" nach "text" ändern.
Die Datentypen, die mit "n" beginnen sind Unicodefähig und brauchen doppelt so viel Platz, wie die nicht Unicodefähigen Stringtypen.
In deinem Fall kannst du den Platzbedarf erheblich (geschätzte 35%) verringern.
Und ich glaube nicht, dass in den Schwackedaten Zeichen ausserhalb von ASCII verwendet werden. (Ausser die Chinesen werden zum weltgrössten Autoproduzenten und geben ihren Modellen chinesische Namen...

PS:
Achte darauf, dass alle Stringfelder vor dem Speichern in die Tabelle mit Trim() bearbeitet wurden;
du möchtest ja keine unnötigen Leerzeichen in Millionenstückzahl in der Datenbank haben.
Andreas

Geändert von shmia (19. Okt 2010 um 17:50 Uhr)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#22

AW: Tabelle optimieren???

  Alt 19. Okt 2010, 22:40
Warum die Indizes selbst anlegen, wenn das die Datenbank viel besser kann?!

Du zeichnest mit dem Profiler dein Programm auf.
Dann lässt du die Profilerdaten vom Queryanalyser checken.
Dieser gibt dann Empfehlungen und erzeugt sogar dein ein SQL-Script mit den empfohlenen Indizies und Statistiken.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.166 Beiträge
 
Delphi 10 Seattle Professional
 
#23

AW: Tabelle optimieren???

  Alt 25. Okt 2010, 17:55
Vielen Dank für diese Tipps!

Nachdem ich alle ntext auf text geändert habe und die Reheinfolge für f_ez_monat und f_ez_jahr geändert habe, läufen die Anfrage nun so, wie ich mir vorgestellt habe.
Mit dem Profiler werde ich mich aber auch auseinandersetzen. Sehr interessant das alles.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 18:46 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