DevTrain Startseite SharePoint Camp ? In 5 Tagen zum SharePoint Profi!  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Tobi Ulm Artikel Drucken
        
Verwenden von CHECKSUM zum Erstellen von Hashindizes

Oft bekokmmen Datenbankprogrammierer die Aufgabe gestellt Daten aus verschiedenen Tabellen auf Gleichheit zu überprüfen. Dabei gibt es die verschiedensten Ansätze. Ich will Ihnen heute eine Möglichkeit aufzeigen, die noch viel mehr bieten kann.

Die CHECKSUM-Funktion kann zum Erstellen von Hashindizes verwendet werden. Ein Hashindex wird erstellt, indem eine Spalte mit berechneten Prüfsummen zur indizierten Tabelle hinzugefügt wird und dann ein Index aus der Spalte mit den Prüfsummen erstellt wird.

-- Erzeugen eines checksum index.SET ARITHABORT ONUSE NorthwindGOALTER TABLE Products ADD cs_Pname AS checksum(ProductName)CREATE INDEX Pname_index ON Products (cs_Pname)

Der Prüfsummenindex kann als Hashindex verwendet werden, insbesondere zur Erhöhung der Indizierungsgeschwindigkeit, wenn die Spalte, für die der Index erstellt werden soll, lange Zeichenfolgen enthält. Der Prüfsummenindex kann für die Gleichheitssuche verwendet werden.

/*Benutze den index in einer  SELECT query. Füge eine zweite such bedingung hinzu um unterschiede in den cell werten zu finden obwohl die Checksum gleich ist*/
SELECT * FROM ProductsWHERE checksum(N'Vegie-spread') = cs_PnameAND ProductName = N'Vegie-spread'

Durch Erstellen des Indexes für die berechnete Spalte wird die Prüfsummenspalte erstellt, und die Änderungen des ProductName-Wertes werden an die Prüfsummenspalte weitergegeben. Ein Index kann jedoch auch direkt für die indizierte Spalte erstellt werden.

Es kann davon ausgegangen werden, das enn die Schlüsselwerte lang sind, ein normaler Index wahrscheinlich nicht so leistungsfähig wie ein Prüfsummenindex ist. => Hardcore Tuning!

Anmerkung zu SET ARITHABORT

Wenn in einer INSERT-, DELETE- oder UPDATE-Anweisung ein arithmetischer Fehler (Überlauf, Division durch Null oder Bereichsfehler) bei der Auswertung eines Ausdrucks auftritt und SET ARITHABORT auf OFF festgelegt ist, fügt SQL Server einen NULL-Wert ein oder aktualisiert ihn. Wenn die Zielspalte keine NULL-Werte zulässt, schlägt das Einfügen oder Aktualisieren fehl, und dem Benutzer wird ein Fehler angezeigt.
 


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 02.03.2001
  Gültig bis: 01.04.2001
11 Ratings
Bewertung: 27,3%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG