CRM 2011 on Premise
I've inherited quite a mess. Our ActivityPointerBase table has 64 indexes with 42 of those indexes never being used. These were all created by CRM itself. Each of those indexes has been updated millions of times. In fact, our CRM database has almost 500 indexes in this same situation. Millions of updates, no seeks or scans. They also use about 200 gigs worth of hard drive space.
We are constantly getting blocking on the ActivityPointerBase table which brings the whole CRM system to a halt. Essentially shutting down our business. The queries doing the blocking seem to come from the email router itself.
I have seen many forum posts saying editing or removing an OOB index in CRM is unsupported, but these things seem to be dead weight. Waiting for each one of these indexes to be updated causes major performance issues. The risks seem to be it's possible a process or stored procedure exists that references an index by name.
Can I disable these things for a test and possibly remove them? Will CRM just recreate them?
What does the index pre-fixes mean? ndx (non-cluster index?), IX(index?), fdnx?
Can I offload emails to a different database?
We have a huge project in flight to upgrade our CRM version to the newest version. Does 365 handle indexes any differently?
Thanks for your time and I truly appreciate any guidance you can give!