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

это отдельные запросы для разных шаблонов отчетов у которых один источник данных.
27 авг 12, 16:21    [13070987]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка, а зачем вам это? Каков практический смысл?
Вам делать нечего? Можете поволонтёрстовать к примеру - пользы больше.
27 авг 12, 16:27    [13071031]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Внешнее приложение
Guest
Гостюшка
Внешнее приложение,

ситуация такова, что в отделе разработки нет в настоящее время нормального инструмента командной разработки/проверки версий и т.д., текучка имеется, в результате каждый программист (>10) пишет что хочет и при этом зачастую повторяет то, что было сделано до него, появляется множество процедур либо частично либо полностью повторяющих друг друга (>200), при этом условно, все задачи внешнего приложения можно разбить на группы по таблицам к которым они обращаются/комбинации таблиц (<100). Вот и появилась идея написания унифицированных функций, в которая может выгрузить любой набор данных для любой комбинации условий в рамках одной таблицы/пары таблиц.

В результате все программирование сводится к работе с внешним приложением (оформление результата запроса).

- делайте перекрестный code review:
сегодня то что пытается выложить каждый желающий отправляет исходник Пете, завтра сам Петя и все остальные отправляют Васе
так вы и за качеством лучше следить будете, и будете в курсе кто чего насколько горбатого лепит, и, собственно, навык code review прокачаете

- сами возьмите и напишите краткие (не впадайте в занудство) правила кодирования CRUD'овых и каких-нибудь еще частоупотребимых лично у вас процедур (чеклист из 10 пунктов для начала).

абсолютно во всех приложениях каждая конкретная задачи коррелируют с узким набором конкретных таблиц. это же не означает что все запросы в которых есть джойн на Price/Product нужно впихнуть в одну процу.
27 авг 12, 16:27    [13071036]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Внешнее приложение
Guest
Гостюшка
Внешнее приложение,

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

непонятно.
200 хранимок - не 2000,.. понять, простить забыть, забить.
27 авг 12, 16:29    [13071055]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка
select * from t1 where c1 = 'value'

set @p_c1 = 'value'
set @p_c2 = null

SELECT	*
FROM	T1
WHERE	    (@p_c1 is null or  c1 = @p_c1)
	and (@p_c2 is null or  c2 = @p_c2)
Умереть не встать.
Вы планы то видели? Гигантская разница!!!11
Не с кем говорить. Вы явно не понимаете.
27 авг 12, 16:31    [13071065]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
И вообще
Guest
200 хранимок на >10 человек разработки... вы там работаете вобще? )))
27 авг 12, 16:33    [13071080]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка
ситуация такова, что в отделе разработки нет в настоящее время нормального инструмента командной разработки/проверки версий и т.д., текучка имеется, в результате каждый программист (>10) пишет что хочет и при этом зачастую повторяет то, что было сделано до него, появляется множество процедур либо частично либо полностью повторяющих друг друга (>200), при этом условно, все задачи внешнего приложения можно разбить на группы по таблицам к которым они обращаются/комбинации таблиц (<100)
Глупость кадров невозмоно обойти каким либо техническим решением. Это факт.
Это лимон раз проверенный факт. Вы через N времени добавите ещё одно доказательство сего факта.

Можно много чего посоветовать, но это всё борьба с ветряными. Можно только посочувствовать. Хотя вы не первый.
А то что вы сами не разбираетесь нормально в теме, то вообще бесмысленно.

RIP
27 авг 12, 16:39    [13071130]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Гостюшка
Guest
Внешнее приложение
- делайте перекрестный code review:
сегодня то что пытается выложить каждый желающий отправляет исходник Пете, завтра сам Петя и все остальные отправляют Васе
так вы и за качеством лучше следить будете, и будете в курсе кто чего насколько горбатого лепит, и, собственно, навык code review прокачаете

- сами возьмите и напишите краткие (не впадайте в занудство) правила кодирования CRUD'овых и каких-нибудь еще частоупотребимых лично у вас процедур (чеклист из 10 пунктов для начала).



абсолютно во всех приложениях каждая конкретная задачи коррелируют с узким набором конкретных таблиц. это же не означает что все запросы в которых есть джойн на Price/Product нужно впихнуть в одну процу.[/quot]

Запросы по большей части примитивны и схожи, связи между таблицами уникальны, определенный набор "мини-правил" уже есть, и все про них знают, есть процедура проверки кода, однако нет механизма определить что кто то уже обращался к эти данным схожим образом. Если унифицировать выгружаемый набор данных, то, в рамках одной таблицы, запросы в 80% случае схожи даже по столбцам к которым применяется where.
27 авг 12, 16:40    [13071141]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Гостюшка
Guest
Mnior,

Дело не в глупости кадров, а в отсутствии инструментов, позволяющих определить, что схожий запрос писали пол года назад для другого отчета.

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

это вариант решения который был вынесен на обсуждение.

Mnior
Можно много чего посоветовать, но это всё борьба с ветряными. Можно только посочувствовать. Хотя вы не первый.
А то что вы сами не разбираетесь нормально в теме, то вообще бессмысленно.


а это комментарий ни о чем простите. Вы пока что не показали "знаний по теме", а если обладаете - лучше поделились бы =)
27 авг 12, 16:49    [13071232]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Если запросы практически одинаковы, то как вообще такое могло случится, что они, эти 200 зранимок, о боже - создавались руками, вручную?
Может вам стоило открыть для себя ORM.
В итоге эти тупые запросы генерировались бы сами. Нафига вообще тут хранимки?
27 авг 12, 16:53    [13071269]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Внешнее приложение
Guest
Гостюшка,

ну сделайте что вам там хочется сделать.

в исходных мини-хранимках код закомментить, скопироваь его в новую общую хранимку, в исходных мини-хранимках написать вызов новой общей. замерить скорость.

объемы какие?
27 авг 12, 16:56    [13071287]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка
Дело не в глупости кадров, а в отсутствии инструментов, позволяющих определить, что схожий запрос писали пол года назад для другого отчета.
Лять. Нормальный кадр в здравом уме никогда, слишите, никогда не напишшет Copy&Past-ом ничего подобного, он не может не знать о существовании похожих запросов. Нормальный кадр отвечает за свою область ответственности.
А так вы нанали сотню обезъянок, а теперь пытаетесь отыскать "Войну и Мир" в их каракулях. Это что за бизнес стратегия? Русский авось?

Гостюшка
а это комментарий ни о чем простите. Вы пока что не показали "знаний по теме", а если обладаете - лучше поделились бы =)
1. Ничего я не обязан.
2. Хочу предостеречь вас и читающих о бессмысленности занятия.
3. Тут нечем делится, ибо - бе-спо-ле-зно!

Надо понять сначала ошибку управления, а потом её менять, а не бесполезно код перелопачивать.
Кадры должны сами понимать как надо было действовать. А вы (точнее архитектор) должны били заранее предсказать задачи системы. Задачи ещё должны проходить стадию ТЗ и согласовку с архитектурой, ещё до стадии написания кода.
А что мы видим - потраченное зря время на написание 200т процедур и столько же кода интерфейса. Это сколько человеко-часов? А в $?
27 авг 12, 17:07    [13071371]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
Гостюшка
Да какая глобальная разница разница между

select * from t1 where c1 = 'value'

и

set @p_c1 = 'value'
set @p_c2 = null
select * from t1 where (@p_c1 is null or c1 = @p_c1) and ((@p_c2 is null or c2 = @p_c2)) ?

Логично предположить что на форум я полез уже после того как пообщался со всеми...
Странно, что вам не объяснили разницу. Может, тогда нужно хоть одного сиквелиста нанять, мрожет, у вас на T-SQL пишут не сиквельные разработчики?

Тут этот вопрос часто обсуждается, поищите.

Или просто посмотрите на планы выполнения и на скорость.
27 авг 12, 17:11    [13071397]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Гостюшка
Guest
Внешнее приложение,

реальные замеры в данном случае дадут весьма субъективный ответ на вопрос как изменится скорость запроса, но не почему.

еще одни плюсом будет унификация процедуры проверки кода (собственно проверить надо будет 1 раз при появлении нового источника) и ускорение процесса разработки как такового (мину одна среда).

Mnior ,

не совсем понял как это применимо в системах отчетности, тем более, что через полгода/год будет новое хранилище отчетности, новая среда BI, нормальная метабаза и прочее...
27 авг 12, 17:12    [13071407]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
Гостюшка
Логично предположить что на форум я полез уже после того как пообщался со всеми...
Собственно, даже по используемой технологии видно, что вы не специалист, а раз на форум полезли именно вы, то другие специалисты тоже из других специальностей, не сиквелисты.

В такой ситуации слишком рискованно делать глобальные изменения. Запрос для конкретной веб-странички или формы ещё программист как то отладит, а после "унификации" отвечать и делать будет некому.
27 авг 12, 17:13    [13071414]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
Гостюшка
Внешнее приложение,

реальные замеры в данном случае дадут весьма субъективный ответ на вопрос как изменится скорость запроса, но не почему.
Почему - можно посмотреть по плану.
select * from t1 where (@p_c1 is null or c1 = @p_c1) and ((@p_c2 is null or c2 = @p_c2))

В принципе достаточно понятно - как серверу сделать план, что в нём использовать - поиск по индексу по c1, по c2 или сканить таблицу? План при этом компилируется на запрос, без учёта значений параметров.
27 авг 12, 17:16    [13071438]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
alexeyvg
Гостюшка
Логично предположить что на форум я полез уже после того как пообщался со всеми...
Собственно, даже по используемой технологии видно, что вы не специалист
Сорри, хотел сказать "даже по используемой терминологии видно".

Специалист по СУБД (любой) никогда не назовёт такие запросы одинаковыми.
27 авг 12, 17:22    [13071507]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Гостюшка
Guest
Mnior
Гостюшка
Дело не в глупости кадров, а в отсутствии инструментов, позволяющих определить, что схожий запрос писали пол года назад для другого отчета.
Лять. Нормальный кадр в здравом уме никогда, слишите, никогда не напишшет Copy&Past-ом ничего подобного, он не может не знать о существовании похожих запросов. Нормальный кадр отвечает за свою область ответственности.
А так вы нанали сотню обезъянок, а теперь пытаетесь отыскать "Войну и Мир" в их каракулях. Это что за бизнес стратегия? Русский авось?

Гостюшка
а это комментарий ни о чем простите. Вы пока что не показали "знаний по теме", а если обладаете - лучше поделились бы =)
1. Ничего я не обязан.
2. Хочу предостеречь вас и читающих о бессмысленности занятия.
3. Тут нечем делится, ибо - бе-спо-ле-зно!

Надо понять сначала ошибку управления, а потом её менять, а не бесполезно код перелопачивать.
Кадры должны сами понимать как надо было действовать. А вы (точнее архитектор) должны били заранее предсказать задачи системы. Задачи ещё должны проходить стадию ТЗ и согласовку с архитектурой, ещё до стадии написания кода.
А что мы видим - потраченное зря время на написание 200т процедур и столько же кода интерфейса. Это сколько человеко-часов? А в $?


каждый день 5-10 новых задач по выгрузке, писать ТЗ для каждого select ... where ? архитектор согласует наличие данных в БД исходных систем в данном случае, а по поводу кадров - ну и как предполагается одному из 10 разработчиков узнать писал ил кто то схожий запрос если они ежедневно новые ? даже скорее он знает что схожий запрос есть, но править его он не может, т.к. на нем уже "висит" какой то отчет. Если бы было 500 выгрузок и все были бы заранее определены - без проблем, делаем ТЗ создаем единую структуру хранилища, OLAP все дела, но к сожалению тут не такая ситуация...на рассмотрение каждой заявки на разработку - сутки, в день 5-10 заявок все из разных систем.

В общем со стороны как всегда круто обсуждать не зная особенностей проблемы, а вопрос задал конкретный.
27 авг 12, 17:24    [13071527]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Внешнее приложение
Guest
Гостюшка
Внешнее приложение,

реальные замеры в данном случае дадут весьма субъективный ответ на вопрос как изменится скорость запроса, но не почему.

еще одни плюсом будет унификация процедуры проверки кода (собственно проверить надо будет 1 раз при появлении нового источника) и ускорение процесса разработки как такового (мину одна среда).

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

Гостюшка
не совсем понял как это применимо в системах отчетности, тем более, что через полгода/год будет новое хранилище отчетности, новая среда BI, нормальная метабаза и прочее...

оказывается, ничего не нужно, никто ничего делать не собирается, просто интересно на кофейной гуще погадать.
27 авг 12, 17:25    [13071531]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка
не совсем понял как это применимо в системах отчетности, тем более, что через полгода/год будет новое хранилище отчетности, новая среда BI, нормальная метабаза и прочее...
Лять, ну тогда зачем этот сыр-бор вообще. Взболомутили только учазнегов форума.
Расходимся.
27 авг 12, 17:25    [13071538]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
ну и как пред
Guest
Гостюшка
ну и как предполагается одному из 10 разработчиков узнать писал ил кто то схожий запрос если они ежедневно новые ?

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

вопрос настолько неконкретный, насколько это возможно.
27 авг 12, 17:28    [13071554]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
Гостюшка
В общем со стороны как всегда круто обсуждать не зная особенностей проблемы

Гостюшка
через полгода/год будет новое хранилище отчетности, новая среда BI, нормальная метабаза и прочее...
При чём тут новая технология?

Через полгода 15 разработчиков будут выполнять 15 заявок в день в новой среде BI, запихивая повторяющиеся запросы в "нормальную метабазу" :-)

И вы зря думаете, что ТЗ и должности типа архитектора придумывают для того, что бы понижать производительность труда - как раз наоборот.
Иначе во всех методологиях по процессу разработки писали бы: "никогда не ведите документацию! никогда ничего не планируйте! не назначайте руководителей и ответственных на за что! просто почаще задерживайтесь на работе и пишите много кода! Это в итоге увеличит доходность в Н раз."

Я не знаю специфики, но наверное можно как то было классифицировать эти отчёты, иметь справочники для поиска (хоть комментарии в коде, чтоб в файлах искать), назначать отчёт тому, кто делал подобные...
27 авг 12, 17:35    [13071607]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Гостюшка
каждый день 5-10 новых задач по выгрузке, писать ТЗ для каждого select ... where ?
20 дней работаете? Чё вы врёте то.
И какие нахрен отчёты - тупой запрос из таблицы/вью. Отчёты не могут быть одинаковыми априори.
Гостюшка
10 разработчиков узнать писал ил кто то схожий запрос если они ежедневно новые ?
Он не должен гадать, система ар-хи-тек-тур-но должна это позволять.
Гостюшка
но править его он не может, т.к. на нем уже "висит" какой то отчет.

Естественно обязан исправлять архитектуру и следовательно запросы.
Вы совершенно не спец, как вы вообще попали на это место. Тьфу, понятно как - руководство как такового нет, нет у вас спецов, ни одного.

Гостюшка
В общем со стороны как всегда круто обсуждать не зная особенностей проблемы, а вопрос задал конкретный.
Самый стандартная попытка не-спеца выкрутится.
Ваш конкретный вопрос и то что вы пишете можно однозначно интервпетировать - не-спец. Спорить и доказывать бесполезно.
Вы уже все показали на банальщине школьного курса.
27 авг 12, 17:44    [13071656]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Лять, довели до того, что в день подаётся 5-10 одинаковых по смыслу заявок. Это эпический фейл.
Они вообще не должны возникать.
27 авг 12, 17:47    [13071676]     Ответить | Цитировать Сообщить модератору
 Re: Множество обращений к одной процедуре.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31437
Mnior
Лять, довели до того, что в день подаётся 5-10 одинаковых по смыслу заявок. Это эпический фейл.
Они вообще не должны возникать.
Ну как, в фирме всего 15 отчётов по данным за прошедшие сутки.

Но их же нужно делать каждый день за новое число!!! :-)
27 авг 12, 17:50    [13071694]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить