Hey Servus,
dabei handelt es sich nicht um ein Trend.
Datenbanken müssen gewartet werden, damit sie optimal und schnell funktionieren können. Hierbei ist es egal, ob es sich um eine MySQL oder MS SQL Datenbank handelt. Unser Expertise liegt dabei in der Microsoft Umgebung, inkl. Microsoft Azure SQL.
Wie funktioniert eine Abfrage bei einem MS SQL Server stark vereinfacht?
Ist nichts dem MS SQL Server bekannt (Kein Indiz), so durchforstet MS SQL die jeweilige Tabelle nach dem Inhalt von Anfang bis Ende und gibt sie wieder, wenn er sie gefunden hat. Kommt die Abfrage häufig vor, speichert er zumindestens den 'Weg dahin' in den Arbeitsspeicher. Da sich der Wert aber stetig ändern kann, werden die Werte grundsätzlich nicht mit in den Arbeitsspeicher aufgenommen.
Jetzt kommen die Indizes ins Spiel (Was JTL bei seiner Entwicklung u.a. berücksichtigt hat) Wie z.B. zu sehen unter PLZ, PLZ Ort Indiz.
Indizes kann man nachträglich oder während der Entwicklung einer Tabelle erstellen.
Sie enthalten Querverweise mit Werten. Also Hinweise wie die Datenbank ein Eintrag schneller finden kann. Dieser Verweis legt ein Mensch an. Für die Anlage gibt es verschiedene Arten. Die erstellte Indiz wandert nicht automatisch in den Arbeitsspeicher, wir stoßen aber den Prozess im Hintergrund u.a. an.
Ist eines angelegt, ist die Ausgangslage für MS SQL ganz anders, jetzt hat er Hinweise, in welcher Zeile sich die Einträge in der Tabelle befinden können, Statt in der gesamten Tabelle nach allen Kunden mit dem Buchstaben A zu suchen, schaut MS SQL Server einfach in seinem Indiz-Inhaltsverzeichnis nach, welches er im bestenfall schon in seinem Arbeitsspeicher bereit hält (passiert nicht automatisch). (Vergleichbar mit Kundensuche) und findet die betroffenen Kunden dadurch schneller. Wie wenn der Lehrer früher gesagt hat schlaft in Eurem Mathebuch die Seite 163 Aufgabe Nr. 9 auf, statt zu sagen sucht in Eurem Mathebuch, nach folgender Textaufgabe.
Suchanfragen erfolgen dadurch schneller, Speichervorgänge durch ein Indiz langsamer. Da der Indiz mit geändert werden muss.
Im Regelfall werden die Indizes mit jeder Änderung der Tabelle im Hintergrund upgedatet. Sie verweisen aber auch mit der Zeit auf etwas falsches nicht existierendes. Wie es zu dieser Zweischneidigkeit kommt, würde den Text nur länger machen, aus diesem Grund gehe ich einfach auf die Folgen jetzt ein, aber der Grund ist ein halbmatürlicher Grund.
Ändern sich also Inhalte,
bestimmter Tabellen, z.B, Spalten, Zeilen wie bei Kunden Löschung DSGVO, JTL Update und die Indizes werden nicht upgedatet.
So freut sich vorerst zwar die MS SQL Datenbank, weil er denkt die passende Zeile durch den Indiz Eintrag zu kennen. Im Endeffekt steht aber ein ganz anderer Wert dahinter. Also darf er nochmals suchen und diesmal von vorne. Dies kostet dich und dem MS SQL Server Zeit.
Je nach Stärke der Verzweigung und Einträge im Indiz, lässt man sie neu erstellen oder umordnen. Wichtig ist, zu wissen, dass auch ein Indiz auf einen anderen Indiz verweisen kann, was die Sache bei Verzweigungen nicht leichter macht, sondern die Enttäuschung von MS SQL Server und dem Anwender gravierend erhöht.
Das beheben solcher 'Fehler' gehört u.a. zu den Diensten unseres Produktes. Aber auch vieles weitere mehr.
Die Funktionen für die Beseitigung gibt 99% Microsoft selber her. Je nach Version Enterprise / Standard unterscheiden die sich. Wir lösen mit unserer Software die benötigten Funktionen, in richtiger Reihenfolge und getreu dem Handbuch von Microsoft aus.
Einfach Testen & Feedback geben