Steigern und Optimieren der Leistung
Es ist wichtig, dass Sie die Möglichkeiten kennen, um die Leistung von Azure SQL zu steigern und zu optimieren, damit Sie schließlich eine konsistente Leistung erzielen. Dazu gehört, dass Sie wissen, wie Sie die CPU-Kapazität skalieren, die E/A-Leistung erhöhen, den Arbeitsspeicher sowie die Worker konfigurieren, die Anwendungslatenz verkürzen und gängige bewährte Methoden zur Optimierung von SQL Server anwenden.
Skalieren der CPU-Kapazität
Möglicherweise müssen Sie die Anzahl der CPUs für Ihre Ressourcenanforderungen skalieren. In einer lokalen Umgebung müssten Sie hierfür einen virtuellen Computer neu konfigurieren, Hardware ändern und sogar Ihre Datenbank migrieren. Azure SQL ermöglicht dies, ohne dass eine Migration erforderlich ist. Sie können die Anzahl der virtuellen Kerne für Ihre Bereitstellung mithilfe des Azure-Portals, mit T-SQL, über die Azure CLI oder über REST-APIs hoch- oder herunterskalieren.
In der Regel kommt es zu Downtime. Da jedoch keine Migration erforderlich ist, kann diese für Azure SQL-Datenbank sehr kurz ausfallen. Mit Hyperscale-Bereitstellungen können Sie unabhängig von der Datengröße zeitlich konstant hochskalieren, und Serverless-Bereitstellungen ermöglichen die automatische Skalierung in Abhängigkeit von der CPU-Auslastung.
Hinweis
Die Skalierung kann in Azure SQL Managed Instance zwar einen erheblichen Zeitaufwand bedeuten, erfordert jedoch keine Migration.
E/A-Leistung
Die E/A-Leistung kann für eine Datenbankanwendung von entscheidender Bedeutung sein. In Azure SQL wird der Benutzer von der aktiven (physischen) Dateiplatzierung abstrahiert. Dennoch haben Sie verschiedene Möglichkeiten sicherzustellen, dass Sie die benötigte E/A-Leistung erhalten.
Die Eingabe/Ausgabe pro Sekunde (Input/Output Per Second, IOPS) kann eine sehr wichtige Kennzahl für Ihre Anwendung sein. Vergewissern Sie sich, dass Sie die richtige Dienstebene und die richtige Anzahl von virtuellen Kernen für Ihre IOPS-Anforderungen ausgewählt haben. Setzen Sie sich damit auseinander, wie Sie den IOPS für Ihre Abfragen lokal messen können, wenn Sie die Migration zu Azure durchführen. Wenn Sie Einschränkungen für Ihre IOPS konfiguriert haben, kommt es möglicherweise zu langen E/A-Wartevorgängen. Im vCore-Einkaufsmodell können Sie vCores skalieren oder zu Business Critical oder Hyperscale wechseln, wenn Sie nicht über genügend IOPS verfügen. Bei Produktionsworkloads empfehlen wir bei Verwendung von DTU den Umstieg auf die Premium-Stufe.
Die E/A-Latenz ist eine weitere Schlüsselkomponente der E/A-Leistung. Wenn Sie die E/A-Latenz für Azure SQL-Datenbank verkürzen möchten, sollten Sie zur Dienstebene „Unternehmenskritisch“ oder „Hyperscale“ wechseln. Die E/A-Latenz in SQL Managed Instance kann ebenfalls durch einen Wechsel zu einer Dienstebene des Typs „Unternehmenskritisch“ oder durch das Heraufsetzen der Dateigröße oder der Dateianzahl für die Datenbank beschleunigt werden. Für die Verringerung der Latenz des Transaktionsprotokolls müssen Sie unter Umständen Transaktionen mit mehreren Anweisungen ausführen.
Erhöhen des Speichers oder der Worker
Ein weiterer möglicherweise wichtiger Faktor für Ihre Anwendung und Bereitstellung sind genügend Arbeitsspeicher bzw. genügend Worker. In Azure SQL-Datenbank können Sie die Anzahl der virtuellen Kerne hochskalieren, um das Speicherlimit oder die Anzahl der Worker zu erhöhen. In SQL Managed Instance erzielen Sie durch Hochskalieren der virtuellen Kerne höhere Speicherlimits. Derzeit unterstützt SQL Managed Instance auch das Erhöhen der Workeranzahl mit „Max. Anzahl von Arbeitsthreads“.
Verbessern der Anwendungslatenz
Auch wenn Sie Ihre Bereitstellung allen Ressourcenanforderungen entsprechend konfigurieren, kann es in Anwendungen zu Leistungsproblemen in Bezug auf die Latenz kommen. Bei Azure SQL-Anwendungen sollten Sie sich an die folgenden bewährten Methoden halten:
- Verwenden eines „Redirect“-Verbindungstyps anstelle von „Proxy“
- Optimieren von kommunikationsintensiven Anwendungen mithilfe von gespeicherten Prozeduren oder durch Einschränken der Anzahl der Abfrageroundtrips mithilfe von Techniken wie Batches
- Optimieren von Transaktionen durch Gruppieren anstatt durch Singletontransaktionen
Optimieren wie in SQL Server
Bei Azure SQL handelt es sich weiterhin um SQL Server. In den meisten Fällen gibt es keine alternative Vorgehensweise für das Optimieren Ihrer SQL Server-Abfragen und das Überprüfen der folgenden Punkte:
- Guter Indexentwurf
- Verwenden von Batches
- Verwenden von gespeicherten Prozeduren
- Parametrisieren von Abfragen, um zu viele zwischengespeicherte Ad-hoc-Abfragen zu vermeiden
- Schnelleres und korrektes Verarbeiten der Ergebnisse in der Anwendung
In der folgenden Übung kehren Sie zu dem Leistungsproblem aus der ersten Übung zurück und verbessern es, indem Sie CPUs für Azure SQL skalieren.