Performance issues Dynamics CRM security model

  The impact on system performance issues can be fatal, not once seriously, could erupt at any time in the near future, and even cause the system to not operate Caton, instant restart did not help; even extremely difficult to find. Here is the record about their own past experience. The beginning of the system design, largely determines the life cycle of the system, how long can the future, rather than spend money on reconstruction, good design will greatly reduce maintenance costs.

  Simply put under the authority of Dynamics CRM, if a user has permission to read a record, Dynamics CRM will the current user's user ID, sector ID, entity ID, authority level as a record recorded in Table SystemUserBusinessUnitEntityMap inside, therefore, when you create or assign record, it will be on the operating table (adding or deleting records), including changes to the business sector. In turn, the system will first check SystemUserBusinessUnitEntityMap table to determine whether the current user has permission to read a record. For example, show records in the view, the system will default to query record SystemUserBusinessUnitEntityMap table to confirm the current user has read access to which records, if the table is too large, it will affect query performance. In addition to the property owner, Dynamics CRM also supports sharing, that is to say in the case of the same owner, other users can share rights after share will be recorded in the table PrincipleObjecctAccess a user has what rights to an entity; in our view records when the system operation even look to see a record has not been shared to the current user, which is very time-consuming.

  A security role has assumed that business unit level (2/4) of read access to the incidentt entity, Joe Smith user to assign a security role A, and one of the logs record1 the owner is Joe Smith, then John Doe's department also has other security role a user also has permission to read record1, therefore, SystemUserBusinessUnitEntityMap table which will save other records user than John's; when we replace Joe Smith's business units, before the same with Joe Smith other user departments should not be looking at the record record1, the system will recalculate the authority to calculate which users will be removed from SystemUserBusinessUnitEntityMap table, and this calculation process is very slow.

  As can be seen, SystemUserBusinessUnitEntityMap amount of data factors are: the number of physical systems, the number of users and business unit level setting (level as possible), there is a security role to configure permissions permissions level.

1. The number of system entities. Understandably, the more entities, records SystemUserBusinessUnitEntityMap table is more (after an investigation found that when the authority level 0 entity is the number of records in SystemUserBusinessUnitEntityMap table and 1/4 is the same).

2. the number of users. The number of users as the number of system entities.

3. The level of business settings. The more level, then slow down the calculation process, affecting the performance record assigned.

4. permissions for a security role permissions configuration level. In general the higher the level of authority, the more records in SystemUserBusinessUnitEntityMap table, especially 3/4 depth level; but not the same rights organization level, which is 4/4 of the authority, the authority does not exist in the table SystemUserBusinessUnitEntityMap recording.

 

  We know these features later, we know better how to do the design, has reached the optimal performance, consider the following points:

1. the number of users, the number of entities, these businesses will grow as the business might increase, but the level of business we can try to flatten;

2. Try not to privilege level is set to 3/4, 3/4 because the permission level will increase the number recorded in SystemUserBusinessUnitEntityMap table;

owner 3. Try not to set records for the team, we can imagine, too much for the team record set when there will be a large number of records in the table SystemUserBusinessUnitEntityMap seriously affect system performance.

4. Try to avoid recording the shared operating system although such a function, we can also try to no or little use, if special circumstances when it had to use with. Of course, in order to reduce performance problems caused by sharing, we can also set certain rules to reduce the shared table PrincipleObjecctAccess, for example, after closing SR, and operational staff to confirm whether there is no need to share, and then can revoke sharing rights , or after three months there is no need to share the historical data to see only special account queries, or data archiving after the inquiry.

5. For disabled users, consider cleaning up its security role.

6. For disabled business, consider whether you can delete.

 

In the implementation process, we encountered a lot of really affecting system performance design:

  1. Use as a team owner.
  2. Excessive levels of business.
  3. There are a lot of sharing, but no mechanism for sharing revoked.
  4. Quick Find view excessive lookup field.
  5. Stage polymerization view too large amount of calculation.
  6. (Although nothing to do with security model, but also to mention) abuse of entities, records all activity entities will exist a record ActivityPointerointer entity. Operating entity activity is very bad.
  7. Find the fields used in the view using the default view, the view of the data range is too large.
  8. There is a lot of work flow, and the program has a background task to trigger code workflow and very often, the workflow should be used instead of the background task processing program.
  9. Query code with no indexes.
  10. Data archiving is not processed.

 

The above Dynamics CRM security model performance problems does not mean that the defective product itself, any system there will be a performance problem, you look at some results in poor performance of the system design how we use characteristics of the product to make good results, avoid and shorten the life cycle of the system or increase the operation and maintenance costs arise.

If not accurate, please correct me share, thank you!

Guess you like

Origin www.cnblogs.com/tcli/p/11119695.html