Οι επιδόσεις είναι αργή, εάν ο πίνακας AsyncOperationBase γίνεται πολύ μεγάλο στο Microsoft Dynamics CRM 4.0

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 968520 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Σε αυτήν τη σελίδα

Συμπτώματα

Όταν εκτελείτε το Microsoft Dynamics CRM 4.0, ο πίνακας AsyncOperationBase μεγαλώνει είναι πολύ μεγάλο. Όταν ο πίνακας περιέχει εκατομμύρια εγγραφές, οι επιδόσεις είναι αργή.

Επιπλέον, σφάλματα παρόμοια με τα παρακάτω καταγράφονται στο διακομιστή Microsoft Dynamics CRM στο αρχείο καταγραφής συμβάντων εφαρμογής:
Τύπος συμβάντος (Event Type): Σφάλμα (Error)
Προέλευση συμβάντος: MSCRMDeletionService
Κατηγορία συμβάντος: καμία
Το Αναγνωριστικό συμβάντος: 16387
Ημερομηνία: 2009/01/26
Χρόνος: 11:41:54 πμ
Χρήστης: δ/Υ
Υπολογιστής: CRMSERVER
Περιγραφή: Σφάλμα: Διαγραφή υπηρεσίας απέτυχε να εκκαθαρίσετε τον πίνακα = CleanupInactiveWorkflowAssembliesProcedure για περισσότερες πληροφορίες, ανατρέξτε στη Βοήθεια και υποστήριξη στο http://go.microsoft.com/fwlink/events.asp.

Προτεινόμενη αντιμετώπιση

Για να επιλύσετε αυτό το ζήτημα, πρέπει να εκτελέσετε μια εκκαθάριση του πίνακα AsyncOperationBase εκτελώντας την ακόλουθη δέσμη ενεργειών σε σχέση με το<orgname></orgname>Βάση δεδομένων _MSCRM, όπου <orgname>είναι ένα σύμβολο κράτησης θέσης για το πραγματικό όνομα της εταιρείας σας.</orgname>

ΠΡΟΣΟΧΗ:Πριν από την εκκαθάριση των δεδομένων Παρακαλώ Σημειώστε ότι η ολοκλήρωση του συστήματος έχει τιμή εργασίας σε ορισμένες περιπτώσεις εργασίες και πρέπει να αποθηκεύονται για μεγάλη χρονική περίοδο, επομένως, Συζητήστε επικοινωνήστε με το προσωπικό σας orgnization διαχείρισης πρώτα.

Εργασίες συστήματος effected:
  • Συλλογή δεδομένων SQM. -Μετρήσεις ποιότητας λογισμικό που συλλέγει δεδομένα για τον πελάτη παρουσιάσει πρόγραμμα.
  • Πολιτείες συμβολαίου ενημέρωσης εργασίας SQL. Αυτή η εργασία εκτελείται μία φορά ανά ημέρα τα μεσάνυχτα. Αυτή η εργασία ορίζει τα συμβόλαια που έχουν λήξει σε κατάσταση Ληγμένων.
  • Ο οργανισμός πλήρους κειμένου Κατάλογος δείκτης - συμπληρώνουν ευρετήριο πλήρους κειμένου σε db για αναζήτηση άρθρα της kb στο CRM.

Εάν ακυρωθεί επαναλαμβανόμενες εργασίες τους θα καταργηθεί.

ΣΗΜΕΙΩΣΕΙΣ
  • Η δέσμη ενεργειών SQL σε αυτό το άρθρο KB είναι μόνο μίας φοράς προσπάθεια.Αυτό μπορείτε να το προσθέσετε ως διαδικασία SQL για να εκτελούνται σε περιοδική βάση σε ένα nightly, εβδομαδιαία ή μηνιαία βάση.Καθώς εκτελείται το CRM,πρέπει να εφαρμόσετε αυτό το άρθρο KB σε εβδομαδιαία βάση ανάλογα με τις ανάγκες της εργασίας σας ή να εφαρμόσετε τη λύση writting προσαρμοσμένη DELETE ΜΑΖΙΚΈΣ εργασίες (ανατρέξτε στην τεκμηρίωση του SDK του CRM μας στην ιδιότητα BulkDeleteRequest.QuerySet, BulkDeleteRequest κλάσης και εντολής διαγραφής).
  • Βεβαιωθείτε ότι οι εγγραφές AsyncOperation για ροές εργασίας και τις αντίστοιχες εγγραφές διαγράφονται από τοWorkflowLogBaseObject.
  • Βεβαιωθείτε ότι έχουν διαγραφεί όλες τις αντίστοιχες εγγραφές bulkdeletefailure.
  • Βεβαιωθείτε ότι μόνο οι παρακάτω ασύγχρονη λειτουργία τύποι διαγράφονται εάν ο κωδικός κατάστασης των τύπων είναι 3 και ο κωδικός κατάστασης των τύπων είναι 30 ή 32:
    • Ροή εργασίας εργασιών επέκτασης (1)
    • Συλλογή δεδομένων SQM (9)
    • PersistMatchCode (12)
    • FullTextCatalogIndex (25)
    • UpdateContractStates (27)
    • Η ροή εργασίας (10)
IF EXISTS (SELECT name from sys.indexes
                  WHERE name = N'CRM_AsyncOperation_CleanupCompleted')
      DROP Index AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted
GO
CREATE NONCLUSTERED INDEX CRM_AsyncOperation_CleanupCompleted
ON [dbo].[AsyncOperationBase] ([StatusCode],[StateCode],[OperationType])
GO

declare @DeleteRowCount int
Select @DeleteRowCount = 2000
declare @DeletedAsyncRowsTable table (AsyncOperationId uniqueidentifier not null primary key)
declare @continue int, @rowCount int
select @continue = 1
while (@continue = 1)
begin      
begin tran      
insert into @DeletedAsyncRowsTable(AsyncOperationId)
      Select top (@DeleteRowCount) AsyncOperationId from AsyncOperationBase
      where OperationType in (1, 9, 12, 25, 27, 10) AND StateCode = 3 AND StatusCode in (30, 32)     
       Select @rowCount = 0
      Select @rowCount = count(*) from @DeletedAsyncRowsTable
      select @continue = case when @rowCount <= 0 then 0 else 1 end      
        if (@continue = 1)        begin
            delete WorkflowLogBase from WorkflowLogBase W, @DeletedAsyncRowsTable d
            where W.AsyncOperationId = d.AsyncOperationId             
 delete BulkDeleteFailureBase From BulkDeleteFailureBase B, @DeletedAsyncRowsTable d
            where B.AsyncOperationId = d.AsyncOperationId
 delete WorkflowWaitSubscriptionBase from WorkflowWaitSubscriptionBase WS, @DeletedAsyncRowsTable d
 where WS.AsyncOperationId = d.AsyncOperationID 
            delete AsyncOperationBase From AsyncOperationBase A, @DeletedAsyncRowsTable d
            where A.AsyncOperationId = d.AsyncOperationId             
            delete @DeletedAsyncRowsTable      
end       
commit
end
--Drop the Index on AsyncOperationBase
DROP INDEX AsyncOperationBase.CRM_AsyncOperation_CleanupCompleted


Βελτίωση της απόδοσης της δέσμης ενεργειών διαγραφής

  • Για να βελτιώσετε τη συνολική απόδοση του Microsoft CRM, Προγραμματίστε την υπηρεσία Microsoft CRM διαγραφής για εκτέλεση στη διάρκεια εκτός των ωρών αιχμής για το Microsoft CRM. Από προεπιλογή, η υπηρεσία εκτελείται μέχρι τη στιγμή που έγινε η εγκατάσταση του Microsoft CRM. Ωστόσο, μπορείτε να εκτελέσετε την υπηρεσία να εκτελείται στις 10: 00 μμ αντί για την προεπιλεγμένη ώρα. Για να το κάνετε αυτό, χρησιμοποιήστε το πρόγραμμα επεξεργασίας εκτύπωσης ScaleGroup Microsoft CRM. Για περισσότερες πληροφορίες, επισκεφθείτε την ακόλουθη τοποθεσία του MSDN στο Web:
    http://Code.MSDN.Microsoft.com/ScaleGroupJobEditor/Release/ProjectReleases.aspx?ReleaseId=676
    ΣΗΜΕΙΩΣΗΗ ενέργεια αυτή δεν επηρεάζει άμεσα την απόδοση της δέσμης ενεργειών.
  • Για να βελτιώσετε τις επιδόσεις των δεσμών ενεργειών της διαγραφής αυτού του άρθρου και να βελτιώσετε το DeletionService CRM Microsoft διαγράφει τον κώδικα που εκτελείται παρόμοια, προσθέστε τα εξήςthreeτα ευρετήρια στη βάση δεδομένων OrganizationName_MSCRM πριν να εκτελέσετε τη δέσμη ενεργειών διαγραφής αυτού του άρθρου:
    CREATE NONCLUSTERED INDEX CRM_WorkflowLog_AsyncOperationID ON [dbo].[WorkflowLogBase] ([AsyncOperationID])
    GO 
    
    CREATE NONCLUSTERED INDEX CRM_DuplicateRecord_AsyncOperationID ON [dbo].[DuplicateRecordBase] ([AsyncOperationID])
    GO
    
    CREATE NONCLUSTERED INDEX CRM_BulkDeleteOperation_AsyncOperationID ON [dbo].[BulkDeleteOperationBase]
    (AsyncOperationID)
    GO
    
    ΣΗΜΕΙΩΣΗΕάν δεν προσθέσετε αυτά τα ευρετήρια, η δέσμη ενεργειών διαγραφής μπορεί να διαρκέσει ώρες εκτέλεσης.
  • Διακόψτε την υπηρεσία του Microsoft CRM ασύγχρονης επεξεργασίας κατά την εκτέλεση αυτής της δέσμης ενεργειών.
  • Προαιρετικό:Αναδημιουργήστε το παρακάτω ευρετηρίων και στατιστικά στοιχεία:
    -- Rebuild Indexes & Update Statistics on AsyncOperationBase Table 
    ALTER INDEX ALL ON AsyncOperationBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
    GO 
    -- Rebuild Indexes & Update Statistics on WorkflowLogBase Table 
    ALTER INDEX ALL ON WorkflowLogBase REBUILD WITH (FILLFACTOR = 80, ONLINE = OFF,SORT_IN_TEMPDB = ON, STATISTICS_NORECOMPUTE = OFF)
    
    GO
  • Προαιρετικό:Update Statistics with Full Scan on all the tables involved with this query using the below commands (preferably at off peak hours):
    UPDATE STATISTICS [dbo].[AsyncOperationBase] WITH FULLSCAN
    UPDATE STATISTICS [dbo].[DuplicateRecordBase] WITH FULLSCAN
    UPDATE STATISTICS [dbo].[BulkDeleteOperationBase] WITH FULLSCAN
    UPDATE STATISTICS [dbo].[WorkflowCompletedScopeBase] WITH FULLSCAN
    UPDATE STATISTICS [dbo].[WorkflowLogBase] WITH FULLSCAN
    UPDATE STATISTICS [dbo].[WorkflowWaitSubscriptionBase] WITH FULLSCAN
  • OPTIONAL: Change the MSCRM database's recovery model to Simple to avoid excess generation of SQL server logs. For SQL server 2005, login to the Microsoft SQL Server Management Studio as Administrator, right click your <org_name>_MSCRM database, click </org_name>Ιδιότητες (Properties)Κάντε κλικOptions, και στη συνέχεια κάντε κλικ στο κουμπίRecovery Model. MarkΑπλή, και στη συνέχεια κάντε κλικ στο κουμπίOk.After running this script the initial time, the <org_name>_MSCRM database recovery model should be switched back to FULL for the best data recoverability model.</org_name>




To determine the number of records to be deleted by the script in this article, run the following count script against the OrganizationName_MSCRM database:

Select Count(AsyncOperationId)from AsyncOperationBase WITH (NOLOCK)
where OperationType in (1, 9, 12, 25, 27, 10) 
AND StateCode = 3 AND StatusCode IN (30,32) 

Script Error:

When running the cleanup script, you may run into an error similar to the following:

The DELETE statement conflicted with the REFERENCE constraint "asyncoperation_workflowwaitsubscription". The conflict occurred in database "Contoso_MSCRM", table "dbo.WorkflowWaitSubscriptionBase", column 'AsyncOperationId'.The statement has been terminated.


If you run into this error message, stop the cleanup script and follow these steps to remove the remaining WorkflowWaitSubscription records that exist for completed or cancelled workflows. These records should no longer exist as they should have been deleted already when the workflows were completed or cancelled.We should not see any records returned from this query.  Anything left in the WorkflowWaitSubscriptionBase table that shows up in this query is an orphaned record.  You will not be able to delete these records through the UI because the Microsoft CRM Async process is in a cancelled or completed state.
The following script will verify how many orphaned WorkflowWaitSubscriptionBase records exist for completed and cancelled workflow records:

select count(*) from workflowwaitsubscriptionbase WITH (NOLOCK) 

where asyncoperationid in

(Select asyncoperationid from AsyncOperationBase WITH (NOLOCK)

where OperationType in (1, 9, 12, 25, 27, 10) 

AND StateCode = 3 AND StatusCode IN (30,32))

The following script will delete WorkflowWaitSubscriptionBase records for stranded WorkflowWaitSubscriptionBase records for completed and cancelled workflow records:

delete from workflowwaitsubscriptionbase 
where asyncoperationid in(Select asyncoperationidfrom AsyncOperationBase
where OperationType in (1, 9, 12, 25, 27, 10) 
AND StateCode = 3 AND StatusCode IN (30,32))
After this delete statement is executed, the AsyncoperationBase and Workflow cleanup script will complete successfully.



Περισσότερες πληροφορίες

Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
954929The AsyncOperation entity consumes a significant part of the [Org]_MSCRM database and causes poor performance in Microsoft Dynamics CRM
Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft (Knowledge Base):
957871Εγγραφών εργασιών επέκτασης ροής εργασίας έχει ως αποτέλεσμα τον πίνακα AsyncOperationBase στη βάση δεδομένων MSCRM να αυξηθεί υπερβολικά μεγάλο στο Microsoft Dynamics CRM 4.0
Για περισσότερες πληροφορίες σχετικά με την ορολογία ενημερωμένων εκδόσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής βάσης της Microsoft:
824684Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft
Για περισσότερες πληροφορίες σχετικά με το Microsoft Business Solutions CRM λογισμικού επείγουσα επιδιόρθωση και η ενημερωμένη έκδοση πακέτου ορολογία, κάντε κλικ στον αριθμό του άρθρου παρακάτω για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
887283Προδιαγραφές ονομάτων πακέτου επειγουσών επιδιορθώσεων και ενημερωμένων εκδόσεων λογισμικού του Microsoft Business Solutions CRM

Ιδιότητες

Αναγν. άρθρου: 968520 - Τελευταία αναθεώρηση: Δευτέρα, 12 Σεπτεμβρίου 2011 - Αναθεώρηση: 3.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft Dynamics CRM 4.0
Λέξεις-κλειδιά: 
kbfix kbautohotfix kbexpertiseinter kbsurveynew kbmbsmigrate kbqfe kbhotfixserver kbmt KB968520 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:968520

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com