Deployment

[Applies to: Microsoft Dynamics CRM 4.0]

To archive or not

Microsoft advises against using archiving as a solution for performance issues related to Microsoft Dynamics CRM. Archiving is the process of selecting and copying records for storage away from your primary production database. In addition, the archived records are deleted from the primary production database. When database records are archived, there is an assumption that the archived records are accessible for review, if needed, some time in the future. Microsoft Dynamics CRM does not have an integrated archiving solution and does not have plans for an archiving solution in development.

This article describes the issues and considerations that may have led you to archiving as a solution to performance problems that you have been experiencing and directs you to resources to help you resolve those issues. When you have a valid business requirement to archive records, this article provides links to Microsoft SQL Server 2005 backup and restore features or third-party solutions that you can explore.

On This Page

Should you archive?

Considerations before implementing an archiving solution

Microsoft Dynamics CRM supports very large databases

Archiving options

Managing Microsoft Dynamics CRM

Should you archive?

Microsoft does not recommend manually moving or archiving your Microsoft Dynamics CRM database. Also, archiving involves deleting records in the Microsoft Dynamics CRM database. Deleting records is not something that you should do outside of the Microsoft Dynamics CRM user interface or without using the Microsoft Dynamics CRM SDK BulkDelete (CrmService) message.

The relationships between entities such as contacts, accounts, quotes, and sales orders are complex and managed by Microsoft Dynamics CRM. When you delete records outside of Microsoft Dynamics CRM, you can potentially make your database unusable. If you delete account records without knowing the relationships between the accounts, contacts, opportunities, or other entities, you risk breaking the links between these entities making it impossible to access, for example, a contact record that was linked with an account record.

You can remove records from views using the Deactivation feature in Microsoft Dynamics CRM with the following entities:

  • Accounts
  • Contacts
  • Marketing lists
  • Leads
  • Products
  • Price lists
  • Sales literature

Important

Deleting records in the Microsoft Dynamics CRM user interface results in permanently removing the record from the database. When possible, use Deactivate to temporarily remove records from views.

You should make sure all your custom code and reports are State aware to take advantage of the presence of deactivated records that are not in queries.

Another issue with archiving involves reintroducing archived records into your production Microsoft Dynamics CRM database. Importing the archived records into the database does not return the records to the same state that the records were in before archiving the records. You could introduce changes into your Microsoft Dynamics CRM database that cause problems for your Microsoft Dynamics CRM users.

Considerations before implementing an archiving solution

Because Microsoft Dynamics CRM can scale to meet the demands of a very large call center with thousands of concurrent users, your performance issues still need a resolution. Before developing a solution, you need to find the cause of the performance problems:

  • Does your overall hardware topology meet the needs of your concurrent users?
  • Have you configured performance counters, alerts, or established a baseline for unacceptable performance?
  • Have you optimized and tuned your system or database?
  • Do your Microsoft Dynamics CRM users add attachments to records in the database?
  • Are you fielding requests from users to archive the CRM data because they are getting too many records or because their queries are taking too long to return results?
  • Do you have more than 10 million records in your Microsoft Dynamics CRM database or a total database over 100 gigabytes?
  • Does your organization have a data archiving requirement?

Resolving performance issues

