Datenbank - Perfromaceoptimierung täglich automatisch anstossen

topsi

Aktives Mitglied
27. November 2018
67
6
Hallo,

wir laufen bei ecom auf einem MSQL 2016 standard (Miete)

Gerne würde ich die in JTL integrierte Performanceoptimierung automatisiert nachts laufen lassen. So wie ich es verstanden habe geht das nur über den server Agent und nicht zB per worklow oder aufgabenplanung.

JTL selbst war auf mein Ticket hin leider nicht in der Lage mir das verwendete Skript zu "verraten".

Kann mir jemand eine kurze Anleitung geben, wie sich das implementieren lässt?

Das hier habe ich in einem anderen Forenbeitarg zum Thema skript gefunden, bin aber nicht sicher ob das für die 1.6.44 noch gilt:

EXECUTE dbo.IndexOptimize @Databases = 'USER_DATABASES', @FragmentationLow = NULL, @FragmentationMedium = 'INDEX_REORGANIZE,INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationHigh = 'INDEX_REBUILD_ONLINE,INDEX_REBUILD_OFFLINE',
@FragmentationLevel1 = 5,
@FragmentationLevel2 = 30

VG
topsi
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Also ich lasse bei uns täglich nachts die spOptimieren drüberlaufen. Diese Procedure startet auch die IndexOptimize mit sinnvollen Argumenten.
Also EXEC eazybusiness.dbo.spOptimieren
Ob du solche Wartungsarbeiten per Aufgabenplanung, oder mit dem SQL-Agent ausführen läßt, oder die Befehle manuell eintippst ist ja egal - führt immer zum selben Ergebnis.
Übrigens: als wir noch bei Ecomdata waren hatten wir sowieso keinen Zugriff auf den SQL-Agent...

Tipp: Schau dir doch die spOptimieren mal an, was die macht und was sie mit welchen Parameter aufruft.
 
  • Gefällt mir
Reaktionen: pixxass und topsi

wawi-dl

Sehr aktives Mitglied
29. April 2008
5.923
568
Jein, es sammeln sich schon sehr viele Logs, Picklisten, gelöschte Kunden + Bilder an, die eine Datenbank unnötig aufblähen.
Diese werden von uns regelmäßig gelöscht und dann über JTL Indizis neu gesetzt.

Daher die Frage, ob die Auslösung von diese StoredProcedure vielleicht was besser macht.

Die SQL DB ist bereits optimiert, hat damit weniger zu tun.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
In einem Testsystem, in dem immer wieder mit der Ameise relativ viel hin und her exportiert wird wirkt sich die Stored Procedure merklich aus.
Da das so ist, lass ich das auch auf dem Produktivsystem in der Nacht drüberlaufen - tut ja nicht weh.
Zahlen dazu hab ich aber keine. Vielleicht ist es auch unnötig.


Jein, es sammeln sich schon sehr viele Logs, Picklisten, gelöschte Kunden + Bilder an, die eine Datenbank unnötig aufblähen.
Diese werden von uns regelmäßig gelöscht und dann über JTL Indizis neu gesetzt.

Daher die Frage, ob die Auslösung von diese StoredProcedure vielleicht was besser macht.
Du kannst dir ja ansehen, was die Stored Procedure macht. Also was da abgearbeitet wird.
Aber ob du die Befehle von Hand startest, oder die Stored Procedure startest, macht keinen Unterschied. Insofern ein "Nein" auf deine Frage - die Stored Procedure kann es nicht besser.
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Die SQL DB ist bereits optimiert, hat damit weniger zu tun.
Wie jede SQL Datenbank benötigt auch der SQL Server, damit eine SQL Query performant ablaufen kann, Indizes auf wichtigen Felder und zusätzliche Informationen, wie selektiv ein gewisser Index ist (=Statistiken).

Der SQL Server berechnet die Indexstatistiken bei Erreichen eines bestimmten Schwellenwerte standardmässig selbständig neu. Er sagt also, wenn sich z.B. 20% einer Tabelle geändert haben, hat sie sich "wesentklich" geändert, also "Schwellenwert überschritten", also werden die Statistiken neu erstellt (den tatsächlichen Wert weiß ich nicht genau, vielleicht eher Richtung 10%).
Das genügt nicht immer. Daher gibvt es, Empfehlungen die Indexstatistiken manuell zu optimieren. Wie bei allem gibt es auch hier verschiedene Meinungen, aber auch schon das JTL die Optimierungsskripte von Ola Hallengren in ihre Wawi eingebaut hat kann man als Hinweis darauf ansehen, dass diese Dinge ja nicht ganz unnötig sein können.

In den Indexstatistiken werden Informationen über die Werteverteilung der indizierten Spalten abgelegt. Indexstatistiken müssen – genau wie die Indizes selbst – regelmässig gewartet werden.
Wenn Indexstatistiken nicht erstellt wurden kann das dazu führen, dass der Query Analyzer einen Index gar nicht verwendet. Dasselbe ist auch der Fall, wenn die Statistiken veraltet sind, weil die Datenbankengine dieser alten Statistik nicht mehr traut.
 
  • Gefällt mir
Reaktionen: Christoph E.

topsi

Aktives Mitglied
27. November 2018
67
6
Also ich lasse bei uns täglich nachts die spOptimieren drüberlaufen. Diese Procedure startet auch die IndexOptimize mit sinnvollen Argumenten.
Also EXEC eazybusiness.dbo.spOptimieren
Ob du solche Wartungsarbeiten per Aufgabenplanung, oder mit dem SQL-Agent ausführen läßt, oder die Befehle manuell eintippst ist ja egal - führt immer zum selben Ergebnis.
Übrigens: als wir noch bei Ecomdata waren hatten wir sowieso keinen Zugriff auf den SQL-Agent...

Tipp: Schau dir doch die spOptimieren mal an, was die macht und was sie mit welchen Parameter aufruft.
Ja der Agent ist inaktiv, ich teste es mit der Aufgabenplanung. Danke Dir !
 

mh1

Sehr aktives Mitglied
4. Oktober 2020
1.261
337
Noch 2 Fragen: spOptimieren macht das was ich manuell über die Performanceoptimierung starte ?
Ich habe keinen Einblick in den Sourcecode der Wawi und weiß deshalb nicht genau, was beim Anwählen der Performanceoprimierung alles ausgeführt wird.
Wenn du nachschauen willst, was in dem Moment per SQL an die Datenbank übertragen wird, kannst du das mit jedem beliebigen SQL Sniffer machen. Wenn ich mich recht erinnere ist im Wawi Verzeichnis auch schon ein passendes Tool dabei. Dann kannst du das an die DB übertragene SQL mit der spOptimieren vergleichen.

(Außer Filestream da wir sql standard haben)
Ich verstehe nicht ganz, was du meinst, bzw. was hierzu deine Frage ist.
Filestream ist kein spezielles Feature von Standard oder Express. Es ist vielmehr ein Feature des SQL-Servers.


kannst du mir sagen wie ich den befehl über die aufgabenplanung starte? TX
So wie ich dich verstanden habe (s.o.), habt ihr doch die Standard Version des SQL-Servers.
D.h. du hast den SQL-Agent und kannst doch die Aufgaben von diesem Ausführen lassen (also brauchst du ja gar keine Windows Aufgabenplanung)
 
Ähnliche Themen
Titel Forum Antworten Datum
WAWI 1.8.12.0 stürzt ab, wenn die Verbindung zur Datenbank unterbrochen wurde JTL-Wawi 1.8 18
Neu EK-Netto der Verkäufe aus Datenbank ? User helfen Usern - Fragen zu JTL-Wawi 5
Datenbank-Abfrage per SQL nach Lagermenge pro Artikel & Warenbereich (WMSLager) JTL-Wawi 1.8 1
Neu Kuriosum - Shop 5.1.5 mit Datenbank 5.2.4 Mischbetrieb nach fehlgeschlagenem Update Installation / Updates von JTL-Shop 8
Neu JTL-Installation- Verbindung zur Datenbank -SA Kennwort Installation von JTL-Wawi 22
Speicherort der Seriennummern zu Auftragsposition in der Datenbank ? JTL-Wawi 1.8 2
Neu Weiterleitungen direkt per Datenbank einfügen aufgrund Größe bzw. Anzahl? Betrieb / Pflege von JTL-Shop 9
Fehler beim Datenbank - JTL WAWI Connector WooCommerce-Connector 1
Umzug Datenbank Fehler aufgrund unterschiedlicher Versionen Einrichtung JTL-Shop5 1
Preisliste Druck = ungültige Zugangsdaten zur Datenbank JTL-Wawi 1.8 1
keine Verbindung zur Datenbank JTL-Wawi 1.8 3
Grafana Datenbank verbindung nicht möglich? JTL-Wawi 1.8 1
Ameise auf Client nicht erreichbar - Wawi hat zugriff auf Datenbank JTL-Wawi 1.7 2
Neu Datenbank Upgrade Fehler(#7110FFD83C0136E0) JTL-Wawi - Fehler und Bugs 0
Neu Datenbank Tabellennamen User helfen Usern - Fragen zu JTL-Wawi 16
Neu jtl datenbank warnung - ein formular hat mehr als 1000 felder in tkunde des Shops Allgemeine Fragen zu JTL-Shop 0
Neu Plötzlich kein Zugriff von Client auf Datenbank mehr User helfen Usern - Fragen zu JTL-Wawi 1
Neu cDeeplink für Google Shopping direkt aus der Shop-Datenbank? Allgemeine Fragen zu JTL-Shop 0
Neu Wawi läuft, aber ein Rechner hat den Pfad zur Datenbank verloren, Mandant kann nicht ausgewählt werden User helfen Usern - Fragen zu JTL-Wawi 3

Ähnliche Themen