Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Что быстрей Filter, Linq или запросы к БД  [new]
artzub
Member

Откуда: Красноярск
Сообщений: 206
Привет!

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

____________________________________________________________________________________
Жизнь хитрая штука - как только все карты на руках — она решает сыграть с тобой в шахматы!
30 авг 10, 08:22    [9346915]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Konstantin S.B.
Member

Откуда:
Сообщений: 7
Хранимые процедуры
30 авг 10, 08:43    [9346979]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Linq (Linq to SQL, EF) может фильтровать локальные (клиентские) коллекции, а так же формировать серверные SQL запросы. В Вашем случае с большим набором данных первое неприемлемо.
Следовательно, остаётся выбор за SQL. Если Linq-запрос написан грамотно (который потом транспонируется в SQL), то без разницы, что быстрее. Потому что тот же сгенерённый запрос можно было написать руками в той же хранимой процедуре.
А, вообще, всё зависит от сложности запроса.
30 авг 10, 09:38    [9347218]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
Konstantin S.B.
Хранимые процедуры


Объясните мне, пожалуйста, как хранимые процедуры могут быть производительнее прямых запросов к БД?
30 авг 10, 09:54    [9347298]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Курдль
Konstantin S.B.
Хранимые процедуры


Объясните мне, пожалуйста, как хранимые процедуры могут быть производительнее прямых запросов к БД?


Про процедурный кэш слыхали чё?

При компиляции хп, оные помещаются в процедурный кэш, что может способствовать увеличению производительности при их выполнении за счет исключения необходимости в синтаксическом разборе, оптимизации и компиляции кода хранимых процедур.
30 авг 10, 10:10    [9347377]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Konstantin S.B.
Member

Откуда:
Сообщений: 7
МСУ
Курдль
Konstantin S.B.
Хранимые процедуры


Объясните мне, пожалуйста, как хранимые процедуры могут быть производительнее прямых запросов к БД?


Про процедурный кэш слыхали чё?

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


В отдельных случаях, это может способствовать ее снижению, когда план выполнения стоило бы поменять. :)
Можно еще сказать про снижение сетевой нагрузки, как бе тоже на производительность может повлиять.
Вопрос производительности лучше решать "на месте", экспериментировать, особенно когда работаешь с БД.
30 авг 10, 10:22    [9347471]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Konstantin S.B.
В отдельных случаях, это может способствовать ее снижению, когда план выполнения стоило бы поменять. :)

Разумеется. Но меня спрашивали "как хранимые процедуры могут быть производительнее" :)
30 авг 10, 10:29    [9347539]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
МСУ
При компиляции хп, оные помещаются в процедурный кэш, что может способствовать увеличению производительности при их выполнении за счет исключения необходимости в синтаксическом разборе, оптимизации и компиляции кода хранимых процедур.


И как это соотносится с производительностью автоматизированной системы, в состав которой входит СУБД?
Не теряется время на синтаксический разбор SQL-запросов? Вы серьезно в это верите?
30 авг 10, 11:00    [9347736]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
С появлением PLinq возникает соблазн еще одного "кардинального" решения - "большие объемы данных" разворачивать в дешевой памяти... однако тут без экспериментов не обойтись ))

Согласен с предыдущими мнениями - свои (осознанные, продуманные) хп/запросы + тюнинг табличных индексов
30 авг 10, 11:02    [9347750]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Курдль
И как это соотносится с производительностью автоматизированной системы, в состав которой входит СУБД?

Что значит "как это соотносится с производительностью"? Напрямую соотносится.

Курдль
Не теряется время на синтаксический разбор SQL-запросов? Вы серьезно в это верите?

Не верю, а знаю.
P.S. Не забывайте еще и про оптимизацию и компиляцию. Это тоже немаловажный cost.
30 авг 10, 11:07    [9347789]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Datar
Member

Откуда:
Сообщений: 80
МСУ
Курдль
И как это соотносится с производительностью автоматизированной системы, в состав которой входит СУБД?

Что значит "как это соотносится с производительностью"? Напрямую соотносится.


Всегда интерисовал этот вопрос, но кроме теоретических размышлений ничего не видел. У вас есть результаты тестировния подверждающие эти соображения?
1 сен 10, 13:48    [9363696]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Datar
Всегда интерисовал этот вопрос, но кроме теоретических размышлений ничего не видел. У вас есть результаты тестировния подверждающие эти соображения?

Иногда полезно читать статьи того ресурса, на котором общаетесь.

Производительность хранимых процедур MS SQL Server 2000

http://www.rusdoc.ru/articles/9513/
1 сен 10, 14:25    [9364129]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
МСУ,

Могли бы привести квинтессенцию "исследования" по приведенной Вами ссылке:

"Таким образом, можно заключить, что использование хранимых процедур не всегда может повысить производительность запросов. Следует крайне внимательно подходить к тем хранимым процедурам, которые работают с результатами с переменным количеством строк и использующие различные планы выполнения."
1 сен 10, 14:35    [9364241]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Курдль
МСУ,

Могли бы привести квинтессенцию "исследования" по приведенной Вами ссылке:

"Таким образом, можно заключить, что использование хранимых процедур не всегда может повысить производительность запросов. Следует крайне внимательно подходить к тем хранимым процедурам, которые работают с результатами с переменным количеством строк и использующие различные планы выполнения."


Вы же сами привести квинтессенцию, зачем мне её приводить? :)
1 сен 10, 14:39    [9364286]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
привести == привели
1 сен 10, 14:39    [9364292]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
off: Курдль, а почему я захожу на Ваш профильный сайт, а меня редиректит на какой-то левый порносайт?
1 сен 10, 15:03    [9364570]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
МСУ,

Сайт подох за неуплату несколько лет назад, как тот хостинг сделали платным :( А из профиля все забываю его убрать.
1 сен 10, 15:05    [9364589]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Datar
Member

Откуда:
Сообщений: 80
МСУ
Datar
Всегда интерисовал этот вопрос, но кроме теоретических размышлений ничего не видел. У вас есть результаты тестировния подверждающие эти соображения?

Иногда полезно читать статьи того ресурса, на котором общаетесь.

Производительность хранимых процедур MS SQL Server 2000

http://www.rusdoc.ru/articles/9513/


Не кидайте тонны флейма, дайте одну ссылку на авторитетный документ с результатами, которые можно восспроизвести и проверить. Поймите, я не против хапэ, я в какой-то степени за них. Но получается как с тем богом, все в него верят, а доказательств нету.
1 сен 10, 15:30    [9364906]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
МСУ
Member [заблокирован]

Откуда: http://codearticles.ru
Сообщений: 31089
Datar
Не кидайте тонны флейма

Где тут тонна флейма? Я Вам привёл ссылку. Что ещё нужно?
P.S. Вы провели тестирование по указанному материалу? К какому результату пришли?

Datar
получается как с тем богом, все в него верят, а доказательств нету.

Когда приложитесь умом к той статье, которую я дал - доказательства будут. А трепать языком из-под забора все могут, тут много ума не нужно.
P.S. По делу всё, как я понял?
1 сен 10, 15:39    [9364992]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Datar
Member

Откуда:
Сообщений: 80
МСУ
Datar
Не кидайте тонны флейма

Где тут тонна флейма? Я Вам привёл ссылку. Что ещё нужно?
P.S. Вы провели тестирование по указанному материалу? К какому результату пришли?


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

МСУ
Datar
получается как с тем богом, все в него верят, а доказательств нету.

Когда приложитесь умом к той статье, которую я дал - доказательства будут. А трепать языком из-под забора все могут, тут много ума не нужно.
P.S. По делу всё, как я понял?


А вы сами пробовали приложится? Хотябы к последнему обзацу? А то получается, что языком трепаете только вы, и ссылаетесь на статьи с почти прямо противоположными выводами. Не красиво как-то, искать изъяны к других, не замечая их в себе ;-) По теме у меня все, если только у вас опять не прорвется нечто личностное.
1 сен 10, 16:09    [9365246]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
Datar
пришел к выводу, что хапэ увеличивают время разработки и сложность сопровождения системы.

имхо, главное преимущество "слоя хп" в том, что его можно использовать как своего рода интерфейс, "ServiceContract" (если проводить аналогию с WCF), одна хп - "OperationContract" ))

"увеличивают время разработки" - да, т.к. нужно хорошенько продумать этот "ServiceContract"
"увеличивают ... сложность сопровождения системы" - нет, наоборот, такой "ServiceContract" полностью развязывает руки - как со стороны субд, так и потребителей - делай что хошь, только не нарушай "Contract"

а сравнивать скорости выполнения хп и простого запроса дело неблагодарное...
1 сен 10, 17:15    [9365866]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Курдль
Member

Откуда: Мск
Сообщений: 1143
LR

"увеличивают ... сложность сопровождения системы" - нет, наоборот, такой "ServiceContract" полностью развязывает руки - как со стороны субд, так и потребителей - делай что хошь, только не нарушай "Contract"

а сравнивать скорости выполнения хп и простого запроса дело неблагодарное...


1. Поверьте моему опыту - усложняют катастрофически!
Хорошо спроектированная БД максимально приближена к структуре, сущностям, связям предметной области. ХП "вашего типа" накладывают суррогатные ограничения на естественный доступ к данным БД. Либо пытаются скрыть огрехи в проектировании БД.

2. Благодарное, если понимать, какие цели стоят под приложением. Подменять "хранимой процедурой с одним запросом" один запрос, как указано в вышеприведенных ссылках, - смехотворно. А вот лопатить огромные объемы данных для анализа, "не вынося сор из избы" - это другое дело.
1 сен 10, 17:30    [9366022]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6330
Курдль
МСУ
При компиляции хп, оные помещаются в процедурный кэш, что может способствовать увеличению производительности при их выполнении за счет исключения необходимости в синтаксическом разборе, оптимизации и компиляции кода хранимых процедур.


И как это соотносится с производительностью автоматизированной системы, в состав которой входит СУБД?
Не теряется время на синтаксический разбор SQL-запросов? Вы серьезно в это верите?

Для интереса, например, в Оракле есть отдельная и очень приличная графа в отчетах производительности. Называется "Parse time".

Для персональных, малоклиентских приложений, конечно разницу не углядишь.
1 сен 10, 17:36    [9366088]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
LR
Member

Откуда: 8P8C
Сообщений: 2423
Курдль
1. Поверьте моему опыту - усложняют катастрофически!
Хорошо спроектированная БД максимально приближена к структуре, сущностям, связям предметной области. ХП "вашего типа" накладывают суррогатные ограничения на естественный доступ к данным БД. Либо пытаются скрыть огрехи в проектировании БД.

не поверю (т.к. верю своему опыту :))
"естественный доступ к данным БД" приводит к тому что система превращается в единый неделимый монолит, в котором невозможно что-либо изменить в БД, не делая соотв.изменений на клиенте(ах) ...
как бы хорошо ни была спроектирована БД, сложная предметная область имеет свойство изменяться...
"...суррогатные ограничения..." -> "...контрактные ограничения..." (контракт, при необходимости, можно ведь и перезаключить, в одном месте, а вот "естественные доступы" "выковыривать" из разношерстных клиентов будет посложней)

Курдль
2. Благодарное, если понимать, какие цели стоят под приложением. Подменять "хранимой процедурой с одним запросом" один запрос, как указано в вышеприведенных ссылках, - смехотворно. А вот лопатить огромные объемы данных для анализа, "не вынося сор из избы" - это другое дело.

благодарное дело - сравнивать разные запросы (наборы запросов) для получения нужного результата, а завернуты они в хп или нет, имхо, не столь существенно... в смысле быстродействия (наи)более существенно - навесить "правильные" индексы на таблицы
1 сен 10, 18:10    [9366373]     Ответить | Цитировать Сообщить модератору
 Re: Что быстрей Filter, Linq или запросы к БД  [new]
Datar
Member

Откуда:
Сообщений: 80
LR
как бы хорошо ни была спроектирована БД, сложная предметная область имеет свойство изменяться...
"...суррогатные ограничения..." -> "...контрактные ограничения..." (контракт, при необходимости, можно ведь и перезаключить, в одном месте, а вот "естественные доступы" "выковыривать" из разношерстных клиентов будет посложней)


Извините, не в одном. В трех как минимум:

Курдль
2. Благодарное, если понимать, какие цели стоят под приложением. Подменять "хранимой процедурой с одним запросом" один запрос, как указано в вышеприведенных ссылках, - смехотворно. А вот лопатить огромные объемы данных для анализа, "не вынося сор из избы" - это другое дело.

благодарное дело - сравнивать разные запросы (наборы запросов) для получения нужного результата, а завернуты они в хп или нет, имхо, не столь существенно... в смысле быстродействия (наи)более существенно - навесить "правильные" индексы на таблицы[/quot]
1 сен 10, 18:32    [9366503]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить