Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что лучше? / 10 сообщений из 10, страница 1 из 1
23.08.2001, 11:08
    #32012673
tors
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
Необх. лекарство от конвульсий мозга, на почве повышения производительности

Маэстро's, чем лучше заниматься, набиванием запросов вложенными запросами, или работать с представлениями?
...
Рейтинг: 0 / 0
23.08.2001, 11:29
    #32012679
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
По моему, view лучше - уже потому, что один view можно использовать в куче других запросов. И если придется его менять, то это будет сделано в одном месте. А теперь представь, что этот подзапрос не был оформлен в качестве view - надо пролезть по всем запросам и везде сделать одни и те же изменения, где-нибудь да облажаешься...
...
Рейтинг: 0 / 0
23.08.2001, 11:41
    #32012681
tors
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
Энто я понимайт. Интересно про стоимость выполнения. Что дороже получается, запрос(а может и не один) в запросе, аль представленице зазывать.
...
Рейтинг: 0 / 0
23.08.2001, 12:18
    #32012685
Vader
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
К тому же на View можно строить индексы. На большем объеме данных должно помочь.
...
Рейтинг: 0 / 0
23.08.2001, 13:29
    #32012693
Kirillov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
И как же позволь узнать ты сможешь на view'шку построить индекс.
Объясни плиз ламеру
...
Рейтинг: 0 / 0
23.08.2001, 13:35
    #32012697
Genady
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
2 Kirillov
В 2000-м можно, и даже кластерный
...
Рейтинг: 0 / 0
23.08.2001, 14:01
    #32012700
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
Чтобы создавать индекс на вьюшку, она должна удовлетворять определенным условиям - далеко не для каждой получится.
...
Рейтинг: 0 / 0
23.08.2001, 14:21
    #32012702
dmitry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
2 Kirillov: в 2000 можно.
2 tors:
По уму должно быть одинаково (при отсутствии индексов), потому как проводится оптимизация и в том и в другом случае и в результате после логической оптимизации должен получиться одинаковый запрос из исходной таблицы.
НО как выясняется для MSSQL это не так. Пример: создаем таблицу
create table testtable (a int identity, b int),
делаем
insert into testtable values(3)
и затем с помощью многократного выполнения
insert into testtable select b from testtable
заносим записей побольше, скажен миллион
Теперь создаем вьюху:
create view testview as
select * from testtable where a<500000

А теперь сравним
select * from testview where a>501000
и
select * from testtable where a>510000 and a in(select a from testtable where a<500000)

С удивлением отметим что вложенный запрос отработал гораздо медленнее:
у меня вложенный запрос - 12 с;
запрос из вида - 1 с.
При повторных выполнениях ничего не меняется....
И сравним планы...
Печальные ощущения на мой взгляд...

Может кто то не поленится выполнить все это и прокомментировать...
...
Рейтинг: 0 / 0
23.08.2001, 15:03
    #32012705
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
Не понятно, что с чем сравнивается.
in действительно очень медленный оператор, причем он здесь. Надо было сравнивать чтонибудь типа

select * from testview where a>501000
и
select * from (select * from testtable where a<500000) where a>510000
...
Рейтинг: 0 / 0
23.08.2001, 16:48
    #32012712
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что лучше?
Наверное все проще. Оптимизатор не рассматривает вьюшку как таблицу, и строит план выполнения словно это подзапрос. Так что это вопрос скорее удобства, чем быстродействия. А про это GreenSunrise уже сказал.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Что лучше? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]