Я загружаю таблицы на свой склад, используя SSIS. Поскольку моя служба SSIS работает медленно, создание индексов для таблиц показалось отличной идеей.
На этом складе нет первичных ключей (и, следовательно, внешних ключей), индексов (кластеризованных или иных), ограничений. Другими словами, это 100% бесплатно.
Мы собираемся разместить индексы на основе использования - путем анализа новых запросов и текущей производительности запросов.
Таким образом, вместо того, чтобы делать это по-старому и неуклюже, когда мы действительно читаем операторы SQL и планы выполнения, я решил использовать блестящий новый помощник по настройке компонента Database Engine.
Я отключил SQL-вход в свой пакет служб SSIS, запустил трассировку «Tuning», сохранил ее в таблицу и проанализировал вывод в Tuning Advisor. Большинство поисков выполняются как:
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID]=@P1) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',1
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID]=@P1) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',2
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID]=@P1) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',3
exec sp_executesql N'SELECT [Active], [CompanyID], [CompanyName], [CompanyShortName], [CompanyTypeID], [HierarchyNodeID] FROM [dbo].[Company] WHERE ([CompanyID]=@P1) AND ([StartDateTime] IS NOT NULL AND [EndDateTime] IS NULL)',N'@P1 int',4
и при анализе эти утверждения имеют причину "Событие не ссылается ни на какие таблицы". А? Разве он не видит ОТ dbo.Company ?? !! Что здесь происходит?
Итак, у меня есть несколько вопросов:
- Как я могу получить фактический оператор, выполняемый в моей трассировке, а не то, что было отправлено в пакете?
- Существуют ли рекомендации по настройке производительности, связанные с пакетами служб SSIS, работающих под управлением SQL Server 2008?