none
Hohe CPU-Auslastung auf SQL-Server durch DynamicsCRM RRS feed

  • Frage

  • Hallo,

    Seit geraumer Zeit haben wir eine außergewöhnlich hohe CPU-Auslastung auf unserem SQL Server (2008 R2) welcher das CRM 4.0 bedient.

    Der schuldige scheint laut der Abfrage

    SELECT *
     FROM sys.dm_exec_requests a
     OUTER APPLY sys.dm_exec_sql_text(a.sql_handle) b
     WHERE session_id > 50
     and session_id <> @@spid

    Folgender Insert zu sein:

    INSERT INTO DuplicateRecordBase (DuplicateId, BaseRecordId, DuplicateRecordId, DuplicateRuleId, AsyncOperationId,

    CreatedOn, DeletionStateCode, BaseRecordIdTypeCode, DuplicateRecordIdTypeCode)

    SELECT TOP 1000 NEWID(), A.ObjectId, B.ObjectId, '674097a7-b442-e111-a31b-000c29e19af7', '1dfdf1db-9f05-4930-8b17-3ed47d595df0'

    , GETDATE(), 0 , 4, 4 FROM dbo.MatchCode1c12135d7b744b39906eda6f2c9cb047 As A,

    dbo.MatchCode1c12135d7b744b39906eda6f2c9cb047 As B WHERE A.MatchCode = B.MatchCode AND A.ObjectId <> B.ObjectId

    AND A.ObjectId IN (SELECT RecordId FROM BulkDetect_1dfdf1db9f0549308b173ed47d595df0

    WHERE SN BETWEEN 8001 AND 9000) AND A.MatchCode IS NOT NULL AND

    NOT EXISTS (SELECT 1 FROM DuplicateRecordBase WHERE BaseRecordId = A.ObjectId AND

    DuplicateRecordId = B.ObjectId AND

    DuplicateRuleId = '674097a7-b442-e111-a31b-000c29e19af7' AND

    AsyncOperationId = '1dfdf1db-9f05-4930-8b17-3ed47d595df0' AND

    DeletionStateCode = 0 AND BaseRecordIdTypeCode = 4 AND DuplicateRecordIdTypeCode = 4)


    Aktuell ist CRM 4.0 UR 20 installiert sowie SQL Server 2008 R2 SP1.

    Ein

    DBCC FreeSystemCache('All')

    bringt für kurze Zeit Besserung, allerdings nicht auf Dauer.

    Vielen Dank

    Alexander Keilhofer

    Freitag, 4. Mai 2012 07:07

Antworten

Alle Antworten

  • Hallo Alexander,

    ich würde einmal die Größe der Async Tabelle überprüfen und diese aufräumen, siehe hierzu auch den folgenden KB Artikel:

    http://support.microsoft.com/kb/968520/en-us

    http://support.microsoft.com/kb/974896/en-us


    Viele Grüße

    Michael Sulz
    MVP für Microsoft Dynamics CRM
    Blog
    Website XING LinkedIn Facebook Twitter

    • Als Antwort markiert Michael Sulz Montag, 30. Mai 2016 06:54
    Freitag, 4. Mai 2012 07:38
  • Hallo Michael,

    Vielen Dank für die Antwort, leider wurde dies schon einmal durchgeführt ohne größere Verbesserung mit sich gebracht zu haben.

    Derzeit enthält die Tabelle 48536 Einträge (select count(*)...) was ja doch noch etwas wenig ist.

    den Registry-Fix werde ich dennoch einfließen lassen.

    Vielen Dank

    Alexander Keilhofer

    Freitag, 4. Mai 2012 07:51
  • Hallo Alexander,

    Ich würde mal die Duplikatsprüfungen kontrollieren und gegebenenfalls mal deaktivieren. Für mich scheint es so, als ob diese Prüfungen so streng konfiguriert sind, dass dermaßen viele Datensätze als Duplikate erkannt werden, dass die DB teilweise in die Knie geht...

    Liebe Grüße,

    Andreas


    Andreas Buchinger
    Microsoft Dynamics Certified Technology Specialist
    MCPD: SharePoint Developer 2010

    Freitag, 4. Mai 2012 08:32
  • Hallo Andreas,

    Habe in der Tat ein paar doppelte Duplikatsprüfungen gefunden und behoben.

    Leider wars wieder nicht so erfolgreich.

    Momentan steht 6 mal:

    CREATE function fn_CollectForCascadeDelete 

    an. wobei 1 runnable, 2*running und 3 suspended sind.

    Vielen Dank

    Alexander Keilhofer

    Freitag, 4. Mai 2012 09:45
  • Hallo Alexander,

    Läuft das DeletionService des CRM korrekt, d.h. werden die Datensätze, die zur Löschung markiert sind, auch wirklich gelöscht!?

    Ansonsten würde ich probieren, ob die CPU Auslastung durch einen Index-Rebuild besser wird...

    Liebe Grüße,

    Andreas


    Andreas Buchinger
    Microsoft Dynamics Certified Technology Specialist
    MCPD: SharePoint Developer 2010

    Freitag, 4. Mai 2012 10:51
  • Hallo Andreas,

    Wie überprüfe ich den DeletionService?

    Welche Indexe meinst du?

    Danke

    Alexander

    Freitag, 4. Mai 2012 11:19
  • Hallo Alexander,

    Im SQLAgent kannst du kontrollieren, ob hier irgendwelche Fehlermeldungen auftreten...

    Bezüglich Index meine ich den gesamten Index der Datenbank - hier ein paar Links: http://msdn.microsoft.com/en-us/library/ms189858.aspx ; http://blog.fumus.de/sql-server/2011/04/sql-server-index-leitfaden-verwaltung-der-indizes-durch-rebuild-oder-reorganize/

    Liebe Grüße,

    Andreas


    Andreas Buchinger
    Microsoft Dynamics Certified Technology Specialist
    MCPD: SharePoint Developer 2010

    Freitag, 4. Mai 2012 12:33
  • Hallo Andreas,

    Das scheints gewesen zu sein.

    habe mit dem angegebenen Script alle Indexe durchlaufen lassen.

    Jetzt ist wieder alles i.O.

    Vielen lieben Dank

    Alexander

    Mittwoch, 9. Mai 2012 09:50