Technical Deep Dive on Dynamics 365 Customer Engagement Performance Optimization - Nov. 22nd, 2017

Page created by Mark Carr
 
CONTINUE READING
Technical Deep Dive on Dynamics 365 Customer Engagement Performance Optimization - Nov. 22nd, 2017
1

Nov. 22nd, 2017

Technical Deep Dive on Dynamics 365
Customer Engagement Performance
Optimization
2

On today‘s call

           SIMONE ASTOLFI   RADU NEGULESCU
3

Agenda   •   Optimizing the Application
         •   Network
         •   Troubleshooting
         •   Troubleshooting Tools
         •   Q&A
4

Causes of Performance                          Effects of Performance
Issues                                         Issues
                  Users and business process                        Slow Form Loads

  Application     Application configuration
                                                Application         Saving Records
                      Application coding
                                                                 Slow List View Loading
                  Database index and table
                          design
   Database                                                     Slow Workflow Processing
                  SQL Server configurations
                                                 Database            Slow Searching
                      Operating System
                                                                Timeouts and Deadlocks
                          Hardware
 Infrastructure                                                       Slow Logins
                     Datacenter Network
                                               Infrastructure
                      Customer Network                                 Timeouts
5

Optimizing the Application
6

Client Machines
                                      • Meet/Exceed Hardware and Software Requirements

                                      • Power Settings
  Web Client requirements                   High Performance

  Supported Web Browsers and Mobile   • Non-essential applications
  Devices                                   Turn off or Disable

                                      • VDI/Citrix Scenarios

                                      • Antivirus Programs / ScriptScanning
                                              Add Dynamics site to list of safe sites
7

Internet Explorer

                    • IE Zoom - set to 100%

                    • New versions of stored pages - Automatic

                    • Disk Space to use - 250 MB

                    • Delete Browsing on Exit – Unmarked

                    • Do not save encrypted pages to disk -
                      Unmarked
8

System Settings

                  • IM Presence

                  • Learning Path

                  • Activity Feeds

                  • Legacy Form Rendering

                  • Enable Quick Find record limits

                  • Audit Only What You Need
9

Security Roles

                 •   Organization
                 •   Parent-Child Business Unit
                 •   Business Unit
                 •   User
                 •   None
10

Sharing Considerations

                                          •   Limit Sharing of records

                                          •   Use security roles and
  If sharing is needed use Access Teams       business units to grant
  if possible versus direct shares            access to records

                                          •   Direct vs Indirect Shares

                                          •   Access Teams

 Scalable Security Modeling
11

Cascading Considerations

                           Default Cascading rules are setup to cascade

                           If you are deleting an account and the account has
                           hundreds of activities and has contacts with hundreds of
                           activates and opportunities with activities the delete
                           cascades through all those records.
12

View Customizations
13

Form Customizations
                      Role-based Forms
                             Use to limit what loads on a form

                      Form Controls - Remove if not needed
                            Quick View Forms
                            Bing Maps
                            Timer Controls
                            Charts
                            Social Pane

                      IFrames & Web Resources
14

Demo
15

Developer Tips

 Best practices for developing with
 Microsoft Dynamics 365
16

Reporting
                                            • Complexity of Report and
                                              number of charts in a
                                              dashboard
                                            • 50,000 record limit with charts
                                            • Reports can span more the
                                              50,000 records, however must
                                              complete within 5 minutes or
                                              will timeout
                                            • Limit the fields pulled in the
                                              query

Microsoft Dynamics 365 (online) reporting
considerations
17

Network
18

Bandwidth and Latency

                                            • Average latency less than 150 ms.

                                            • Max Download Speed greater than
                                              50 KB/sec

Diagnostic Page
(https://.crm.dynamics.com/tools/
diagnostics/diag.aspx)
19

Troubleshooting
20

Questions to Ask

                                                  If only a subset of users are impacted, perhaps it is something
Does this impact certain users or is this issue   isolated to a certain office branch, Security Role or local
reproducible by all users?                        machine configuration.
21

Questions to Ask

                                                  If the issue is on certain forms, certain sections or areas of the
What entities/area does this issue happen with?   application, it potentially is related to customizations. The
                                                  amount of customizations, number of subgrids loading or client
                                                  side code executing slowly.
22

Questions to Ask

What form(s) does the issue happen with?   If the issue happens with only certain entities, investigation can
                                           focus on items interacting with this specific entity. If all entities
                                           are impacted, we can look at more general SQL issues,
                                           Network and client side for troubleshooting.
23

Questions to Ask

                                If the issue only reproduces in a specific browser, look for add-
                                ins for the affected browser to see if they may be causing
                                additional processing. If users are reporting the same behavior
  What browser is being used?   with the same browser, have them try from a new machine or
                                machine off company network and policies (such as a home
                                computer) and see if the issue still reproduces. If the issue
                                does not happen on a home computer, this could mean the
                                issue related to the Group Policy / configuration of machine on
                                the company network.
24

Legacy Forms

                                  This can be done with the customer by
Check and see if Legacy Form
                                  having them check Settings ->
rendering engine is being used.
                                  Administration -> System Settings ->
                                  General tab
25

Plugins                           Log into the instance and check if they have any plugins
                                  registered on that entity, specifically regarding 'Retrieve'
                                  message. This can be done by navigating to Settings ->
                                  Settings -> Customizations -> Customize the System -> Sdk
                                  Message Processing Steps.

                                  You can ignore the ActivityFeeds plugins typically as these are
Check and see if they have any    out of the box plugins. We are looking for entries which match
                                  the following:
plugins executing on the entity
in question                       - SDK Message = Retrieve (Possibly other SDK Message types
                                  as well, such as RetrieveMultiple)
                                  - Primary Object Type Code = 
                                  - Status = Enabled
                                  - Execution Mode= Synchronous

                                  SDK Message Processing Steps matching these results could
                                  be investigated as they would be executing when the record is
                                  loaded. These steps could be potentially disabled and the
                                  scenario can be retested without these enabled to see if the
                                  issue remains.
26

On Load Events
                             Navigate to Settings -> Customizations -> Customize the
                             System -> Entities ->  -> Forms -> . Then navigate to Form Properties -> Events tab.

                             Are there libraries listed under Form Libraries? If there is, these
                             are the libraries or the definitions of the client side scripting.
Under Form Customizations,   Under Event Handlers, Event: OnLoad, are there libraries listed
check for OnLoad events      here? Are they enabled? Should there be an OnLoad listed
                             here, this means when the page is loaded, it runs the
                             function(s) listed below.

                             If there are OnLoads listed and enabled, try disabling them,
                             save and publish the forms. Then attempt to reproduce the
                             issue.
27

Express Route
                                          Not routing customer information
                                          via the public internet

                                          Dedicated connection avoiding
                                          conflict with other internal traffic

Microsoft Dynamics 365 and ExpressRoute
28

Troubleshooting Tools
29

Azure Speed Test

                                       This is an approximate calculation of latency to Azure
Run AzureSpeed test to determine       data centers from the client machine. The data centers
client latency to Azure datacenters.   we would want to be mindful of are:
                                       - North America, West US, California
From web browser, access               - North America, East US 2, Virginia
http://www.azurespeed.com/
                                       Same recommendations here as the CRM Diagnostic
                                       Page. This is not a definitive CRM test but more of a
                                       general network performance indicator.
30

Fiddler
                                        Take a look at ClientBeginRequest, ClientDoneRequest,
                                        ServerGotRequest, ServerBeginReponse and
                                        ServerDoneReponse. Look for long delays here
                                        between the markers. Long delays would be over a
                                        couple of seconds.
 Capture a Fiddler Trace while
 trying to load the form. For           If delays are between ServerGotRequest and
                                        ServerBeginReponse, this indicates the server was
 additional instructions, see the       processing on retrieving or processing the data before
 Fiddler documentation for details      sending back to the client. Look towards SQL or Plugin
 on using Fiddler or utility Website:   execution delays.
 http://fiddler2.com
                                        If the delay is ClientBeginRequest, ClientDoneRequest or
                                        ServerGotRequest, this indicates slow network in
                                        sending the request to the server. Look at network
                                        latency, bandwidth and perhaps firewalls on the
                                        customer side.
31

Form Performance Test

                                   There will be 4 larger markers (All Subgrid
If the form does load, run Forms   Load, Complete Load, Edit-Ready (pre-
Performance report when            onload), Edit-Ready (post-onload) and then
reproducing issue. (alt+shift+q)   a bunch of smaller ones. Values are in
                                   milliseconds (ms). The main 4 should
                                   complete between 2400 - 7000 typically.
32

Collecting Client Side Performance Metrics
1. Login to your CRM organization in browser. Navigate to any entity grid or form.
2. Press Alt + Shift + Q.
3. In the Performance view that this opens, click "Enable" to turn on capture of performance measurements.

4. Click "Close" to close the Performance view.
5. If you are measuring form load time, navigate to the grid for the entity you want to measure.
6. Open a record. Let it load fully.
7. Press Alt + Shift + Q to bring up the Performance view.
8. Click on "Select Major" to get a list of the main measurements.
9. For Dynamics CRM 2015 Spring release, for the new forms, the 2 main measurements are:
      a."ControlsInitializationCompleteTimestamp" : all controls on the form are initialized and record is edit
      ready. Asynchronous loads may not be completed yet.
      b."All Sub-grids Loaded": All sub-grids are loaded with the
      associated records. All asynchronous loads are complete.
33

Collecting Network Traces from the Browser

1.  Identify the scenario (page) which is loading slowly. Preferably this should be a warm scenario (i.e. page
    navigated the second time and cache warmed up)
2. Use IE 11 network analyzer to record a trace:
      a. Show the network analyzer by pressing F12 then clicking on the network icon then start tracing by
      clicking on the green play button.
      b. Execute the test scenario.
      c. Stop recording by clicking on the red stop button
      d.Save to xml file by clicking the button next to it
3.Use Chrome network analyzer to record a trace:
      a. Open network analyzer by pressing F12 and then clicking on Network. Unlike IE Chrome records by
      default.
      b. Execute the test scenario
      c. Stop recording by clicking on the red record button
      d. Right click on the grid and choose “Save as HAR with content”
34

Additional Resources
 • Optimize form performance
 • Retrieve Multiple Performance

 • Older “Tips & Tricks” from the field:
    • Microsoft CRM Online Performance Tips & Tricks - Part 1
    • Microsoft CRM Online Performance Tips & Tricks - Part 2
    • Key preparation and configuration tasks
GET STARTED
Technical Journey                                                Start here if you are new to
                                                                   Microsoft Dynamics 365
Introduction to Dynamics 365
Customer Engagement

                                                   Introduction to Dynamics 365 CUSTOMER ENGAGEMENT Technical Onboarding (Day 1)
Attend this Technical Journey if you are new to
                                                   Recording from November 6th, 2017
Microsoft Dynamics 365.

Components:                                              Introduction to Dynamics 365 CUSTOMER ENGAGEMENT Technical Onboarding (Day 2)
• 4 technical training Webcasts (free of charge)         Recording from November 7th, 2017

• One-to-one Starter Kit Consultation*

                                                           What's New and Highlights in Business Applications
Target audience:                                           Recording from November 8th, 2017
• IT Decision Maker
• Tech Influencing Business Developer Manager
• Productivity Consultants                               Introduction to Microsoft Dynamics 365 - Internal Use Rights & Demo Benefits
                                                         Recording from November 8th, 2017
• Sales Solutions Specialist
• PreSales Specialist
• Consultant                                       Introduction to Dynamics 365 CUSTOMER ENGAGEMENT - Basics of Customization
                                                   Recording from November 9th, 2017

Technical Level:
• 100-200 (Introduction + Technical Details)

                                                   Dynamics 365 Starter Kit Consultation                        *The cost for this technical consultation
Prerequisites:                                     Delivery method: on-demand*                                  is 5 partner advisory hours.
• You have to be a Microsoft Partner
• Experience with Office 365 is an advantage
GROW
Technical Journey                                  Enhance Your Business with Dynamics 365 for Field Service
Enhance Your Business with                         Recording from November 14th, 2017
Dynamics 365 Customer Engagement

                                                           Enhance Your Business with Dynamics 365 and Azure B2B Functionality
Attend to this Technical Journey if you already            Recording from November 14th, 2017
have experience with any Dynamics 365
Application and wish to enhance your business
portfolio with new services.
                                                                Enhance Your Business with Dynamics 365 Portals
                                                                Recording from November 14th, 2017
Components:
• 7 technical training Webcasts (free of charge)
• One-to-one Growth Consultation                                  Enhance Your Business with Dynamics 365 for Project Service Automation and Project Online
                                                                  Recording from November 15th, 2017

Target audience:
• Architect                                                     Enhance your business with Dynamics 365 - PowerApps and Flow
                                                                Recording from November 15th, 2017
• IT Decision Maker
• Tech Influencing BDM

                                                           Enhance Your Business with Dynamics 365 with Cognitive Services / Cortana Intelligence
Technical Level:                                           Recording from November 16th, 2017
• 200 (Technical Details)

                                                   Enhance Your Business with Dynamics 365 and Data analysis / Insights / Power BI
Prerequisites:                                     Recording from November 16th, 2017
• Basic know-how of Dynamics 365 Customer
  Engagement functionalities.

                                                   Dynamics 365 Growth Kit Consultation                                     *The cost for this technical consultation
                                                   Delivery method: on-demand                                               is 5 partner advisory hours.
OPTIMIZE
Technical Journey
Technical Deep Dive on Dynamics 365
Customer Engagement

                                                        Technical Deep Dive on Dynamics 365 with Azure AD - Managing Multiple Customers
                                                        Recording from October 10th, 2017

 Attend this Technical Journey if you wish to have a
 technical deep dive into specific functionalities of
 the listed Microsoft Dynamics 365 Applications.               Technical Deep Dive on Dynamics 365 for Field Service
                                                               Recording from November 21st, 2017

 Components:
 • 5 technical training Webcasts (free of charge)
                                                                 Technical Deep Dive on Dynamics 365 with PowerApps
 • One-to-one Growth Consultation*                               Recording from November 21st, 2017

 Target audience:
                                                               Technical Deep Dive on Dynamics 365 CUSTOMER ENGAGEMENT performance optimization
 • Architects                                                  Delivery date: November 23rd, 2017, 09:00 - 10:00, GMT (London)
 • Consultants

 Technical Level:                                       Technical Deep Dive on Dynamics 365 with Azure Logic Apps
                                                        Delivery date: November 23rd, 2017, 10:30 - 11:30, GMT (London)
 • 300-400 (Functional/Technical Deep Dive)

 Prerequisites:
 • Solid know-how of Dynamics 365 Customer
                                                        Dynamics 365 Advanced Workload Consultation                  *The cost for this technical consultation
   Engagement functionalities                           Delivery method: on-demand*                                  is 5 partner advisory hours.
 • Developer skills required for Level 400 sessions
38

Questions
Wishes      askpts@microsoft.com
Feedback
39

© 2017 Microsoft Corporation. All rights reserved. Microsoft, Microsoft Dynamics, and the Microsoft Dynamics logo are trademarks of the Microsoft group of companies. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this
presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
You can also read