Wir befinden uns in der SQL Azure v12 Standard / S2-Serviceebene und sind mit der Leistung nicht zufrieden. Daher versuche ich zu messen, wo der Engpass liegt. Mir ist klar, dass wir möglicherweise an die Grenzen der S2-Serviceebene stoßen. S2 hat eine Beschränkung von 50 DTU und 2.570 Transaktionen pro Minute.
Speicherdruck:
Ich habe mir das angeschaut sys.dm_exec_query_memory_grants
und es gibt keine ausstehenden Speicherzuweisungen und der angeforderte Speicher wird gewährt. Die Lebenserwartung der Seite beträgt ca. 600.
DTU
Die durchschnittliche DTU scheint nicht mehr als 50% einheitlich zu sein. avg_cpu_percent und avg_data_io_percent liegen selten über 50%. avg_memory_usage_percent bleibt bei 99%. Ich habe diese Informationen von dersys.dm_db_resource_stats
Transaktionen pro Sekunde
Wie messe ich Transaktionen / Sek. In SQL Azure? Die DMV sys.dm_os_performance_counters
für Transaktionen / Sek. Hat keine Werte für die Benutzerdatenbanken. Es hat Werte für Systemdatenbanken.
Antworten:
Sie können dieses von Dimitri Furman von Microsoft geschriebene Skript verwenden. Es werden Transaktionen pro Sekunde pro Datenbank gemessen. Sie müssen dies für die Datenbank ausführen, in der Sie Transaktionen / Sek. Messen möchten. Ich habe dies gegen die V12-Version getestet und es funktioniert.
https://blogs.msdn.microsoft.com/dfurman/2015/04/02/collecting-performance-counter-values-from-a-sql-azure-database/
quelle