Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 select from view vs select from table  [new]
abrashka
Member

Откуда:
Сообщений: 517
День добрый!

Помогите плз разобраться,
есть две таблицы:


create table t1(col1 int,col2 int ,col3 int)
create table t2(xyz1 int,xyz2 int ,udate datetime)


и VIEW:
create view v_test
as 
select t1.col1,t1.col2,t2.xyz2,t2.udate
from t1 inner join t2 
on t1.col1=t2.xyz1


нужно получить данные с UDATE больше определенного числа, т.е. либо:
select col2 from v_test where udate>'20120101'


либо
select t1.col2
from t1 inner join t2 
on t1.col1=t2.xyz1
where udate>'20120101'


Таблицы очень большие, t1.col1 и t2.xyz1- первичные ключи

Могу сделать индекс на udate в таблице, indexed view невозможно

Какой способ эффективней и почему?


Спасибо!
29 ноя 12, 19:05    [13552210]     Ответить | Цитировать Сообщить модератору
 Re: select from view vs select from table  [new]
aleks2
Guest
Запрос из определения View (за вычетом Indexed View) подставляется оптимизатором явно в текст объемлющего запроса и затем оптимизируется-исполняется полученный монстрик.

Так што - без разницы.
29 ноя 12, 19:11    [13552231]     Ответить | Цитировать Сообщить модератору
 Re: select from view vs select from table  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
abrashka,

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

На всякий случай, скажу, что если в будущем вы встанете перед такой же дилеммой, но реально из вьюхи будут нужны не все таблицы, лучше сделать явный запрос только из нужных таблиц. Сервер умеет выкидывать ненужные таблицы, но при условии, что он достаточно знает о ваших данных в той части, что джойны во вьюхе никак не повлияют на результат, тогда он их сам выкинет. В противном случае будет избыточное обращение к ненужным таблицам.
Но в данном случае, разницы нет, я бы исходил чисто из удобства последующей поддержки кода.
29 ноя 12, 22:03    [13552785]     Ответить | Цитировать Сообщить модератору
 Re: select from view vs select from table  [new]
abrashka
Member

Откуда:
Сообщений: 517
SomewhereSomehow,

Спасибо, речь идет о MS CRM, там вьюхи из двух таблиц, интересуют данные с обоих
Легче поддерживать селект из вью, но думал, что селект из таблиц немного ускорит процесс
30 ноя 12, 16:44    [13557333]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить