Ярлыки

.Net (17) (9) 1с8 (4) 1с8.2 УП (3) документирование (1) интеграция (10) карта (1) собеседование (1) ado (1) ajax (11) ASP (1) asp.net (10) authentication (1) c# (14) coding (2) Crm Ribbon (2) csv (1) datareader (1) delegate (5) dhtml (5) exam (1) excel (10) ext (1) extjs (8) google maps (1) iis (3) javascript (33) JSON (5) linq (1) LN (5) log (1) lotus notes (5) mail (1) MS CRM (63) MS CRM 2015 (3) MS CRM 5 (48) MS CRM 6 (28) ms office (2) msi (1) MVC (1) namespace (1) oData (3) outlook (1) parent-child (2) plugin (1) program (4) Project Management (1) remote debugger (1) REST (1) SharePoint (1) SharePoint 2010 (2) Silverlight (2) soft (1) sql (13) sql reporting service (8) sql2005 (3) ssrs (2) Thread (4) tree (1) vb (6) vba (1) VSTO (1) WCF (4) wmi (1) wsc (2) xml (1) Xrm.Page (1) xslt (1)

среда, 1 ноября 2017 г.

MS CRM: план обслуживания и тормоза в системе

Тормозит CRM ежедневно в одно время.
Возможно, причина в плане обслуживания (Maintenance Jobs) CRM

Среди плана есть весьма ресурсоемкие задания - удаления, реиндекс, операции с файлами базы.
Вот весь перечень.

ObjectTypeCode
ObjectTypCode Name
1
System Event
2
Bulk Email
3
Import File Parse
4
Transform Parse Data
5
Import
6
Activity Propagation
7
Duplicate Detection Rule Publish
8
Bulk Duplicate Detection
9
SQM Data Collection
10
Workflow
11
Quick Campaign
12
Matchcode Update
13
Bulk Delete
14
Deletion Service
15
Index Management
16
Collect Organization Statistics
17
Import Subprocess
18
Calculate Organization Storage Size
19
Collect Organization Database Statistics
20
Collection Organization Size Statistics
21
Database Tuning
22
Calculate Organization Maximum Storage Size
23
Bulk Delete Subprocess
24
Update Statistic Intervals
25
Organization Full Text Catalog Index
26
Database log backup
27
Update Contract States
28
DBCC SHRINKDATABASE maintenance job
29
DBCC SHRINKFILE maintenance job
30
Reindex all indices maintenance job
31
Storage Limit Notification
32
Cleanup inactive workflow assemblies
35
Recurring Series Expansion
38
Import Sample Data
40
Goal Roll Up
41
Audit Partition Creation
42
Check For Language Pack Updates
43
Provision Language Pack
44
Update Organization Database
45
Update Solution
46
Regenerate Entity Row Count Snapshot Data
47
Regenerate Read Share Snapshot Data
50
Outgoing Activity
51
Incoming Email Processing
52
Mailbox Test Access
53
Encryption Health Check
54
Execute Async Request
49
Post to Yammer
56
Update Entitlement States
StatusCode
Description
0
Waiting For Resources
10
Waiting
20
In Progress
21
Pausing
22
Canceling
30
Succeeded
31
Failed
32
Canceled
StateCode
Description
0
Ready
1
Suspended
2
Locked
3
Completed
Задания лежат тут

select * from MSCRM_CONFIG..ScaleGroupOrganizationMaintenanceJobs

Наиболее опасные хранимые процедуры ORGNAME_MSCRM
[p_DefragIndexes]
[p_Reindex]
[p_ReindexAll]
[p_ShrinkMirroredFile]
я не уверен, что именно они используются.

select * from ORGNAME_MSCRM..AsyncOperationBase where not RecurrencePattern is null

тоже возвращает какие-то повторяемые задания.

Утилитка для управления планом CRM Maintenance Job Editor,
Мне не помогли манипуляции с планом, отключение заданий.

Скорее всего, все ломается на вызове этой инструкции.

exec sp_executesql N'  SET DEADLOCK_PRIORITY LOW  SET XACT_ABORT ON  BEGIN TRANSACTION   DECLARE @res INT   
EXEC @res = tempdb..sp_getapplock      
@Resource = ''AsyncService_app_lock-3c2e30ff-e018-e611-80ba-005056814858'',      
@LockMode = ''Exclusive''   

IF @res NOT IN (0, 1)   BEGIN    RAISERROR ( ''Unable to acquire App Lock'', 16, 1 )   END    ELSE   BEGIN   
With TopSuspendedAsyncOperations(AsyncOperationId)  AS  (  Select Top(@numberOfSuspendedOperationsToSelect) 
AsyncOperationId  from AsyncOperationBase o1  where   StateCode = @suspendedState  and ((PostponeUntil is NULL) 
or (PostponeUntil <= @modifiedOn))  and ((DependencyToken is NULL) or (not exists (   select AsyncOperationId 
from AsyncOperationBase o2   where    o2.Sequence < o1.Sequence   and o2.DependencyToken = o1.DependencyToken 
and o2.RecurrencePattern is null   and o2.StateCode in (@readyState,@lockedState,@suspendedState))))  ) 
update AsyncOperationBase  set   StateCode = @readyState,   StatusCode = @waitingStatus,   ModifiedOn = @modifiedOn, 
ModifiedBy = CreatedBy  From AsyncOperationBase join TopSuspendedAsyncOperations on 
AsyncOperationBase.AsyncOperationId = TopSuspendedAsyncOperations.AsyncOperationId 
EXEC @res = tempdb..sp_releaseapplock          @Resource = ''AsyncService_app_lock-3c2e30ff-e018-e611-80ba-005056814858'' 
END  COMMIT',
N'@readyState int,@lockedState int,@suspendedState int,@waitingStatus int,@numberOfSuspendedOperationsToSelect int,
@modifiedOn datetime',@readyState=0,@lockedState=2,@suspendedState=1,@waitingStatus=0,
@numberOfSuspendedOperationsToSelect=2000,@modifiedOn='2017-11-07 09:05:15'

Настройки, связанные со службой AsyncService, возможно, лежат тут

select ColumnName, IntColumn, BitColumn from DeploymentProperties where ColumnName like '%async%'

Их изменение существенно на проблему не повлияло. док от ms

Запись в реестр ключа
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM  AsyncDBAppLock (DWORD) = 1
повлияла положительно, но не избавила от проблемы совсем. То есть, начинает тормозить, но хотя бы не виснет совсем.


вот тут еще советы

Комментариев нет: