Сначала немного контекста:
Я бы сказал, что у меня хороший опыт работы с SQL-сервером, но я разработчик, а не администратор баз данных.Моя текущая задача - повысить производительность базы данных, которая была построена с очень сильной зависимостью от представлений.Приложение приправлено встроенным SQL, и использование Tuning Advisor предлагает только пару отсутствующих индексов, которые выглядят разумными.
Мне кажется, что переделывается дизайн базы данных, чтобы данные, созданные этими конкретными представлениями (много CASEWHENS) сохраняются, поскольку достоверные данные - это слишком много работы, учитывая бюджет и временные рамки.Полное переписывание этих огромных представлений и всего кода, который опирается на них, также, похоже, не может быть и речи.
Мое предлагаемое решение:
Тестирование показалочто если я сделаю SELECT INTO с данными представления, чтобы сохранить их в постоянной таблице, а затем заменил ссылки на представление этой таблицей, время запроса уменьшится до 44% от того, что было при использовании представления.
Поскольку данные обновляются с помощью процесса паука в одночасье, я думаю, что я могу просто удалить и заново создать эту таблицу ежедневно, а затем внести незначительные изменения в запросы, чтобы использовать это представление.
Может кто-то с хорошимОпыт DBA дает мне мнение о том, что это хорошо / * &? !!ужасная идеяЕсли последнее, есть ли лучший способ приблизиться к этому?
Спасибо.