Data Management Views, stores transnational information which can be used to monitor performance of SQL Server. Below are some queries which gives you data related to indexes used in your CRM database tables and which are the most expensive queries according to that you can troubleshoot the problem related to performance.
Select OBJECT_NAME(a.object_id),b.name,a.user_seeks,a.user_scans,a.* from sys.dm_db_index_usage_stats a join
VirginMedia_MSCRM.sys.indexes b on a.object_id = b.object_id and a.index_id = b.index_id
Where a.database_id
= DB_ID('YourOrganizationName_MSCRM')order by b.name
SELECT top
100 SUBSTRING(qt.TEXT, (qs.statement_start_offset/2)+1,((CASE qs.statement_end_offset WHEN
-1 THEN DATALENGTH(qt.TEXT) ELSE qs.statement_end_offset END
- qs.statement_start_offset)/2)+1),
qs.execution_count,
qs.total_logical_reads, qs.last_logical_reads,
qs.total_logical_writes, qs.last_logical_writes,
qs.total_worker_time,
qs.last_worker_time,
qs.total_elapsed_time/1000000 total_elapsed_time_in_S,
qs.last_elapsed_time/1000000 last_elapsed_time_in_S,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats
qs
CROSS APPLY
sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY
sys.dm_exec_query_plan(qs.plan_handle) qp
ORDER BY
qs.total_logical_reads
DESC -- logical reads
SELECT
migs.avg_total_user_cost * (migs.avg_user_impact /
100.0) * (migs.user_seeks + migs.user_scans) AS improvement_measure,
'CREATE
INDEX [myIndex_' + CONVERT (varchar, mig.index_group_handle) + '_' + CONVERT (varchar, mid.index_handle)
+
'_' + LEFT (PARSENAME(mid.statement, 1), 32) + ']'
+
' ON ' + mid.statement
+
' (' + ISNULL (mid.equality_columns,'')
+
CASE WHEN mid.equality_columns IS NOT NULL AND mid.inequality_columns
IS NOT NULL THEN ',' ELSE '' END
+
ISNULL (mid.inequality_columns, '')
+
')'
+
ISNULL (' INCLUDE (' + mid.included_columns
+ ')', '') AS
create_index_statement,
migs.*, mid.database_id, mid.[object_id]
FROM sys.dm_db_missing_index_groups
mig
INNER JOIN
sys.dm_db_missing_index_group_stats migs ON migs.group_handle = mig.index_group_handle
INNER JOIN
sys.dm_db_missing_index_details mid ON mig.index_handle = mid.index_handle
WHERE migs.avg_total_user_cost * (migs.avg_user_impact /
100.0) * (migs.user_seeks + migs.user_scans) > 10
ORDER BY migs.avg_total_user_cost *
migs.avg_user_impact * (migs.user_seeks + migs.user_scans) DESC