Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / хр. процедура или view? / 25 сообщений из 37, страница 1 из 2
15.11.2002, 17:00:59
    #32068476
DImanch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Что будет быстрее и как лучше сделать, создать из запроса представление или скомпилировать его в хранимую процедуру? Есть какая-нибудь разница для разных версий сервера?
...
Рейтинг: 0 / 0
15.11.2002, 17:04:32
    #32068479
lvv
lvv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Я за процедуру
...
Рейтинг: 0 / 0
15.11.2002, 17:59:49
    #32068512
mishgan2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Все зависит от того, по каким критериям в дальнейшем будет производиться отбор. Если число критериев постоянно и заранее известно, то может быть ХП и лучше будет, а если наборот - то надо использовать view.
---
Я лично вообще против процедур, которые возвращают наборы данных.
...
Рейтинг: 0 / 0
15.11.2002, 18:15:23
    #32068524
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Конечное представление данных на клиент делаю на СП, вьюхи использую лишь для оптимизации выполнения запросов внутри СП.
...
Рейтинг: 0 / 0
15.11.2002, 18:26:11
    #32068530
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
и то и другое по скорости примерно одинаково...
вьха работает немного быстрее...
процка более гибкая....
...
Рейтинг: 0 / 0
15.11.2002, 18:27:42
    #32068533
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
да... и вьюха не влияет на @nestlevel....
вызов процы ... это выделение контекста.... потом освобождение....
...
Рейтинг: 0 / 0
15.11.2002, 19:49:37
    #32068549
MarchCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Я бы однозначно сделал бы процедурой.
Все процедуры сидят в оперативной и просто ждут, не дождутся, чтобы мгновенно отработать. !
...
Рейтинг: 0 / 0
15.11.2002, 19:57:47
    #32068550
VAT
VAT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Согласен - если параметры фиксированы - проца лучше, если надо гибче - вью
...
Рейтинг: 0 / 0
15.11.2002, 22:34:36
    #32068565
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Давайте посмотрим, что такое вьюха. Это заранее разобранный и оптимизированный запрос. Если хп состоит из одного аналогичного запроса, то разницы по скорости практически нет.
Но. Лично я предпочитаю вьюхи не использовать, кроме как для разграничения прав доступа*. В этом отношения хп с ней не конкурент. Зато в хп, когда надо, можно запихать какую-нибудь дополнительную обработку.
...
Рейтинг: 0 / 0
16.11.2002, 10:02:24
    #32068603
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
2 MarchCat
вью тоже компилится.... лежит в том же кэше....
но, еще раз повторю.... работает быстрее чем процедуры....
если запрос без параметров то вью выигрывает... и использовать ее как замену подзапроса лучше....
а вот сортировку во вьюхах делать не нужно.....
...
Рейтинг: 0 / 0
18.11.2002, 10:44:40
    #32068845
akuz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
а вот сортировку во вьюхах делать не нужно.....
Поподробней, пожалуйста.
...
Рейтинг: 0 / 0
18.11.2002, 16:19:56
    #32069101
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
сотировка требует создания временной таблицы....
лучше использовать ее именно из основного запроса......
...
Рейтинг: 0 / 0
19.11.2002, 18:58:34
    #32069823
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Как эта беседа вовремя, спасибо DImanch, на 2 дня меня опередил.
У View есть очень большая проблема, они не поддерживают CASE оператор.
Кто-то знает альтернативу?
...
Рейтинг: 0 / 0
19.11.2002, 19:15:37
    #32069831
Left Margin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Кто сказал, что VIEW не поддерживает CASE?!!
Это графический построитель в EM не поддерживает, а ручками уже не модно писать CREATE VIEW?
...
Рейтинг: 0 / 0
19.11.2002, 19:44:40
    #32069841
AAron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Всем привет.
Вообще, я бы предпочел SP.

А какая система разрабатывается? насколько критична скорость выполнения? Если идет множество запросов и скорость _очень_ важна, то view, как уже было сказано, будет немного быстрее... если разница действительно не существена, то удобнее использовать ХП
...
Рейтинг: 0 / 0
19.11.2002, 19:51:01
    #32069843
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
2 Left Margin
Спасибо, но помогло пока мало, вылезла другая бяка:

Server: Msg 1033, Level 15, State 1, Procedure vw_MyView, Line 18
An ORDER BY clause is invalid in views, derived tables, and subqueries unless TOP is also specified.
...
Рейтинг: 0 / 0
20.11.2002, 02:36:40
    #32069910
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
ну млин...
ну не используйте за зря order by во вью и вложенных селектах..... они приводят к созданию временных таблиц....
2 SandalTree
еслиуж очень нужно то select TOP 100 PERCENT ... то что нужно....
если хотите использовать вью как универсальный откомпилированный запрос уберите оттуда сортировку и используйте ее из нужного вам селекта.... например select * from myview order by myfield....
...
Рейтинг: 0 / 0
20.11.2002, 02:56:28
    #32069914
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
2 MiCe
Sorry my font.

ну не используйте за зря order by во вью
Please exemple.
Ochen nado.

Eto tolko k voprosu chto luchshe View or SP.
V SP takih problem net,
a 1-2% uluchshenija proizvoditelnosti ne spasajut otca russkoj demokratii.

PS A chto prosche s klienta posylat "select * from myview order by myfield" or prosto "myproc"?
Eto ne vopros, eto fakt.
...
Рейтинг: 0 / 0
20.11.2002, 03:48:09
    #32069919
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Please exemple
если я правильно понял - то нужен пример view c order by?
create view vw
as
select top 100 percent myfield,myanotherfld
from mytable
order by myfield
go
--------------
1-2% - это спорный вопрос... бывает и больше...
PS A chto prosche s klienta posylat "select * from myview order by myfield" or prosto "myproc"
код не для простоты а для эффективности.....
(хотя время написания туда то же относится...)
и у меня в коде не увидиш select *.... токма select fld1,fld2...
PS если вью только для клиента - то ничего против сортировки в нем я не имею.... если же оно используется в качестве замены подзапросов или чего нить подобного - против....сервер все равно строит временную таблицу при наличии во вью сортировки... причем льет туда все данные и потом сортирует....
если же использовать сортировку из вне она тоже строится... но более эффективно...
например
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
create view vw1 as select fld1 from tbl
go
create view vw2 as select top  100  percent fld1 from tbl order by fld1 
go
select fld1 from vw1 where fld1 between  23  and  60  order by fld1
 -- сортироваться будут только выбранные значения....
 
select fld1 from vw2 where fld1 between  23  and  60  
-- сортируются все данные из vw2 и только потом фильтруются
...
Рейтинг: 0 / 0
20.11.2002, 04:24:07
    #32069925
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Код: plaintext
create view vw2 as select top  100  percent fld1 from tbl order by fld1 

Eto kruto, spasibo za nauku. Zavtra proverju.

если же оно используется в качестве замены подзапросов или чего нить подобного - против
Na 100% soglasen, no starajus подзапросов ne delat'
Luchshe umestit' vsjo v odnom zaprose.
...
Рейтинг: 0 / 0
20.11.2002, 07:34:45
    #32069933
MarchCat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Категорически не согласен с таким подходом (ми).

Во View нельзя использовать Order, into, Compute и #tmp и еще много, много чего. Найти обходной маневр, который работает в данном случае, значит поставить себе западню на будущее.

PS Мысль обсуждению не подлежит.
8ж(
...
Рейтинг: 0 / 0
20.11.2002, 09:09:03
    #32069956
хр. процедура или view?
>select fld1 from vw1 where fld1 between 23 and 60 order by fld1
-- сортироваться будут только выбранные значения....
select fld1 from vw2 where fld1 between 23 and 60
-- сортируются все данные из vw2 и только потом фильтруются

2MiCe. Насколько я знаю запросы в которых используются вью при выполненении собираются оптимизатором в один запрос и затем строится план выполнения и выполняется. С чего вы решили, что сортируются все данные из vw2. Я решил проверить и никакой разницы в планах выполнения не нашел, может вы по подробнее обясните в каких случаях так оптимизатор выполняет запрос.
Вот третий из проверенных мною вариантов в котором планы не чем не различаются (может у меня руки кривые)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
drop table tbl
go
CREATE TABLE [dbo].[tbl] (
	[num] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[fld1] [int] NOT NULL ,
	[asd] [char] ( 50 ) COLLATE Cyrillic_General_CI_AS NULL 
) ON [PRIMARY]
GO


declare @i int
declare @t varchar( 50 )
set @i= 1 
while(@i< 25000 )
begin
	set @t=Replicate(Convert(nvarchar( 10 ),@i), 4 )
	insert into tbl(fld1,asd) VALUES (@i,@t)
	Set @i=@i+ 1 
end
go

ALTER TABLE [dbo].[tbl] WITH NOCHECK ADD 
	CONSTRAINT [PK_tbl] PRIMARY KEY  CLUSTERED 
	(
		[num]
	)  ON [PRIMARY] 
GO

 CREATE  INDEX [IX_tbl] ON [dbo].[tbl]([fld1]) ON [PRIMARY]
GO


create view vw1 as select fld1 from tbl
go
create view vw2 as select top  100  percent fld1 from tbl order by fld1 
go
select fld1 from vw1 where fld1 between  23  and  60  order by fld1
 -- сортироваться будут только выбранные значения....
 
select fld1 from vw2 where fld1 between  23  and  60  
 -- сортируются все данные из vw2 и только потом фильтруются
 
...
Рейтинг: 0 / 0
20.11.2002, 17:18:58
    #32070331
SandalTree
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
Попробовал я TOP 100 PERCENT, действительно работает.
Но вопрос топика был, что лучше SP or View?
По производительности SP затыкает View на 0.5%
И плюс, с ней приятнее работать.
У View есть тоже свой плюс, за счёт них, мы можем разгрузить сильно разросшийся список SP. Только и всего.
...
Рейтинг: 0 / 0
20.11.2002, 17:30:55
    #32070341
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
А еще не бывает partitioned процедур.
...
Рейтинг: 0 / 0
21.11.2002, 10:24:00
    #32070589
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
хр. процедура или view?
ух какая буря.... ;))
хорошо все что есть.... это не религиозный вопрос.... ;)
просто вью и проц - это разные вещи... каждая отвечает своей задаче..
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / хр. процедура или view? / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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