Есть ли в SQL преимущество использования нескольких представлений, а не одного представления? - PullRequest
4 голосов
/ 26 января 2012

В настоящее время я создаю представление для замены моей текущей хранимой процедуры, и мне было интересно, есть ли какая-либо выгода в создании нескольких представлений, где выборка должна объединять разные представления, а не одно представление, где выборка не имеет использовать любые соединения.

Ответы [ 4 ]

1 голос
/ 26 января 2012

У меня есть две точки зрения на это

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

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

1 голос
/ 26 января 2012

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

1 голос
/ 26 января 2012

Несколько представлений позволят вам быть более детализированными, когда вы выбираете, кто что будет видеть (если вы используете представления в целях безопасности).По сути, можно сказать, что группа A может видеть данные только в представлении A, группа B может видеть только данные в представлении B и т. Д.

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

1 голос
/ 26 января 2012

Единственное преимущество, которое я мог бы себе представить, было бы, если бы разные взгляды имели независимую ценность.Другими словами, могут ли они быть полезны в других местах самостоятельно?Если нет, просто создайте одно представление.

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