2016-11-24 1 views
0

Eine denormalisierte Tabelle (eine Art Übersichtstabelle) wurde in der Datenbank erstellt, in der Hoffnung, dass dadurch die Leistung verbessert wird.Welche Option muss ich in eine denormalisierte Tabelle einfügen?

  • Diese Tabelle wird täglich reinigen, werden mit der Batch-Job (HardDelete)
  • Keine Einschränkung für diese Tabelle benötigt wird
  • Geschwindigkeit (wie es die Leistung beeinträchtigen können)
das Hauptanliegen sein wird

Hintergrund ist, dass es ursprünglich eine Suchaktion durch eine große Größe einer Tabelle gibt (sagt Tabelle A), da es immer neue Einfügung gibt, so dass die Tabelle groß wird. Jetzt, wenn es neue Einfügung in die TabelleA gibt, werden wir in diese newTable einfügen und die Suche wird stattdessen gegen diese newTable sein, und da diese newTable Batchjob hart löschen auf täglicher Basis haben wird, wird die Größe viel kontrollierbar sein.

Jetzt frage ich mich, welche Möglichkeiten ich habe, um Daten in diese newTable einzufügen. Meine aktuelle Option ist entweder einen Trigger auf TabelleA oder den normalen Weg (durchgehen Server-Code, um Daten in diese neue Tabelle nach dem Einfügen in TableA einzufügen). Gibt es noch eine andere Möglichkeit, um die Geschwindigkeit zu erhöhen?

+2

Eine weitere Option, die Ihrem Anwendungsfall entsprechen kann oder nicht, sind indizierte Ansichten. https://www.brentozar.com/archive/2013/11/what-you-can-and-cant-do-with-indexed-views/ – mendosi

Antwort

0

Ein Trigger ist schneller als das Hinzufügen zu Ihrem serverseitigen Code, da die Daten bereits die Datenbank erreicht haben. Ihr Hauptanliegen sind Transaktionen (was passiert, wenn der Trigger fehlschlägt?) Und auch die Wartung von Triggern (Trigger sind ein Ärgernis, wenn Sie mich fragen).

Für die Geschwindigkeit der Rohdateneingabe können Sie die Einstellungen für die Tabellensperre überprüfen, die Lesesicherheit deaktivieren und alle Einschränkungen deaktivieren.

Verwandte Themen