Разница между выбором из таблицы напрямую и просмотром - PullRequest
5 голосов
/ 23 февраля 2009

Чем отличаются данные SELECT от таблицы напрямую или от вида?
И что лучше для каждого?

Ответы [ 4 ]

3 голосов
/ 23 февраля 2009

По данным Microsoft, если вы используете индексированные представления в SQL Server 2000/2005/2008, выгода в производительности.

Индексированные представления могут повысить производительность запросов следующими способами.
1. Агрегаты могут быть предварительно вычислены и сохранены в индексе, чтобы минимизировать дорогостоящие вычисления во время выполнения запроса.
2. Таблицы могут быть предварительно объединены, и результирующий набор данных может быть сохранен.
3. Комбинации объединений или агрегатов могут быть сохранены

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

Приведенные ниже ссылки дают больше информации об этом (о том, когда и что использовать).

  1. Советы по настройке и оптимизации производительности индексированного представления SQL Server 2000/2005 .
  2. Повышение производительности с индексированным представлением SQL Server 2000 .
  3. Просмотр увеличения производительности с помощью индексированных представлений в SQL .
1 голос
/ 23 февраля 2009

Это зависит от базы данных и определения представления.

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

Однако в некоторых случаях просмотр может быть намного медленнее. Пример: в Oracle, если вы вкладываете слишком много запросов в представление (например, одно представление использует другое в качестве таблицы, которое использует другое и т. Д.), Вы можете создать ужасную производительность.

Как правило, вам необходимо выполнить тестирование с конкретной базой данных и запросами.

1 голос
/ 23 февраля 2009

В большинстве баз данных они функционально взаимозаменяемы (не учитывая материализованные представления, которые в любом случае являются чем-то совершенно иным). Есть две общие причины для создания представлений. 1. Механизм абстракции (и псевдонимов столбцов), и 2. Для разрешений и контроля доступа. Но что касается эффективности, это не проблема.

0 голосов
/ 23 февраля 2009

Думайте об этом так:

Представление - это просто оператор выбора, который находится на сервере и скомпилирован механизмом SQL.

Обычно представления используются для ограничения / упрощения результатов из таблицы.

С уважением K

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...