Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

LINQ to SQL:Zu viel CPU-Auslastung:Was passiert, wenn mehrere Benutzer vorhanden sind

Profil. Profil. Profil.

Profil, um genau herauszufinden, welche Abfrage die meisten Ressourcen beansprucht, und um die Leistung dieser Abfrage zu verbessern. Sie können die Log-Eigenschaft des DataContext verwenden, um die SQL anzuzeigen – siehe dieser Artikel . Sie können die Abfragepläne für eine Abfrage in SQL Server abrufen – siehe diesen Artikel .

Beispiele zur Verbesserung einer Abfrage:

  • Fehlende Indizes hinzufügen.
  • Schreiben Sie die Abfrage neu, um die bereits vorhandenen Indizes zu nutzen.
  • Rufen Sie nicht zu viele Daten pro Abfrage ab - verwenden Sie Paging und rufen Sie nur dann mehr Zeilen ab, wenn Sie dazu aufgefordert werden. Rufen Sie keine Felder ab, die Sie nicht benötigen.
  • Rufen Sie nicht zu wenige Daten pro Abfrage ab - machen Sie keine Schleife, indem Sie jeweils eine Zeile abrufen. Viele Zeilen auf einmal abrufen.

Sobald Sie dies getan haben, erstellen Sie erneut ein Profil, um zu überprüfen, ob Sie die Leistung dieser Abfrage verbessert haben. Wenn nicht, wiederholen Sie, bis Sie haben.

Profilieren Sie dann erneut, um zu sehen, was die nächste Killer-Abfrage ist, und wiederholen Sie den Vorgang, bis Ihre Leistung akzeptabel ist.

Sie sagen, Sie haben bereits ein Profil erstellt, aber Sie haben keine Profilinformationen wie Abfragen, Abfragepläne, Ausführungszeiten, Abfragehäufigkeit usw. gepostet. Ohne weitere Profilinformationen können wir nur raten.