The Microsoft Dynamics CRM Team Blog
News and views from the Microsoft Dynamics CRM Team
In this post, I hope to touch on a few areas that can affect performance that maybe not everyone thinks of when planning for and analyzing the performance of their CRM system.
Advanced Find, System Views, and personal Saved Views all end up going through the same CRM query infrastructure. The CRM query model is quite powerful. Though you can’t do everything you can do in SQL, you can do quite a lot, which means it’s possible to craft very complex queries that affect the performance of the whole CRM system.
The ability to create system views should generally be restricted to admins and customizers, but for personal Saved Views, you may decide to restrict these as well, if you find that some users are creating queries that are too complex or are negatively impacting the system. Unfortunately, it’s not possible to retrieve saved views that you don’t own or that have not been shared to you in CRM. Creating a simple callout that will automatically share a created saved view with a particular team or a specific user who is a system admin is one option here. I would be interested in hearing if the inability for system admins to view these saved views has caused issues in any CRM implementation.
Hopefully everyone already reviews their System Views as part of their CRM implementation, but often queries that work well on small amounts of data may start performing poorly as your implementation ages and you have more and more data. It’s always a good idea to review your system views to make sure they are performing within your goals.
A couple of simple things to look for when you are tuning a System View (or a Saved View):
CRM has several automated mechanisms that help keep the system performing well, but for best results, it’s always good to examine these things directly with the knowledge of your customizations and usage patterns.
Another kind of saved query data that can affect the performance of the system are the definitions of the data that is brought down to the Laptop client. This is configured via “Local Data Groups” in the Laptop client.
As with Saved Views, you may want to examine how users are customizing these views and give guidance on how to customize for best performance.
Hopefully at least one of the areas mentioned above has some tuning opportunities you haven’t yet explored for your CRM implementation. It’s important to understand how your users are taking advantage of the rich customization tools CRM provides to get an accurate picture of the performance of your implementation.
If you have other performance topics you might want discussed in a post, please mention it in a comment – we’d love to hear about it.
As a CRM consultant when I log in as the CRM Admin I would like to be able to see/review all the my views users have created.
Here are some reasons:
1. Make sure I am current with what they are doing. Very often I can suggest a better approach.
2. Views that are structured correctly.
3. The ability to remove redundant views.
4. Often users ask me for help and I can't see the view. I have then go back and ask them to share the view with me, this should be automatic.
5. Hey I am the CRM admin, how can admin when I can't see everything?
A point with regards to the Offline local data that I would like to see addressed is the ability to set a 'default' template for teams of users specifying what data gets taken offline - when you have 100 of those configurations to set up in exactly the same way it can take weeks just for that small part of the implementation.
Jerry, think you meant to point to http://www.iBizInitiatives.com. :o)
Good article. One question I have is regarding the offline data definitions for the laptop client.
In addition to any filtering criteria that one would specify in their Local Data Group for an entity in order to limit the number of records that would be downloaded, do the user's security roles also limit the number of records downloaded?
For example, we have set up our customer's remote users (CRM laptop clients) to have a Local Data Group defined for the Quotes entity with no criteria thus enabling the Quote records to be downloaded.
In this situation what we think (hope) CRM is doing is only downloading quote records to which the user's security roles grants them access.
After reading your article, it crossed my mind that the CRM laptop client might be downloading all of the organization's quote records from the CRM server and applying security roles later when the user goes to access the quote records offline.
I hope this is not true. I look forward to your response.
... do the user's security roles also limit the number of records downloaded?
Yes, CRM security also limits what records are downloaded. Only records the user has at least read access to are downloaded.
"... the CRM laptop client might be downloading all of the organization's quote records from the CRM server and applying security roles later ...
All the security is evaluated on the server as part of calculating which records to take offline. No data the user does not have access to ever comes down to the client at any stage of the process in any form.
Thank you very much for your answer and clarifying what is downloaded to the CRM laptop client.