摘要: 微软动态CRM专家罗勇 ,回复309或者20190308可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me 。
安装完毕Dynamics 365 Customer Engagement以后,可以看到有个服务,英文名称是 Microsoft Dynamics 365 Asynchronous Processing Service (maintenance) ,中文名称是 Microsoft Dynamics 365 异步处理服务 (maintenance) ,如下:
这个服务会运行一些定时作业,运行的作业如下图,作业说明来自文章 CRM 2013 Maintenance Jobs ,还可以参考文章: More juicy details on Dynamics CRM 2011 Asynchronous Service’s maintenance jobs 。
Maintenance Job Name |
Purpose |
Default Frequency/ Recommendation |
Deletion Service |
The deletion service maintenance operation now cleans up subscription tracking records for deleted metadata objects as they expire.
|
By default, the job executes every 24 hours, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
Indexing Management |
Validates that system-managed indexes exist for all entities and recreates any missing indexes. This is more for CRM Online and only impacts us during configuration of the solution. It automatically creates index for each column used in search for Quick Find if the index is not already created in the CRM database |
By default, the job executes every 24 hours, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
Reindex All |
Reorganizes/rebuilds fragmented indexes depending on the amount of fragmentation. It execute the p_ReindexAll stored procedure, it selects all indexes in the database with greater than 30% fragmentation and runs ReIndex on each while in online mode. Run while online mode means indexes are not taken offline while reindex is happening they still are active and are functioning and can be used. Large enterprise CRM implementation with big data volume should disable this CRM reindex job if a custom job is created for recreating the indexes and with run update stats. |
By default, the job executes every 24 hours, disable the job by setting the Job Next Run value to the future. E.g. 12/31/2999 |
Cleanup Inactive Workflow Assemblies |
Seeks custom workflow assemblies that are no longer referenced in workflow rules or in-process jobs. Those unreferenced assemblies are then deleted. Consider the scenario where you register version 2.0 of a custom workflow assembly. You may update your rules to reference the new version, but some in-progress jobs may still be referencing version 1.0. Once those jobs have completed, this maintenance job will clean up the version 1.0 assembly that is no longer referenced by rules/jobs. It executes the p_CleanupInactiveWorkflowAssemblies stored procedure. |
By default, the job executes every 24 hours, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
Create Audit Partition |
Alters the partitioning scheme for the auditbase table (SQL Enterprise only). |
By default, the job executes every month, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
Check for MUI Updates |
Detects upgrades to language (MUI) packs and schedules additional async operations to perform individual language provisioning. |
By default, the job executes every 24 hours, if you don’t have language pack installed, you can disable the job by setting the Job Next Run value to the future. E.g. 12/31/2999 |
Refresh Entity Row Count |
Refreshes the Record Count snapshot statistics leveraged enhanced query plans. This job is important because it define how Quick Find works, it uses the counts to come up with the correct query plan. |
By default, the job executes every 24 hours, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
Refresh Sharing Count |
Refreshes the POA read snapshot statistics leveraged in enhanced query plans. This job is important because it define how Quick Find works, it uses the counts to come up with the correct query plan. |
By default, the job executes every 24 hours, reschedule the job to run at non-peak hours. E.g. 11:00PM at night |
其中Reindex All作业会执行压缩数据库,还有就是必要的话重建索引,如果这个作业在白天用户使用比较频繁的时候执行的话,就会导致系统卡顿等不好的用户体验。建议重设到不繁忙的时候运行。
根据 Avoid Performance Issues by Rescheduling CRM 2011 Maintenance Jobs 的建议,使用 2011 Maintenance Job Editor Tool 来更新,可是这个工具已经不更新了,下面我介绍用SQL更新的办法。
首先要知道这些作业对应的编码是多少,请查看看实体System Job实体(架构名:AsyncOperation) 的 OperationType 字段的值,我这里记录如下:
Maintenance Job Name | Maintenance Job Code |
Deletion Service | 14 |
Indexing Management | 15 |
Reindex All | 30 |
Cleanup Inactive Workflow Assemblies | 32 |
Create Audit Partition | 41 |
Check for MUI Updates | 42 |
Refresh Entity Row Count | 46 |
Refresh Sharing Count | 47 |
然后一般需要改动两个,就是15和30,一般先查出来,再修改,注意要修改两个字段的值。
Select NextRunTime,RecurrenceStartTime,* from MSCRM_CONFIG.dbo.ScaleGroupOrganizationMaintenanceJobs where OperationType = 30
然后再执行更改语句,一般不需要更改日期,更改时间就可以了,注意这里用的都是UTC时间,如果你是东八区,需要减去八个小时才是哦。
update MSCRM_CONFIG.dbo.ScaleGroupOrganizationMaintenanceJobs set NextRunTime = '2019-03-08 17:00:00',RecurrenceStartTime='2019-01-20 17:00:00' where OperationType = 30