Я использую несколько серверов SQL, на каждом из которых работает несколько сотен многогигабайтных баз данных для клиентов. Все они настроены однородно в том, что касается схем, однако использование данных клиентами довольно сильно отличается от базы данных к базе данных.
Как лучше всего автоматически индексировать / профилировать / настраивать такое большое количество баз данных?
Поскольку существует как минимум 600 или более каталогов, я не могу вручную профилировать и индексировать в соответствии с требованиями каждой модели использования баз данных.
В настоящее время я использую SQL 2005, но перейду на 2008, так что решения, которые работают с любым из них, подходят.
Это то, что вы никогда не сможете полностью автоматизировать, поэтому лучше всего использовать инструмент, чтобы узнать, где ваши худшие исполнители и, следовательно, где лучше всего проводить время. С этой целью я бы выбрал третье лицо для объема, о котором вы говорите: возможно, что-то вроде Квест Foglight или Ответ Redgate SQL.
Что касается встроенных инструментов, когда вы действительно находите что-то, что хотите применить ко многим серверам одновременно, вы можете использовать главные серверы конфигурации для одновременного применения изменений ко многим серверам (вероятно, у вас уже есть это). Вы также можете использовать отсутствующие индексные хранимые процедуры чтобы помочь найти очевидные места на серверах, где дополнительный индекс может повысить производительность.