Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Tabelle optimieren??? (https://www.delphipraxis.net/125201-tabelle-optimieren.html)

romber 2. Dez 2008 11:05

Datenbank: MS SQL Server 2005 • Zugriff über: ADO

Tabelle optimieren???
 
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!

mkinzler 2. Dez 2008 11:18

Re: Tabelle optimieren???
 
Füge einen UNIQUE-Index oder CHECK Contraint ein

romber 2. Dez 2008 11:37

Re: Tabelle optimieren???
 
Vielen Dank für schnelle Antwort!

Zitat:

Zitat von mkinzler
Füge einen UNIQUE-Index oder CHECK Contraint ein

Und wie mache ich das?

mkinzler 2. Dez 2008 12:04

Re: Tabelle optimieren???
 
Bei der Deklarartion der Tabelle

romber 4. Dez 2008 00:01

Re: Tabelle optimieren???
 
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?

Sir Rufo 4. Dez 2008 00:09

Re: Tabelle optimieren???
 
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" :mrgreen: )

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:10 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