Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

SQL-Server 2008 Wartung - Performanceprobleme

Mitglied: westberliner

westberliner (Level 1) - Jetzt verbinden

11.01.2019 um 11:17 Uhr, 997 Aufrufe, 10 Kommentare, 2 Danke

Hallo Zusammen,

ich habe hier ein DMS-System laufen (Accantum), welches auf einer SQL 2008 Datenbank schreibt.

Nun bekomme ich in letzter Zeit immer mehr Probleme, was die Performance angeht. Bei einer Suche eines Dokuments im Frontend bekomme ich hohe CPU-Lasten (90% und höher), die kurz andauern und dann entsprechend natürlich alles verlangsamen. Ich habe leider bisher absolut gar nichts mit SQL-Servern und -Datenbanken am Hut gehabt, daher sind meine Kentnisse bisher hier relativ bescheiden.

Ressourcen habe ich bereits erweitert, die VM hat 32 GB ram und 8 Kerne.

Das DB-Verzeichnis bringt folgende Größen zum Vorschein.

https://administrator.de/images/c/1/5/da883cb0638be503efbe647f10fc33b9.j ...
Es ist ein Maintanance-Plan hinterlegt (wobei hier beim ersten Task keine Verbindung angegeben ist):

https://administrator.de/images/c/1/5/5c6faf60344d194823dfdb68c1727bb5.j ...

Gesichert wird mit Veeam, SQL Log Trunking ist eingeschaltet.

Kann mir jemand helfen die nötigen Schritte auszuführen, damit die Datenbank wieder flott läuft?

Vielen Dank!
acc_db_size - Klicke auf das Bild, um es zu vergrößern
sql maintanance-plan - Klicke auf das Bild, um es zu vergrößern
Mitglied: SlainteMhath
11.01.2019 um 11:30 Uhr
Moin,

so wie das aussieht wurden bei deinem SQL-Server nichtmal die grundlegenden Best Practices eingehalten (DB+Log auf unterschiedl. Disks, tempDB nicht auf eigener Disk z.b.). Evtl wäre es sinnvoll dich als erstes mit dem Support der Applikation und dann ggfs. mit einem Systemhaus (mit SQL Expertise)zu sprechen um dann zusammen die Optimierung des Servers anzugehen.

Abgesehen davon fehlt einiges an Information. Anzahl User, Disk Subsystem und IO Last usw, usw.

lg,
Slainte
Bitte warten ..
Mitglied: SeaStorm
11.01.2019 um 13:16 Uhr
hi

mit den infos kommen wir nicht sonderlich weit.
Dein erster Ansprechpartner sollte der Support des DMS-Systems sein.

Wenn du dich selbst ein bisschen schlau machen willst:
Schau am einfachsten mal in den SSMS Activity Monitor und prüfen, welches Query da so lange braucht.
Dann suchst du dessen Tabellen und lässt seine Indexe mal neu erstellen.
Wenn das nix bringt, musst du mit dem QueryPlanAnalyzer gucken was an dem Query so langsam ist:
https://blogs.msdn.microsoft.com/sql_server_team/new-in-ssms-query-perfo ...

Und dann kommts halt drauf an was es ist....
Bitte warten ..
Mitglied: clSchak
11.01.2019 um 13:52 Uhr
Hi

1. man verkleinert eine DB nur im Worstcase oder nachdem man große Tabellen gelöscht hat, ansonsten sollte man das, vor allem bei der geringen Größe einfach lassen, die Meldung sagt ja bereits aus das es zu Fragmentierung kommt

2. AutoGrow am besten niemals auf % Bereiche stellen, idealerweise auf MB/GB Größen die eine neue Speicherzuweisung nicht so oft erforderlich machen, z.B. 10GB

3. Analysiere die Index-Einstellungen der Datenbank, oft werden seitens der "Hersteller" viele Tabelle mit falschen und gar keinen Indicies ausgestattet und die Abfragen laufen dann richtig kacke (KoFAX z.B. ist in der Grundeinstellung extrem beschisxxxx da muss man einiges von Hand nachsetzen damit das Schnell läuft)

4. Datenbanken verkleinert man nicht - wenn dann einmal und nicht über den Wartungsplaner

5. Anzahl TempDB = Anzahl maximaler Workerthreads, d.h. 8 Cores = 8 DB Files und diese auf schnellen Platten

6. Logs und DB File auf getrennten Laufwerken (nicht nur Partitionen - eigene Storagepfade zu den LUNS)

7. Man verkleinert keine DB's, maximal im Einzelfall (bin mir gerade nicht sicher ob ich das nicht schon geschrieben habe)

....

Besorg dir von Brent Ozar die SP Blitz Tools (https://www.brentozar.com/blitz/) , das wird auch schon einiges helfen - auch weiteren Fehlern auf die Schliche zu kommen.

Just my 2 Cent
@clSchak
Bitte warten ..
Mitglied: Grinskeks
11.01.2019 um 14:14 Uhr
Hallo,

32 GB Ram hört sich gut an, die DB ist aber dreimal so groß und keiner weiß, was sonst noch so auf dem Server passiert.
Ist das IO-Subsystem zusätzlich lahm, ist schnell Feierabend.

  • Grundperformance IO-Subsystem messen, insbesondere 8k und 4k Iops (Crystaldiskmark)
  • Perfmon ausführen und avg. Disk Queue Length und Buffer cache hit ratio messen
  • Perfmon standardbericht performance ausführen, wenn gerade was los ist auf dem Server


Der Wartungstask ist nicht gut - man sollte nur in Notfallsituationen produktive DB-Files verkleinern. Das Transaction Log kann abgeschnitten, das Datenwachstum überwacht werden.



Gruss Grinskeks
Bitte warten ..
Mitglied: Looser27
11.01.2019 um 14:23 Uhr
Moin,

wenn Du Deine DBs schon pflegen willst, solltest Du den Wartungsplan folgende Schritte ausführen lassen:

1. Datenbank Integrität prüfen
2. Index neu erstellen
3. Verlauf bereinigen

Hier kann ich Dir gerne eine Anleitung zukommen lassen. PM an mich, dann schicke ich sie Dir.

Ansonsten sollte man die DBs schrittweise vergrößern, wie oben vorgeschlagen, angepaßt an das Wachstum.
Wenn eine DB je Woche um 500MB wächst, dann kann man die natürlich immer um 500MB vergrößern, doch das kostet Leistung.
Lieber 5GB nehmen und danach wieder ausreichend Reserve haben.

Ansonsten gehören LogFiles und DB-Files auf getrennte Volumes. Und schnelle Platten haben SQL-DBs auch noch nie geschadet.

Gruß

Looser
Bitte warten ..
Mitglied: Crusher79
12.01.2019, aktualisiert um 14:30 Uhr
Hi,

32 GB RAM muss man schauen: Durch index rebuild etc. wird der höchstens in Anspruch genommen. Nach Neustart des Dienstes hast du meist nur einen Bruchteil. Nicht die gesamte DB wird komplett in RAM ausgelagert.

Die Frage ist, wenn es bisher lief, ob es wirklich an der H/W, Konfig liegt! Ggf.ist mal was in die Binsen gegangen und du hast einen Nullsatz, etc. in einer Tabelle.

Du kannst mit dem SQL Profiler mit T_Replay die Abfregen mitschneiden. So könntest du auch mal kucken, was an dem Auslösen im Frontend denn wirklcih psasiert. Welche Prozeduren etc. angesprochen werden.

Trivial: Wenn es normal läuft und nur bei Abfragen hängen bleibt, ist ggf. die DB nicht mehr ganz in Takt. Im Profiler sieht man gut die Statements und dauch die Zeitdauer. Man kann auch einfach sp_execute in Abfrege Window kopieren und separat starten. ABER dafür sollte man die SQL Grundlagen können! Query ist meist kein Problem. Update und Insert Statements auf gut Glück aufs neue ausführen ist Mist.

Manchmal werden auch Trigger ausgelöst die wiederum andere Prozeduren anstoßen....


Was ist mit der Frontend App? Läuft die auch auf dem DB Server oder nur die Datenbank? Ist denn also überhaupt die sqlserver.exe am CPU Limit oder meinetwegen Dotnet, etc. an sich?

Wenn Ihr App + DB nicht getrennt habt wäre die Frage: Welcher Prozeß istam LImit??

Bei letzteren wärst du beim SQL Server nicht ganz falsch. Da auch hier durch Inskonsitente DB und Tabellen die Anwendung so austillen könnte, dass sie alles mit sich reisst!


Zitat von westberliner:

Gesichert wird mit Veeam, SQL Log Trunking ist eingeschaltet.

Sicherung ist schon mal gut. Mit Veeam ist so ne Sache! Würde alternativ IMMER die DB direkt über den Server sichern. Geht im Online Betrieb und die DB bleibt intakt.

Google hilft dir dabei. Auch beim 2008er schluckt es UNC Pfade. Werden nur nich anzgeit. So kannst die einfach die BAK an anderen Ort ablegen. Nur Veeam wäre mir zu heikel!


Habt Ihr einen Wartungsvertrag? Ggf. frag doch die Progger bei Accantum direkt an, ob Sie via Remote mal drauf schauen können. Die kennen Ihren eigenen Code und sehen auch rasch wo es hängt!

Und ohne Vertrag dürften 30-60 min. Remote Support nicht all zu teuer sein.


Muss man immer Ausfallzeiten und Nutzen gegen rechnen. Oft hilft ein kleiner Anruf. ;)

mfg Crusher
Bitte warten ..
Mitglied: westberliner
13.01.2019 um 13:41 Uhr
Habe mir jetzt mal die Fragmentierung angeschaut - wenn ich es richtig deute - dann habe ich vermutlich ein Problem zumindest aufgedeckt. Kann das damit zusammen hängen, da die Datenbank platte aus dynamischen Volumes besteht? Ich habe diese nicht angelegt, sondern die VMs übernommen und ensprechend vergrössert. Evtl. macht es Sinn hier statische Datenträger daraus zu machen? Und macht es Sinn diesen Komprimierungstask aus dem Wartungsplan rauszunehmen?
https://administrator.de/images/c/1/5/2853dcb68226cfe8babfe47f77d1e4be.j ...
https://administrator.de/images/c/1/5/e9734240ef95c706cf6f1ecb2da1ee50.j ...
https://administrator.de/images/c/1/5/bc2b724c72ad4f5c3f12c0f4d655c004.j ...
https://administrator.de/images/c/1/5/6aa9da15d75169954eefe61789f9851e.j ...
fragm1 - Klicke auf das Bild, um es zu vergrößern
fragm2 - Klicke auf das Bild, um es zu vergrößern
fragm3 - Klicke auf das Bild, um es zu vergrößern
fragm4 - Klicke auf das Bild, um es zu vergrößern
vorgänge - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: SeaStorm
13.01.2019 um 13:59 Uhr
Nein, eine fragmentiert er Index hat nix mit einem fragmentiert en Datenträger zu tun.
Das bedeutet, das der Clustered Index schlecht gewählt ist und/oder die Wartung der Indexe nicht erfolgt.
Lass alle Indexe Mal neu erstellen, dann passt das wieder.
Beobachte dann, Welcher Index schnell wieder fragmentiert. Den muss man sich dann Mal ansehen und ggf korrigieren
Bitte warten ..
Mitglied: westberliner
13.01.2019, aktualisiert um 14:35 Uhr
Ich habe jetzt mal die hoch fragmentierten Indexe neu organisiert bzw. neu erstellen lassen.

3-4 Tabellen gehen kaum von der Fragmentierungsrate runter.
Die CPU-Last geht bei der SQLSERVER.exe dennoch hoch.
Das zeigt der Aktivitätenmonitor.
https://administrator.de/images/c/1/5/cb7ae32c08775c95cd9fe5fd88a9b82a.j ...

Besteht hier ein Problem mit der Tabelle DocumentPage?

Nachtrag:

Habe das Skript hier nochmal ausgeführt, das baut ALLE Indizies neu auf:

Nun scheint so, als würden die CPU-Last nicht mehr so hoch gehen bei suchen (nur ca. 15-20%, statt 95%)...
vorgänge - Klicke auf das Bild, um es zu vergrößern
Bitte warten ..
Mitglied: SeaStorm
13.01.2019 um 16:01 Uhr
Laut Screenshot entsteht die Belastung ja beim Updatebefehl. Da müsste man Mal gucken was da schief läuft. Vermutlich ein sch... Index.
Auf welchen Feldern liegt denn der Clustered Index der Tabelle tbTempDocumentList ?
Bitte warten ..
Ähnliche Inhalte
Netzwerke
LWL Wartung
gelöst Frage von sabinesNetzwerke6 Kommentare

Moin, hat hier schon mal einer eine LWL Wartung gemacht? Ich habe grade einen ehemaligen Kollegen gesprochen, der mir ...

Windows Server

Problem: Migration SQL 2008 R2 EXPRESS auf SQL 2008 R2 STANDARD

gelöst Frage von D-LineWindows Server15 Kommentare

Guten Tag Miteinander und nachträglich allen noch ein frohes neues Jahr Gerne würde ich euch um Rat bitten bei ...

Batch & Shell

Powershell Performanceproblem bei Auswertung einer XML-Datei

Frage von KraemerBatch & Shell1 Kommentar

Moin zusammen, ich habe da ein kleines (extrem großes) Performanceproblem, bei dem ich ein wenig Hilfe brauche. Es geht ...

Windows Server

SQL Server 2008 r2 nach SQL Server 2019

gelöst Frage von Xaero1982Windows Server4 Kommentare

Moin Zusammen, Ich habe bald die Ehre die oben genannte Migration durchzuführen. Da der SQL Server 2019 auch einen ...

Neue Wissensbeiträge
Informationsdienste

Leistungsschutzrecht: Ein neuer Diskussionsentwurf liegt vor

Information von Frank vor 1 TagInformationsdienste9 Kommentare

Anfang April (leider kein Scherz) hat das Bundesjustizministerium den nächsten ausformulierten Referentenentwurf für ein "erstes Gesetz zur Anpassung des ...

Instant Messaging

Videokonferenz oder Chatsystem für das Homeoffice

Information von Frank vor 2 TagenInstant Messaging6 Kommentare

Ich hatte es bereits in einem Kommentar gepostet, da ich aber viele Nachfragen dazu bekam, hier noch mal meine ...

Off Topic

Ein wenig Aufklärung über Corona von Bill Gates persönlich

Information von Frank vor 2 TagenOff Topic24 Kommentare

Amerika hat ein Problem: Die Arroganz des sehr klugen Präsidenten führte zur aktuellen Corona-Krise in den USA. Was jetzt ...

Off Topic
3D-Drucker gegen Corona - helft mit!
Information von DerWoWusste vor 3 TagenOff Topic12 Kommentare

Unter vorigem Link sind Anleitungen, wie man sich mit seinem 3D-Drucker an der Produktion (Druck) von Bauteilen für Atemmasken ...

Heiß diskutierte Inhalte
Windows Server
Windows 7 wird im WSUS nicht angezeigt
gelöst Frage von DavidHergWindows Server25 Kommentare

Guten Abend zusammen, nachdem sich die Frage mit meinem WSUS erledigt hat und somit alles jetzt funktioniert, hab ich ...

LAN, WAN, Wireless
Lokale IP-Adresse
Frage von Kuerbis2020LAN, WAN, Wireless23 Kommentare

Lokale IP-Adresse: Woher bezieht Mein PC seine lokale IP-Adresse? Nenne den Namen des Dienstes und wo der Dienst installiert ...

Windows Server
Hyper-V VM vorm Admin absichern
Frage von MarabuntaWindows Server20 Kommentare

Hallo, wie bekomme ich eine VM in WS 2012 Hyper-V soweit abgetrennt, dass ein Admin ohne Passwort keinen (leichten) ...

Festplatten, SSD, Raid
Storage Wahl für Virtualisierungsumgebung
Frage von Le2000Festplatten, SSD, Raid15 Kommentare

Hallo allerseits, da ich bereits seit einiger Zeit aus der Materie ausgestiegen war und mich allmählich wieder einarbeite, wüsste ...