Wir haben einen ausgelasteten SSRS-Berichtsserver (SQL Server 2008 R2), auf dem häufig Blockierungen zwischen den folgenden Prozessen auftreten:
- [dbo]. [CheckSessionLock]
- [dbo]. [WriteLockSession]
Wir sind uns bewusst, dass einige Berichte unannehmbar langsam sind. Ich muss wissen, ob die Blockierung in der ReportServer-Datenbank symptomatisch für einen überlasteten Server ist oder ob die Blockierung dazu führt, dass die Berichte langsam ausgeführt werden.
Ich neige dazu zu glauben, dass dies der erste Fall ist, konnte aber keine Beweise dafür sammeln, dass dies definitiv der Fall ist.
Ich habe den Thread unter https://connect.microsoft.com/SQLServer/feedback/details/698388/blocking-in-ssrs-reportserver-database gelesen, in dem das Problem lose erkannt wird, aber ich kann nicht auf den zur Adressierung angegebenen Link zugreifen dieses Problem.
Haben einige das gleiche Problem mit dem Blockieren in der ReportServer-Datenbank auf den Grund gebracht?
quelle
Angenommen, Sie haben SQL 2008R2 oder höher.
Ja, wir haben dasselbe auch auf einem unserer häufig verwendeten SSRS-Berichtsserver gesehen, und bei der Fehlerbehebung ist dieses Verbindungselement aufgetreten , das als Fehler registriert ist.
Wie erklärt:
SSRS gibt diese Sperren aus, um einen Multithreading-Mechanismus bereitzustellen. Sobald alle Threads, in denen der von Ihnen geschriebene Bericht ausgeführt wird, beendet sind, wird die Sperre aufgehoben. Wenn Sie diese also sehen, ist es normalerweise eine langsame Abfrage auf einem anderen Server, die das Problem verursacht.
Einige Probleme können bei hoher Last auftreten (oder so heißt es), und einige berichten, dass Sortierprobleme die Ausführung von CleanExpiredSessions verhindern.
Ebenfalls,
Weitere Informationen und Lösungen hierzu finden Sie unter Sitzungszeitlimit während der Ausführung
quelle
Das Sperren / Blockieren dient der Gewährleistung der Konsistenz und ist ein normales Verhalten.
Sie können versuchen, die Isolationsstufe für festgeschriebene Snapshots für die ReportServerTempDB-Datenbank und SET ISOLATION LEVEL SNAPSHOT in der WriteLockSession-Prozedur zu lesen
Ich habe die Lösung nicht implementiert und würde sie nicht empfehlen.
Die einzige Lösung für dieses Problem ist die Verwendung eines anderen Berichterstellungstools
quelle