Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
SQL-Server 2000.

SP1 извлекает данные с View2 и вставляет их в Table1.
Как повлияет на быстродействие, то что View2 каждый раз перед выполнением SP1 перезаписываеться с клиентского приложения?

К сообщению приложен файл. Размер - 0Kb
12 авг 09, 20:17    [7530285]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

Откуда:
Сообщений: 8711
Shovgenyuk
SQL-Server 2000.

SP1 извлекает данные с View2 и вставляет их в Table1.
Как повлияет на быстродействие, то что View2 каждый раз перед выполнением SP1 перезаписываеться с клиентского приложения?


что значит перезаписывается? пересоздается? Если представление не индексированное - по идее никак. разьве что время на перекопиляцию процедуры может тратится.
12 авг 09, 21:03    [7530427]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
iljy

что значит перезаписывается? пересоздается? Если представление не индексированное - по идее никак. разьве что время на перекопиляцию процедуры может тратится.


Да, пересоздается каждий раз с разним Where.
12 авг 09, 21:16    [7530480]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

Откуда:
Сообщений: 8711
Shovgenyuk
iljy

что значит перезаписывается? пересоздается? Если представление не индексированное - по идее никак. разьве что время на перекопиляцию процедуры может тратится.


Да, пересоздается каждий раз с разним Where.


тогда я честно говоря не понял вопроса - как вы хотите быстродействие сравнивать? У вас представления разные, соответственно скорость работы может зависеть от условия выборки.
12 авг 09, 21:41    [7530530]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
Во первых виюшки никогда не создаются во вторых скорость селекта зависит от сервера, от структуры, от индексов, от их статистики, ...,самого запроса насколько правильно он написан....


----
www.hramin.jino-net.ru
Картинка с другого сайта.
13 авг 09, 08:56    [7531244]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Ramin,

очень опрометчивые утверждения. на представления можно создать индекс и тогда можно утверждать, что оно "материализовано".
13 авг 09, 09:40    [7531394]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
AAron,
и что!!!?? индексы для виюшук создают их!!?? я не слыхал ...

----
www.hramin.jino-net.ru
Картинка с другого сайта.
13 авг 09, 09:45    [7531413]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
iljy

тогда я честно говоря не понял вопроса - как вы хотите быстродействие сравнивать? У вас представления разные, соответственно скорость работы может зависеть от условия выборки.


Хочу сравнить два варианта:
1) View2 не пересоздается. Необходимые условия выборки с клиента передаются в SP1.
2) В SP1 не передаються никакие условия выборки, но пересоздается View2 с условиями выборки в Where.

Дело в том, что парметров для выборки может быть очень много (от 1 до 100 или даже больше). Если передавать в SP1 все ети параметры, получиться очень громадный и сложный SQL-запрос в SP1 или динамический SQL-запрос. Сформировать условие Where с необходимыми параметрами и пересоздать View2 напмного проще.
Мне интересно насколько технически правильно использовать приведённую на рис. схему в етом случае и какие есть варианты полутче.
13 авг 09, 10:11    [7531547]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

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

после выполнения инструкции CREATE VIEW возникает объект БД со вполне определенным идентификатором. Если вы понимаете под "созданием" что-то другое - просветите меня пожалуйста.
13 авг 09, 10:13    [7531560]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

Откуда:
Сообщений: 8711
Shovgenyuk
iljy

тогда я честно говоря не понял вопроса - как вы хотите быстродействие сравнивать? У вас представления разные, соответственно скорость работы может зависеть от условия выборки.


Хочу сравнить два варианта:
1) View2 не пересоздается. Необходимые условия выборки с клиента передаются в SP1.
2) В SP1 не передаються никакие условия выборки, но пересоздается View2 с условиями выборки в Where.

Дело в том, что парметров для выборки может быть очень много (от 1 до 100 или даже больше). Если передавать в SP1 все ети параметры, получиться очень громадный и сложный SQL-запрос в SP1 или динамический SQL-запрос. Сформировать условие Where с необходимыми параметрами и пересоздать View2 напмного проще.
Мне интересно насколько технически правильно использовать приведённую на рис. схему в етом случае и какие есть варианты полутче.


ну так возьмите и сравните, в чем проблема то?
13 авг 09, 10:14    [7531574]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
iljy

ну так возьмите и сравните, в чем проблема то?


Ну сравню я какой-то конкретный случай, и что с того?
Из сотней параметров для выборки таких вариантов тысячи (или больше), сравнивать все варианты не реально.
Мне нужно знать насколько такая схема технически грамотная, насколько правильная исходя с теоретических принцыпов работы SQL-сервера, а не для конкретно какого-то случая.
13 авг 09, 10:25    [7531637]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
iljy
Ramin,

после выполнения инструкции CREATE VIEW возникает объект БД со вполне определенным идентификатором. Если вы понимаете под "созданием" что-то другое - просветите меня пожалуйста.


есть select из милион и есть селект из тысячи, конечно быстродействии будут отличаться, но понятие
автор
View2 каждый раз перед выполнением SP1 перезаписываеться с клиентского приложения

не правильно....
13 авг 09, 10:30    [7531672]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
Ramin
... но понятие
автор
View2 каждый раз перед выполнением SP1 перезаписываеться с клиентского приложения

не правильно....


А какое правильное понятие?
13 авг 09, 10:32    [7531681]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
x-x
Member

