Unsere Dienste für Sie

Über uns

unsere Technologien

 

Performance Tuning

Wir stellen vor: SQL Server Performance Tuning

Sind Sie von der schlechten Leistung des SQL-Servers frustriert (schlechte Leistung kann die Benutzerfreundlichkeit, den Geschäftsbetrieb und die Skalierbarkeit Ihres Systems beeinträchtigen)?  Wenn ja, dann sind Sie hier genau richtig. Hier und jetzt erhalten Sie Unterstützung bei der Optimierung der Leistung des SQL-Servers und vollen Support mit einem detaillierten Bericht über die geleistete Arbeit. Unsere Strategie kann die Geschwindigkeit und Effizienz Ihrer Anwendung erheblich beeinflussen. Wir werden das volle Potenzial Ihrer Datenbank freisetzen. Machen Sie sich bereit, Ihren SQL-Server zu überlasten!

 

  1. Die Abfrageoptimierung ist eine wichtige Technik zur Verbesserung der Leistung von SQL Server. Bei der Optimierung von SQL-Abfragen geht es um die Ermittlung der effizientesten und effektivsten Methoden zur Verbesserung der Abfrageleistung. Es gibt mehrere Strategien zur Optimierung von Abfragen, die zur Erreichung dieses Ziels eingesetzt werden können. Ein gängiger Ansatz ist die Erstellung geeigneter Indizes für Spalten, die in WHERE-, JOIN- und ORDER BY-Klauseln verwendet werden, um den Datenabruf zu beschleunigen. Darüber hinaus kann die Auswahl nur der erforderlichen Felder anstelle von SELECT * und die Vermeidung der Verwendung von DISTINCT in SELECT-Anweisungen ebenfalls zur Optimierung der Abfrageleistung beitragen. Durch den Einsatz dieser Techniken können SQL Server-Benutzer die Geschwindigkeit und Effizienz ihrer Abfragen erheblich steigern, was zu einer besseren Gesamtleistung führt.

  2. Die Indexierung ist eine weitere wichtige Technik zur Verbesserung der Leistung von SQL Server. SQL Server-Indizes tragen dazu bei, den Datenabruf zu beschleunigen, indem sie eine schnellere Möglichkeit zum Auffinden von Daten innerhalb einer Tabelle bieten. Es gibt mehrere Best Practices für die Indizierung in SQL Server, z. B. die Erstellung relevanter Indizes und die Vermeidung einer Überindizierung. Darüber hinaus können Leistungsoptimierungs-Tools verwendet werden, um Indizierungsprobleme zu erkennen und zu beheben, z. B. durch die Empfehlung, neue Indizes zu erstellen oder unnötige Indizes zu entfernen. Durch die richtige Implementierung von Indizierungstechniken können SQL Server-Benutzer sicherstellen, dass ihre Datenbanken mit maximaler Leistung laufen.

  3. Die Serverkonfiguration ist ebenfalls ein wichtiger Faktor bei der Leistungsoptimierung von SQL Server. Die korrekte Konfiguration der SQL Server-Instanz und -Hardware kann dazu beitragen, dass der Server effizient und effektiv läuft. So kann beispielsweise die Konfiguration der Speichereinstellungen und der Prozessoraffinität des Servers zur Leistungsoptimierung beitragen. Darüber hinaus können Überwachungs- und Leistungsoptimierungsaufgaben dazu beitragen, Leistungsprobleme wie Engpässe oder Probleme mit der Datenbankleistung zu erkennen und einzugrenzen. Durch die Einhaltung von Best Practices für die Serverkonfiguration und -überwachung können SQL Server-Benutzer die Leistung ihres Servers optimieren und sicherstellen, dass er mit höchster Effizienz läuft.

 

 


 

 

Techniken zur Verbesserung der Leistung von SQL Server

 Zusammenfassend lässt sich sagen, dass die Leistungsoptimierung von SQL Server entscheidend dafür ist, dass Datenbanksysteme effizient und effektiv arbeiten. Durch die Implementierung von Strategien zur Abfrageoptimierung, Indizierungstechniken und Best Practices für die Serverkonfiguration können Unternehmen ihre SQL Server-Leistung verbessern und letztlich ihre Geschäftsabläufe insgesamt optimieren. Es ist wichtig, die Leistung von SQL Server regelmäßig zu bewerten und zu optimieren, um sicherzustellen, dass sie den Anforderungen des Unternehmens und seiner Benutzer entspricht. Mit den richtigen Techniken und Strategien können Unternehmen ihre SQL Server-Leistung optimieren und einen größeren Erfolg in ihren Geschäftsbemühungen erzielen.

 

 

Der DMV sys.dm_exec_sessions enthält sowohl Benutzersitzungen als auch interne SQL Server-Sitzungen, die zur Ausführung von Hintergrundaufgaben verwendet werden. 
sys.dm_exec_connections enthält zusätzliche Informationen für Sitzungen, die von externen Clients eingerichtet wurden, einschließlich Protokolldetails. 
sys.dm_exec_requests enthält Informationen über aktive SQL Server-Anfragen (z. B. ausführende Abfragen).

 

Ansicht des zugewiesenen Speichers

 

Bietet detailliertere Informationen über die Top-20-Speicherzuweisung und -nutzung bestimmter Datenbankabfragen sowie zusätzliche Felder für Datenverwaltungszwecke. Quelltabellen der Datenbank perf_querystore, aus denen Daten entnommen werden:

perfsys.dm_exec_sessions - liefert Informationen über alle aktiven Benutzerverbindungen und internen Aufgaben.
Dazu gehören Client-Informationen wie Anwendungs- und Hostnamen, Sicherheitseinstellungen, Konfigurationseinstellungen und andere sitzungsspezifische Daten.

perfsys.dm_exec_requests - liefert Informationen über jede Anfrage, die innerhalb von SQL Server ausgeführt wird.
Dazu gehören Anfragen von Benutzersitzungen, Systemsitzungen und internen Prozessen.

perfsys.dm_exec_query_memory_grants - liefert Informationen über alle Abfragen, die eine Speicherzuteilung angefordert haben und darauf warten, oder die eine solche erhalten haben
eine Speichererlaubnis. perfsys.dm_exec_sql_text - Informationen über den Text der SQL-Abfrage entsprechend dem sql_handle der Abfrage.

dbo.tbl_query_store_plan_handle - stellt den Bezeichner für den Speicherort dar, an dem der tatsächliche Ausführungsplan für eine bestimmte Abfrage gespeichert ist.

 

 


 

 

Das Skript WhoTheFuckIsWrong.sql ist ein leistungsfähiges Tool zur Leistungsanalyse von SQL Server. 

 

 

Mit dem Skript WhoTheFuckIsWrong.sql können Sie einfach überprüfen, welche problematischen Abfragen auf dem SQL Server in Echtzeit laufen.

In den Ergebnissen der Ausführung dieses Skripts werden Sie alle Metriken sehen, um problematische Abfragen zu identifizieren, die die meisten Ressourcen des SQL Servers beanspruchen.

Einige der wichtigsten Metriken, die Sie in den Ergebnissen der WhoTheFuckIsWrong.sql-Ausführung analysieren können:

  • Zugewiesener Speicher - zugewiesener Speicher auf dem Server für die Abfrage
  • Verwendeter Speicher - tatsächlich verwendeter Speicher während der Abfrage
  • Reads - Anzahl der von der Abfrage durchgeführten Reads
  • Writes - Anzahl der von der Abfrage durchgeführten Schreibvorgänge
  • CPU-Zeit - zeigt in Millisekunden an, wie lange die CPU mit der Abfrage beschäftigt war
  • Gesamte verstrichene Zeit - zeigt die Dauer des Abfragelaufs in Millisekunden an
  • SQL-Anweisung - ist der SQL-Text der Abfrage
  • SQL-Plan - Ausführungsplan der Abfrageanweisung anzeigen


Sie können auch sehen, von welchem Server und welcher Anwendung die Abfrage gestartet wurde und welcher Benutzer die Abfrage ausgeführt hat.
Das Skript WhoTheFuckIsWrong.sql ist ein leistungsfähiges Tool zur Leistungsanalyse von SQL Server.

 

Skript kaufen ➜

 

 


 

 

Datenbank perf_neartime

Die Datenbank sammelt Echtzeitdaten, indem sie die Systemaktivitäten erfasst und in verschiedenen Tabellen speichert. Diese Daten werden alle 5 Minuten gespeichert, um eine aktuelle Aufzeichnung der Systemleistung zu gewährleisten. Der Prozess der Datenspeicherung wird von einem Job namens "Performance_Neartime" eingeleitet, der eine gespeicherte Prozedur namens "StorePerformanceData" ausführt. Dieser Job und die gespeicherte Prozedur arbeiten zusammen, um die erforderlichen Informationen aus dem System abzurufen und in den entsprechenden Tabellen innerhalb der Datenbank zu speichern. 

Die gesammelten Daten bieten wertvolle Einblicke in die Leistung des Systems und ermöglichen es den Benutzern, verschiedene Aspekte der Systemaktivitäten zu analysieren und zu überwachen. Durch die regelmäßige Erfassung von Daten können Veränderungen verfolgt und Trends im Laufe der Zeit erkannt werden. Diese Informationen sind für Systemadministratoren und Analysten von entscheidender Bedeutung, um die Systemleistung zu optimieren, Probleme zu beheben und fundierte Entscheidungen über die Ressourcenzuweisung und Systemkonfiguration zu treffen.

Zu den erfassten Daten gehören Serverinformationen wie Servername, Version, Anmeldezeit und Sitzungsdetails. Außerdem werden aktive Anfragen, Ausführungspläne, Datenbankgrößen, blockierende Sitzungen, Workload-Gruppenstatistiken, verbundene Benutzer, Seitenzuweisungs- und -freigabeaktivitäten, Speicherzuweisungen, ausgeführte Abfragen, der Status des Ressourcenpools, offene Transaktionen, Wartestatus, geplante Aufträge und die aktuelle Speichernutzung erfasst. Jede dieser Tabellen enthält spezifische Spalten, die relevante Informationen in Bezug auf die jeweilige Datenkategorie enthalten.

 

Performance-Tuning Übersicht Vollständige Datenbank perf_neartime

 

 

 

 

 


 

 

Datenbank perf_querystore

Die Echtzeit-Datensammlung für den Abfragespeicher bietet wertvolle Einblicke in die Auswahl der Abfragepläne und die Leistung von SQL Server. Es vereinfacht die Fehlerbehebung erheblich, da Sie Leistungsabweichungen, die durch Änderungen im Abfrageplan verursacht werden, schnell erkennen können. Der Abfragespeicher erfasst und speichert automatisch einen Verlauf von Abfragen, Plänen und Laufzeitstatistiken zu Ihrer Überprüfung. Der Prozess der Datensicherung wird durch einen Job namens Performance_QueryStore eingeleitet. Dieser Job ruft eine Reihe von Stored Procedures auf, die Daten aus den Systemtabellen des Query Store und der Dynamical Management Views in den Tabellen der perf_querystore-Datenbank speichern. Gespeicherte Daten, die zur Erstellung von Berichtsansichten und Tabellen mit Informationen zur Analyse und Definition der meisten Lastabfragen verwendet werden.   

Performance-Tuning Übersicht Vollständige Datenbank perf_querystore

 

  

 

 

 


 

 

SQL Server Performance Tuning Bewährte Praktiken

Bevor wir uns mit den spezifischen Tools und Techniken für das Performance-Tuning befassen, möchten wir einige allgemeine Best Practices vorstellen, mit denen Sie die Leistung Ihrer SQL Server-Instanzen verbessern können.

  • Verwenden Sie eine einheitliche Namenskonvention und einen einheitlichen Kodierungsstil für Ihre Objekte, Variablen und Abfragen. Dadurch wird Ihr Code besser lesbar, wartbar und einfacher zu debuggen.
  • Vermeiden Sie die Verwendung unnötiger oder redundanter Indizes, Constraints, Triggers, Views, Funktionen und Stored Procedures. Diese können den Overhead und die Komplexität Ihres Systems erhöhen und den Abfrageausführungsplan und die Leistung beeinträchtigen.
  • Verwenden Sie geeignete Datentypen und Größen für Ihre Spalten und Variablen. Dadurch werden der Speicherplatz und die Speichernutzung reduziert und die Datenqualität und -integrität verbessert.
  • Verwenden Sie parametrisierte Abfragen und gespeicherte Prozeduren anstelle von dynamischem SQL oder verketteten Strings. Dadurch werden SQL-Injection-Angriffe verhindert, die Parsing- und Kompilierungszeit verringert und die Wiederverwendung und Zwischenspeicherung von Abfrageplänen verbessert.
  • Verwenden Sie Stapeloperationen und Masseneinfügemethoden anstelle von zeilenweisen Operationen. Dadurch werden die Netzwerkumläufe und die Aktivität des Transaktionsprotokolls reduziert und der Durchsatz und die Gleichzeitigkeit verbessert.
  • Verwenden Sie geeignete Indizierungsstrategien und -techniken für Ihre Tabellen und Abfragen. Dadurch wird die Abfrageleistung verbessert, da die Anzahl der Festplatten-E/A-Vorgänge und Datenabfragen verringert wird.
  • Verwenden Sie Abfragehinweise und Optionen nur bei Bedarf und mit Bedacht. Diese können das Standardverhalten des Abfrageoptimierers außer Kraft setzen und den Abfrageausführungsplan und die Leistung beeinflussen. Einige dieser Hinweise und Optionen sind: NOLOCK, RECOMPILE, OPTIMIZE FOR, MAXDOP, usw.
  • Überwachen und analysieren Sie regelmäßig die Leistungsmetriken und Zähler Ihrer SQL Server-Instanzen. Auf diese Weise können Sie die Basisleistung ermitteln, Anomalien oder Engpässe feststellen und Probleme beheben.

 

SQL Server Performance Tuning Werkzeuge

SQL Server bietet eine Reihe von Tools und Funktionen, die Sie bei folgenden Aufgaben unterstützen können performance tuning. Einige dieser Instrumente sind:

  • SQL Server Management Studio (SSMS): Dies ist das wichtigste Tool für die Verwaltung und Administration Ihrer SQL Server-Instanzen. Es bietet eine grafische Benutzeroberfläche (GUI) für die Durchführung verschiedener Aufgaben, wie z. B. das Erstellen und Ändern von Objekten, das Ausführen von Abfragen, das Anzeigen von Ergebnissen, die Leistungsüberwachung usw.
  • SQL Server Profiler: Dies ist ein Tool zur Erfassung und Analyse der Ereignisse, die auf Ihren SQL Server-Instanzen auftreten. Es ermöglicht Ihnen, die Aktivitäten Ihres Servers zu verfolgen, z. B. ausgeführte Abfragen, aufgetretene Fehler, bestätigte oder zurückgenommene Transaktionen usw. Mit diesem Tool können Sie die Abfragen ermitteln, die die meisten Ressourcen verbrauchen oder Leistungsprobleme verursachen.
  • Datenbank-Engine Tuning Advisor (DTA): Dies ist ein Tool zur Analyse Ihres Datenbankschemas und der Arbeitslast und zur Empfehlung von optimalen Indizes, Statistiken, Partitionen usw. Es verwendet die von SQL Server Profiler oder anderen Quellen gesammelten Trace-Daten, um Tuning-Empfehlungen zu generieren.
  • Abfragespeicher: Hierbei handelt es sich um eine Funktion, die die Abfrageausführungspläne und Leistungsmetriken für Ihre Datenbanken sammelt und speichert. So können Sie den Verlauf Ihrer Abfragen verfolgen, verschiedene Pläne und Metriken im Laufe der Zeit vergleichen, Planänderungen oder Regressionen erkennen usw.
  • Erweiterte Ereignisse: Hierbei handelt es sich um eine Funktion, die ein leichtgewichtiges und flexibles Framework für die Erfassung und Analyse von Ereignissen bietet, die auf Ihren SQL Server-Instanzen auftreten. Es ermöglicht Ihnen, benutzerdefinierte Sitzungen mit verschiedenen Ereignissen, Zielen, Aktionen, Filtern usw. zu erstellen. Mit dieser Funktion können Sie verschiedene Aspekte der Leistung Ihres Servers überwachen, z. B. Wartezeiten, Sperren, Deadlocks, Speicherverbrauch usw.
  • Dynamische Verwaltungsansichten (DMVs) und Funktionen (DMFs): Hierbei handelt es sich um Systemansichten und Funktionen, die verschiedene Informationen über Ihre SQL Server-Instanzen offenlegen. Sie ermöglichen es Ihnen, verschiedene Aspekte Ihres Serverstatus, der Konfiguration, der Leistung usw. abzufragen. Einige dieser Ansichten und Funktionen sind: sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_exec_query_stats, sys.dm_os_wait_stats, sys.dm_os_performance_counters, sys.dm_db_index_usage_stats, etc.

 

SQL Server Performance Tuning Techniken

Neben der Verwendung der oben genannten Tools gibt es einige spezielle Techniken, mit denen Sie die Leistung Ihrer SQL Server-Instanzen optimieren können. Einige dieser Techniken sind:

  1. Optimierung von Abfragen: Dazu gehört das Schreiben effizienter Abfragen, die die gewünschten Ergebnisse bei minimalem Ressourcenverbrauch liefern. Sie können verschiedene Methoden zur Optimierung Ihrer Abfragen verwenden, wie z. B.:

     

    • Verwendung von Joins anstelle von Unterabfragen oder korrelierten Unterabfragen
    • Verwendung von EXISTS anstelle von IN oder NOT IN
    • Verwendung von WHERE-Klauseln zum Herausfiltern unnötiger Daten
    • ORDER BY-Klauseln nur bei Bedarf verwenden
    • Verwendung von GROUP BY-Klauseln mit Aggregatfunktionen anstelle von DISTINCT
    • Verwendung gemeinsamer Tabellenausdrücke (CTEs) oder temporärer Tabellen anstelle von abgeleiteten Tabellen
    • Verwendung von mengenbasierten Operationen anstelle von Cursoren oder Schleifen
    • Verwendung von UNION ALL anstelle von UNION
    • Verwendung geeigneter Operatoren und Funktionen, wie LIKE, BETWEEN, ISNULL, COALESCE, usw.

       

  2. Index-Optimierung: Dazu gehört die Erstellung und Pflege optimaler Indizes für Ihre Tabellen und Abfragen. Sie können verschiedene Methoden zur Optimierung Ihrer Indizes verwenden, wie z. B.:

     

    • Auswahl des richtigen Indextyps, z. B. clustered, nonclustered, gefiltert, columnstore usw.
    • Auswahl der richtigen Indexspalten, wie z. B. die in den WHERE-, JOIN-, ORDER BY- oder GROUP BY-Klauseln verwendeten Spalten.
    • Auswahl der richtigen Indexreihenfolge, z. B. aufsteigend oder absteigend.
    • Auswahl der richtigen Indexoptionen, wie Füllfaktor, Komprimierung, Partitionierung, usw.
    • Regelmäßige Aktualisierung der Indexstatistiken, um die Datenänderungen widerzuspiegeln.
    • Regelmäßiger Neuaufbau oder Reorganisation der Indexfragmentierung zur Verbesserung der Indexleistung.
    • Löschen von ungenutzten oder doppelten Indizes, um den Overhead bei der Indexpflege zu reduzieren.

       

  3. Datenbank-Optimierung: Dies beinhaltet die Entwicklung und Pflege optimaler Datenbankstrukturen und -einstellungen für Ihr System. Sie können verschiedene Methoden zur Optimierung Ihrer Datenbank anwenden, z. B.:

     

    • Auswahl der richtigen Datentypen und Größen für Ihre Spalten und Variablen
    • Auswahl der richtigen Sortierung und Kompatibilitätsebene für Ihre Datenbank
    • Auswahl des richtigen Wiederherstellungsmodells und der richtigen Sicherungsstrategie für Ihre Datenbank
    • Auswahl der richtigen Dateigruppe und des richtigen Dateilayouts für Ihre Datenbank
    • Auswahl des richtigen Partitionierungsschemas und der richtigen Strategie für Ihre Datenbank
    • Auswahl der richtigen Komprimierungsoption und -stufe für Ihre Datenbank
    • Normalisierung oder Denormalisierung Ihres Datenbankschemas nach Ihren Bedürfnissen

       

Schlussfolgerung

Die Leistungsoptimierung von SQL Server ist ein komplexer und kontinuierlicher Prozess, der viel Wissen und Erfahrung erfordert. Wenn Sie jedoch einige der in diesem Blogbeitrag erwähnten Best Practices und Tools befolgen, können Sie die Leistung Ihrer SQL Server-Instanzen erheblich verbessern. Denken Sie daran, Ihre Änderungen immer in einer Entwicklungs- oder Staging-Umgebung zu testen, bevor Sie sie in die Produktion übernehmen, und die Auswirkungen Ihrer Änderungen auf die Systemleistung zu überwachen. Viel Spaß beim Tunen!

 

 


 

 

Dokumentation

Database perf_neartime.docx (1,52 MB)

Database perf_neartime_red.docx (1,79 MB)

Query store results description.docx (359,29 KB)

Database perf_querystore.docx (3,95 MB)

 

 


 

 

  

 

 


 

 

SQL Server Performance Tuning ist ein komplexer und mühsamer Prozess. Überlassen Sie diese Arbeit den Profis.

Ich helfe Ihnen gerne bei der Optimierung und Einrichtung der Datenbank Ihres Unternehmens.

Einfach anrufen +41 (0)58 590 10 04 oder Kontaktieren Sie uns auf jede geeignete Weise. 

Ihr Projekt hinzufügen
Wenn Sie möchten, dass wir Ihr Projekt durchführen, laden Sie bitte alle notwendigen Details hoch und wir werden gerne alle Details unserer Zusammenarbeit mit Ihnen besprechen.
Name
E-Mail
Möchten Sie bestellen
Laden Sie Ihr Briefing hoch
Für Meldung
Send Message
Vorlage bestellen
Um das Theme zu installieren und zu konfigurieren, müssen Sie Ihre Rechnungsdaten und Hosting-Daten (FTP, PHP-Admin-Logins, Passwörter) angeben. Danach installieren unsere Spezialisten das Template und Sie können es testen.
Name
E-Mail
Möchten Sie bestellen
Hosting von Daten und Datenbanken
Für Meldung
Anfrage senden
Ihre Rezension hinzufügen
Wenn Sie mit unserem Unternehmen gearbeitet haben, können Sie Ihre Bewertung mit dem unten stehenden Formular hinzufügen. Laden Sie Ihre Bewertung im A4-Format (Microshoft World), Youtube url, Text... hoch.
Name
E-Mail
Ihre Bewertung hochladen
URL video-bewertungen Youtube
Eine Bewertung schreiben
Bewertung abgeben
Ihre Rezension hinzufügen
Wenn Sie mit unserem Unternehmen gearbeitet haben, können Sie Ihre Bewertung mit dem unten stehenden Formular hinzufügen. Laden Sie Ihre Bewertung im A4-Format hoch (Microshoft World)
Name
Hochladen
Bewertung abgeben

Benutzervereinbarung

Mit diesem Fragebogen (Antrag) erkläre ich mich offiziell mit der Verarbeitung (Erhebung, Systematisierung, Akkumulation, Speicherung, Klärung, (Aktualisierungen, Änderungen), Nutzung, Verteilung (einschließlich Übermittlung), Depersonalisierung, Sperrung und Vernichtung), auch automatisiert, meiner in diesem Fragebogen (Antrag) angegebenen personenbezogenen Daten, in Übereinstimmung mit den Anforderungen des Gesetzes "Über personenbezogene Daten" einverstanden.

Die vom Kunden angegebenen personenbezogenen Daten werden zum Zweck der Kommunikation mit dem Kunden, sowie zur Information über weitere Produkte und Dienstleistungen zur Verfügung gestellt. Die Einwilligung wird ab dem Zeitpunkt des Ausfüllens dieses Antrags für die gesamte Lebenszeit des Kunden erteilt.

Diese Einwilligung kann vom Kunden durch Einreichung eines Antrags in einfacher Schrift gemäß den gesetzlichen Anforderungen widerrufen werden.

+41 (0)56 552 01 85

+41 (0)58 590 10 04

+41 (0)44 442 01 80

+41 (0)56 552 01 86