Data archiving may not resolve your performance issues. There is a possibility that client browser settings are clearing the cache used by Microsoft Dynamics CRM too often, causing Microsoft Dynamics CRM to perform full queries rather than getting the Web object from the Internet cache. If your users complain about slow response time, you can update client-side Internet browser caching settings to keep Web objects frequently accessed by Microsoft Dynamics CRM in the cache longer or increase the cache size to reduce cache flushing.

  • Review your hardware configuration

    Before you delve into the more complex areas related to performance, you should review your hardware configuration and try some client-side settings changes. If you are using a server with Windows Server2000, an insufficient amount of RAM, or a server that does not meet minimum requirements as described in the System Requirements and Required Components chapter of the Implementation Guide, you need to upgrade your hardware to meet or exceed the minimum requirements. The performance of your Microsoft Dynamics CRM implementation depends on adequate resources.

    When your Microsoft Dynamics CRM implementation supports more than 500 users, you may need to configure your environment to support the expected workload. For more information, see Microsoft Dynamics CRM 4.0 Suggested Hardware for Deployments of up to 500 Concurrent Users.

    To determine whether your Microsoft Dynamics CRM server is overburdened, you need to establish performance baselines and understand the dependencies and relationships between components used in and by Microsoft Dynamics CRM. You also need to understand the peak loads placed on Microsoft Dynamics CRM by your users by noticing trends. For example, do performance complaints increase at certain times of the month or quarter? Are your Microsoft Dynamics CRM users all running reports during the same period of time? By implementing performance monitoring with counters and alerts, you can spot trends and establish baselines to manage your Microsoft Dynamics CRM implementation.

    A solid understanding of the server architecture and systems components can help you eliminate sources of performance issues. For more information about Microsoft Dynamics CRM server architecture and system components, and to get some helpful advice about optimizing and tuning, you can download the white paper Optimizing and Maintaining Microsoft Dynamics CRM 4.0.

  • Use Microsoft Dynamics CRM 4.0 Management Pack for Microsoft Operations Manager 2005

    Just like your car, your servers require regular tuning and monitoring to ensure the best performance. You can use Microsoft Dynamics CRM Microsoft Dynamics CRM 4.0 Management Pack for Microsoft Operations Manager 2005 to monitor:

    • Availability of services
    • Availability of applications
    • Performance

    The performance measurement rules in the Microsoft Dynamics CRM Management Pack provide performance and usage data that you can use as a guide for setting the values of performance threshold rules. The performance threshold values help you monitor critical health and performance of the operating system Microsoft Dynamics CRM servers, see Microsoft Dynamics CRM 4.0 Management Pack.

  • Monitor your database

    The Microsoft Dynamics CRM database uses indexes to enhance performance by minimizing the disk I/O used with database queries. For your Microsoft Dynamics CRM implementation to maintain its optimal performance, you must maintain your indexes. For information about optimizing and maintaining your database indexes, read Microsoft SQL Server Books Online Optimizing Indexes.

    In addition to defragmenting your database indexes, you should monitor and tune the Microsoft Dynamics CRM database. As your enterprise grows, your Microsoft Dynamics CRM database size increases with the addition of new records. Monitoring the database using Microsoft SQL Server provides information about the health of your Microsoft Dynamics CRM server and keeps you aware of issues before they become problems. For information about monitoring your database, read Microsoft SQL Server Books Online Performance Monitoring and Tuning How-to Topics.

  • Manage Microsoft Dynamics CRM database growth

    One way to manage database growth is to limit the size of attachments that your Microsoft Dynamics CRM users can attach to records. In Microsoft Dynamics CRM, users can attach a file to a note (annotation). You or your database administrator may want to implement a Microsoft Windows SharePoint Services 2.0 solution to store file attachments and limit the size of file attachments allowed in the Microsoft Dynamics CRM database. The file attachment size setting for the organization is on the E-mail tab of the Settings form. Microsoft Windows SharePoint Services 2.0 provides document management capabilities that enable your Microsoft Dynamics CRM users to access attachments linked to Microsoft Dynamics CRM records with a URL in the note to the file located on the Windows SharePoint Services server.

    Microsoft Dynamics CRM does not provide a Windows SharePoint Services integration solution. However, for information about one possible solution, see Integrate SharePoint with Microsoft Dynamics CRM for ideas on how to get started with your Microsoft Windows SharePoint Services 2.0 integration. Microsoft Dynamics CRM has not tested and does not support this solution.

    You can manage your database growth by reducing the size of the asyncoperation entity using the BulkDelete operation. For more information about this approach, see Managing size of AsyncOperationBase table in CRM 4.0.

Microsoft Dynamics CRM supports very large databases

Performance and scalability benchmark tests have shown that a single instance of Microsoft Dynamics CRM can:

  • Scale to support 24,000 concurrent users.
  • Maintain sub-second response time.
  • Manipulate a one terabyte database or a database that contains over one billion records.

If your Microsoft Dynamics CRM implementation has less than 24,000 concurrent users and a database smaller than 100 gigabytes, archiving records in your Microsoft Dynamics CRM database is not going to resolve your performance issues.

Archiving options

You should only implement an archiving solution for your Microsoft Dynamics CRM database when you have a business requirement to do so, such as to comply with the Sarbanes-Oxley Act or the Health Insurance Portability and Accountability Act (HIPAA) rules.

Archiving implies moving records from one location, storing those records for possible retrieval in another location, and deleting the archived records from the original location. To archive records from your Microsoft Dynamics CRM database, you would have to select the records to archive, copy the selected records to an archiving location such as a server, file storage device, and then delete the archived records from Microsoft Dynamics CRM. The relationships between entities in Microsoft Dynamics CRM are very complex. Deleting records from the Microsoft Dynamics CRM database could cause operational problems if required relationships are severed. The complex relationships between entities in Microsoft Dynamics CRM require that you perform full backups in order to enable a Restore operation if the archived records are needed later. In addition, your archive (backup) should reflect a period of time and the entire Microsoft Dynamics CRM database rather then a collection of a few large entities. You must also validate any archiving solution to ensure that you can restore the data if it is needed.

Contact the Dynamics CRM 4.0 Solution Center for assistance before implementing an archiving solution driven by your enterprise's data retention requirements or company policies.

If you do not need to delete records from the database to comply with your enterprise's archiving requirements, review the backup and restore features available with Microsoft SQL Server 2005. You may find an archiving solution that extends your regular backup practices. For more information about Microsoft SQL Server 2005 backup and restore, see Introduction to Backup and Restore Strategies in Microsoft SQL Server 2005.

Managing Microsoft Dynamics CRM

Your Microsoft Dynamics CRM implementation using a single instance of Microsoft Dynamics CRM can scale to handle a load of 24,000 concurrent users and a 100 gigabyte database. For more information about performance and scalability benchmark testing, you can download Microsoft Dynamics CRM 4.0 Performance and Scalability White Papers. If your implementation is substantially smaller, you can ensure the best performance by:

  • Using adequately sized servers to handle the load on your Microsoft Dynamics CRM implementation.
  • Updating Internet browser caching settings to reduce client-side performance issues.
  • Implementing performance monitoring counters and alerts on your servers.
  • Tuning your database and managing attachments.
  • Contacting Microsoft Support to assist only when you have a real business requirement to archive records.

You can also get assistance with solutions for archiving from a Microsoft Most Valuable Professional. In addition, you can search for a partner solution at Microsoft Dynamics Partner Solutions.

Related Links