Откуда:
Сообщений: 230
iljy
что значит перезаписывается? пересоздается? Если представление не индексированное - по идее никак. разьве что время на перекопиляцию процедуры может тратится.

Уважаемые! А как такая модель поведет себя в многопользовательской среде? Пример:
коннект 1 открыл транзакцию и делает следующее :
1. ...
2. select from view
3. ....
4. select from view
5. ....
6. select from view
7. ...
И вот, когда коннект 1 на шаге 3, коннект 2 грохает view и создаёт новую. Проводя аналогии с хранимками, коннект 1 на шаге 4 отлетит с сообщением о том, что один из объектов, задействованных в транзакции изменился. Возможно, что коннект 2 не сможет по каким-то причинам грохнуть вьюху и будет ждать (хотя, как я понимаю, этого быть не должно, поскольку на вьюшках блокировок вроде как быть не может).
13 авг 09, 10:38    [7531724]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

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

речь шла конкретно про вот это ваше утверждение
Ramin
Во первых виюшки никогда не создаются

которое я и поросил вас прокомментировать.


x-x,

про многопоточность пока речь не шла. Хотя конечно пересоздание объектов базы в параллельных соединениях - весьма чревато, тут вы правы.
13 авг 09, 10:46    [7531766]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
x-x

Уважаемые! А как такая модель поведет себя в многопользовательской среде?


Это упрощённая схема. Многопользовательскую среду можна не учитывать. На самом деле для решения возможных проблем с многопользовательской средой View2 создается для каждого пользователя отдельно, но я не показал этого на схеме для упрощения её понимания.
13 авг 09, 10:48    [7531776]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

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

технически схема не очень грамотная, вам это x-x продемонстрировал.
13 авг 09, 10:49    [7531780]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

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

речь идет не о многопользовательской, а о многопоточной! понимаете разницу?
13 авг 09, 10:50    [7531793]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Ramin Hashimzade
Member

Откуда: Азербайджан, Баку
Сообщений: 9979
Блог
вию не перезаписывается, оно просто делает селект который написано внутри виюшки....

create view myview
as
  select ....
  from table1
  inner join table 2....
  where ...

select * from myview

=

  select ....
  from table1
  inner join table 2....
  where ...


----
www.hramin.jino-net.ru
Картинка с другого сайта.
13 авг 09, 10:52    [7531812]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
iljy
Member

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

То же самое можно сказать про табличную инлайн-функцию.
VIEW - это объект базы данных, создаваемый командой CREATE VIEW.
13 авг 09, 10:54    [7531831]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
x-x
Member

Откуда:
Сообщений: 230
Shovgenyuk
Хочу сравнить два варианта:
1) View2 не пересоздается. Необходимые условия выборки с клиента передаются в SP1.
2) В SP1 не передаються никакие условия выборки, но пересоздается View2 с условиями выборки в Where.

Дело в том, что парметров для выборки может быть очень много (от 1 до 100 или даже больше). Если передавать в SP1 все ети параметры, получиться очень громадный и сложный SQL-запрос в SP1 или динамический SQL-запрос. Сформировать условие Where с необходимыми параметрами и пересоздать View2 напмного проще.
Мне интересно насколько технически правильно использовать приведённую на рис. схему в етом случае и какие есть варианты полутче.

У меня при большом количестве параметров на клиенте формируется xml, который содержит имена параметров и их значения и в хранимку уходит этот xml. На серваке из такого xml либо формируется таблица и джойнится в возвращающем результат запросе либо используется при формировании динамического запроса. Правда у нас почти все переведено на SQL2005
Shovgenyuk
Да, пересоздается каждий раз с разним Where.

IMXO - вам нужно sp_executesql, хотя информации маловато.
13 авг 09, 10:55    [7531834]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
iljy
Shovgenyuk,

речь идет не о многопользовательской, а о многопоточной! понимаете разницу?


Не очень... Один пользователь может грохать только "свои" View и при етом он не может в другом потоке обращаться к тем же View которые он грохает в первом потоке.
13 авг 09, 10:58    [7531859]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
Shovgenyuk
Member

Откуда: Ивано-Франковск-Киев
Сообщений: 462
x-x
.........
На серваке из такого xml либо формируется таблица и джойнится в возвращающем результат запросе .....


Так это тоже самое что и формировать View и джойнить в возвращающем результат, только у меня не таблица, а View.
13 авг 09, 11:03    [7531893]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
x-x
Member

Откуда:
Сообщений: 230
Shovgenyuk
Не очень... Один пользователь может грохать только "свои" View и при етом он не может в другом потоке обращаться к тем же View которые он грохает в первом потоке.
А как Вы будете обеспечивать уникальность имён вьюшек и, позже, БД от мусора очищать?
13 авг 09, 11:05    [7531906]     Ответить | Цитировать Сообщить модератору
 Re: Быстродействие  [new]
x-x
Member

Откуда:
Сообщений: 230
Shovgenyuk
x-x
.........
На серваке из такого xml либо формируется таблица и джойнится в возвращающем результат запросе .....

Так это тоже самое что и формировать View и джойнить в возвращающем результат, только у меня не таблица, а View.
Сформировать таблицу-переменную или временную таблицу - это тоже самое, что и создать view?
И чем, в таком случае, формирование вьюшки на клиенте по-одной на каждое подключение и создание её в БД отличается от динамического формирования запроса?
13 авг 09, 11:07    [7531920]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить