AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Tabelle optimieren???

Tabelle optimieren???

Ein Thema von romber · begonnen am 2. Dez 2008 · letzter Beitrag vom 4. Dez 2008
Antwort Antwort
romber

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

Tabelle optimieren???

  Alt 2. Dez 2008, 11:05
Datenbank: MS SQL Server 2005 • Zugriff über: ADO
Hallo!

Ich habe SQL Server 2005 Standard auf unserem Firmenserver installiert und eine einfache Tabelle erstellt. Nun muss ich unsere Software so anpassen, dass beim Hinzufügen eines neuen Datensatzen in die Tabelle überprüft wird, ob diesen Datensatz zufällig schon existiert. Jeder potenzieller Datensatz hat eine eindeutige Integer-ID, die schon vor dem Hinzufügen in die Tabelle bekannt ist. In der Tabelle gibt es wiederrum eine Spalte, in der diese IDs gespeichert werden. Es muss also nur diese eine Spalte überprüft werden. Dazu habe ich zwei Fragen:

1. Es gilt als sicher, dass innerhalb weniger Monaten mehrere Hunterttausend Datensätze in diese Tabelle hinzufügt werden. Und jedes Mal soll es wie oben beschrieben überprüft werden. Ich vermute nun, dass diese Überprüfung immer mehr Zeit in Anspruch nehmen wird, je mehr Datensätze, desto länger. Kann die Tabelle irgendwie für diese einfache Abfrage otimiert werden, mit einem Index oder so? Wenn ja, wie?

2. Wir nehmen an, die Tabelle ist optimiert. Kann ich einfach mit Locate überprüfen, ob Datensatz funktioniert oder gibt es dafür eine bessere Methode?

Danke!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Tabelle optimieren???

  Alt 2. Dez 2008, 11:18
Füge einen UNIQUE-Index oder CHECK Contraint ein
Markus Kinzler
  Mit Zitat antworten Zitat
romber

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

Re: Tabelle optimieren???

  Alt 2. Dez 2008, 11:37
Vielen Dank für schnelle Antwort!

Zitat von mkinzler:
Füge einen UNIQUE-Index oder CHECK Contraint ein
Und wie mache ich das?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: Tabelle optimieren???

  Alt 2. Dez 2008, 12:04
Bei der Deklarartion der Tabelle
Markus Kinzler
  Mit Zitat antworten Zitat
romber

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

Re: Tabelle optimieren???

  Alt 4. Dez 2008, 00:01
Ich habe ein Uniqe index erstellt. Muss ich jetzt mit Locate überprüfen, ob ein Datensatz existiert oder reicht ein Versuch, den neuen Datensatz zu hinzufügen und Fehler abzufangen? Ich meine, wenn ein gleiches Datensatz schon existiert, wird die DB-Engine eine Fehlermeldung ausgeben, oder verstehe ich es falsch?
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

Re: Tabelle optimieren???

  Alt 4. Dez 2008, 00:09
Unique Index bedeutet eindeutiger Index
Also was wird dann wohl passieren?
Die DB verweigert den Eintrag! Alles andere wäre unlogisch (heißt ja auch nicht "vielleicht eindeutig" )

Ein kleiner Test hätte dir das aber auch gezeigt!
Vor allem weil du diesen Fehler ja auch bestimmt abfangen möchtest, oder?

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:49 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