Hi,
First I should to make clear that I am using SQL 2016, so not many limitations. I am re-designing a number of indexes. There are many main fact tables with around 10-15 indexes each. Of course this is not ideal as each index needs to be maintained on insertions etc but each index was created in response to a slow query and serves(ed) a purpose.
I am trying to find out the index usage but this is not easy as this is a software product and distributed to many clients. Each client may be using the products in different ways which means index usage is not consistent between clients. My approach is the following:
1. Find out index usage statistics and get some general stats for as many clients as possible.
2. For any indexes not being used create a columnstore non clustered index with a combination of all these columns
3. Drop these redundant indexes later when proven not being used.
Any comments on this? For example should I create a column store with all the columns being used as indexes instead? That should cover most of the situations. And is there any impact on the order of the columns. I understand that it doesn't really matter.
Also what's your opinion on clustered columnstore indexes on tables with many fields. To be honest I am reluctant to use it for too wide tables as I am not sure if an index with say 20-30 columns can be effective.
Thank you!
Panos.