Frage

Ich bin Stress eine .NET-Web-Anwendung zu testen. Ich tat dies aus 2 Gründen: ich, welche Leistung wie unter war realen Bedingungen sehen wollte und auch sicherstellen, dass wir keine Probleme während des Tests nicht verpasst hatte. Wir hatten 30 gleichzeitige Benutzer in der Anwendung, um sie, wie sie es während des normalen Ablaufs ihrer Arbeit verwenden. Die meisten Benutzer hatten mehrere Fenster der Anwendung zu öffnen.

  • 10 Benutzer: Nicht schlecht
  • 20 Benutzer: Verlangsamen
  • 30 Benutzer: Sehr, sehr langsam, aber keine Timeouts

Es wurde auf dem Produktionsserver geladen. Es ist ein virtueller Server mit einem 2,66GHz Hz Xeon Prozessor und 2 GB RAM. Wir verwenden Win2K3 SP2. Wir haben .NET 1.1 und 2.0 geladen und werden mit SQLExpress SP1.

Wir nachgeprüft die Indizes für alle Tabellen Nachwort und sie waren alle, wie sie sein sollte.

Wie können wir unsere Anwendung der Leistung verbessern?

War es hilfreich?

Lösung

Das ist nur etwas, das dachte ich an, aber überprüfen, um zu sehen, wie viel Speicher SQL Server verwendet wird, wenn Sie mehr als 20 Benutzer haben - eine der Einschränkungen der Express-Version ist, dass es beschränkt auf 1 GB RAM . So könnte es nur eine einfache Sache von nicht ausreichten Speicher auf Server verfügbar sein aufgrund der Einschränkungen des Express.

Andere Tipps

  1. Sie können in Concurrency Probleme ausgeführt werden, je nachdem, wie Ihre Anwendung ausgeführt wird. Versuchen Sie, Ihre liest mit dem „nolock“ Stichwort durchzuführen.

  2. Versuchen Sie in Tabelle Aliase für Ihre Spalten hinzufügen (und die Verwendung von SELECT * vermeiden), hilft dies aus MSSQL, da es nicht muss „erraten“, welche Tabelle der Spalten kommen.

  3. Wenn Sie nicht bereits sind, zu sprocs bewegen, ermöglicht diese MSSQL Ihre Daten besser für eine bestimmte Abfrage normalen Ergebnismenge zu indizieren.

  4. Versuchen Sie nach dem Ausführungsplan Ihres sprocs zu gewährleisten, dass sie die Indizes verwenden Sie denken, sie sind.

  5. Führen Sie eine Spur gegen Ihre Datenbank, um zu sehen, was die eingehenden Anfragen aussehen. Sie können eine bestimmte SPROC bemerken wird überfahren und über: in der Regel ein gutes Zeichen, die Antworten auf dem Client, wenn möglich, cachen. (Lookup-Listen, etc.).

Update: Sieht aus wie SQL Server Express ist nicht das Problem, da sie das gleiche Produkt in früheren Version der Anwendung verwendet hat. Ich denke, der nächste Schritt ist, um die Engpässe zu identifizieren. Wenn Sie sicher sind sie in der Datenbank-Ebene ist, würde ich empfehlen, einen Profiler Spur zu nehmen und die Ausführungszeit der teuersten Abfragen abschalten zu müssen.

Dies ist ein weiterer Link I Statistiken von SQL Server Dynamic Management Views (DMVs) und damit verbundene dynamische Verwaltungsfunktionen (ZMS) Sammeln verwenden für. Nicht sicher, ob wir in der Express Edition verwenden können. Aufdecken verborgener Daten Application Performance zu optimieren.


Sind Sie mit SQL Server Express für einen Web-App? Soweit ich weiß, es gibt einige Einschränkungen für die Produktion Einsatz hat.

SQL Server Express ist kostenlos und kann von ISVs umverteilt werden (nach Vereinbarung). SQL Server Express ist ideal für das Lernen und Gebäude Desktop und kleine Server-Anwendungen . Diese Ausgabe ist die beste Wahl für unabhängige Softwareanbieter, nicht-professionelle Entwickler und Bastler bauen Client-Anwendungen. Wenn Sie erweiterte Datenbankfunktionen benötigen, können SQL Server Express nahtlos auf komplexere Versionen von SQL Server aufgerüstet werden.

Ich würde die Festplattenleistung auf dem virtuellen Server überprüfen. Wenn das eines der Themen ist, würde ich empfehlen, die Datenbank auf einem separaten Spindel setzen.

Update:. Gehen Sie zu trennen Spindel oder SQL Server-Version aktualisieren, wie Gulzar treffend schlägt

stellen Sie sicher, enge Verbindungen nach Abrufen von Daten.

Ausführen von SQL Profiler die Abfragen an die Datenbank gesendet, um zu sehen. Geben Sie für Abfragen, die sind:

  • zu viele Daten zurückkehr
  • konstruiert schlecht
  • ausgeführt werden zu oft
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top