Решение для повышения производительности баз данных - «Просмотр кэширования» - это хорошая идея? - PullRequest
1 голос
/ 12 октября 2010

Сначала немного контекста:

Я бы сказал, что у меня хороший опыт работы с SQL-сервером, но я разработчик, а не администратор баз данных.Моя текущая задача - повысить производительность базы данных, которая была построена с очень сильной зависимостью от представлений.Приложение приправлено встроенным SQL, и использование Tuning Advisor предлагает только пару отсутствующих индексов, которые выглядят разумными.

Мне кажется, что переделывается дизайн базы данных, чтобы данные, созданные этими конкретными представлениями (много CASEWHENS) сохраняются, поскольку достоверные данные - это слишком много работы, учитывая бюджет и временные рамки.Полное переписывание этих огромных представлений и всего кода, который опирается на них, также, похоже, не может быть и речи.

Мое предлагаемое решение:

Тестирование показалочто если я сделаю SELECT INTO с данными представления, чтобы сохранить их в постоянной таблице, а затем заменил ссылки на представление этой таблицей, время запроса уменьшится до 44% от того, что было при использовании представления.

Поскольку данные обновляются с помощью процесса паука в одночасье, я думаю, что я могу просто удалить и заново создать эту таблицу ежедневно, а затем внести незначительные изменения в запросы, чтобы использовать это представление.

Может кто-то с хорошимОпыт DBA дает мне мнение о том, что это хорошо / * &? !!ужасная идеяЕсли последнее, есть ли лучший способ приблизиться к этому?

Спасибо.

1 Ответ

2 голосов
/ 12 октября 2010

Вы говорите: «... переделываете структуру базы данных так, чтобы данные, создаваемые этими конкретными представлениями ... сохранялись, поскольку жесткие данные - это слишком много работы, учитывая бюджет и временные рамки». и все же это именно то, что вы предлагаете сделать. Просто вы используете сами представления вместо того, чтобы делать код функцией или хранимой процедурой.

В любом случае, я считаю, что если вы вложите немного усилий в создание этого надежного (т.е. вы гарантируете, что при запуске паука постоянные данные всегда обновляются, и вы никогда не запускаете выборку до конца spidering) ваше решение в порядке.

Что меня беспокоит, так это то, что это хак - пусть и гениальный - поэтому любому, кто наследует ваше решение, может быть трудно понять, почему и как. Посмотрите, можете ли вы дать хорошее объяснение либо в комментариях, либо в отдельном документе.

...