Я поддерживаю SQL Server с 2000 по 2008R2 (все Standard Edition).
Вопрос 1
Пожалуйста, рассмотрите следующую гипотетическую ситуацию.Допустим, у вас есть 5 табличных представлений с внутренним соединением таблиц.Предположим также, что я извлекаю 10 полей из каждой таблицы, поэтому у меня есть представление с 50 полями в нем.Если бы я выбрал только 2 поля в представлении (по одному в каждой из двух таблиц), будет ли этот запрос медленнее, чем сценарий эквивалентного объединения таблиц, при условии, что у вас все одинаковые таблицы и объединения?
Вопрос 2
Что, если я создал общее представление с помощью сценария, подобного следующему:
Create View SomeView
AS
select * from SomeTable
Go
Эти таблицы имеют поля, добавленные к ним довольнорегулярно.Каждый раз, когда я добавляю поле в «SomeTable», представление будет работать автоматически, правильно?Это заметно медленнее, если у SomeTable было 50 полей, и я выбрал два из них из общего вида?Если я выберу два поля в представлении Select *, будет ли он запрашивать только эти поля?
Вопрос 3 Если я создам вид, подобный следующему
Create View Blah
AS
select (some fields)
from TableA join TableB on TableA.Blah = TableB.Blah
Go
Затем я использую вид, подобный следующему:
Select (some fields) from dbo.Blah where SomeDate >= '1/1/2008'
Потеряю ли я какую-либо производительность?Будет ли оптимизатор на самом деле извлекать только те записи просмотра, которые применяются, или он будет извлекать все, а затем подбирать набор результатов?
TIA.