powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Высоконагруженные проекты и запросы
20 сообщений из 95, страница 4 из 4
Высоконагруженные проекты и запросы
    #36403157
Фотография Пилотажный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сосед-акцессник
PS
Сегодня обнаружил, что практически та же по содержанию тема одномоментно обсуждается в
форуме "Разработка информационных систем".
Занятно.

эгрегор

и может быть наверно и на других живых форумах по СУБД (в том числе ангельско-язычных тоже)
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36403452
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
Да любой :) Тесты на весь DL, как обязательная часть тестирования версии никем не отменялись.

не совсем понял, а чем тесты помогут ?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE or REPLACE PROCEDURE PROCEDURE1 IS
  x table1.a%type ;
BEGIN
  select a into x from table1 where rownum= 1  ;
-- много всякого кода
  insert into table2 values ( 1 ,x) ;
END;
допустим были table1.a и table2.a интами, поглотили конкурента пришлось table1.a на варчар поменять. в хп субд проблему обнаружит, а как тесты DL узнают о связи table1.a с table2.a и отловят проблему ?

Павел-ПDPH3,

Если бы все проблемы в жизни решались только административными мерами - то все приложения работали без ошибок и как надо. Написал бумажку "Приложения должны работать правильно" - и все. :-)
тут мне осталось лишь добавить, что тесты к тому же не фича языка

2сосед-акцессник
вы бы хотя бы базовые вещи изучили бы что-ли ...
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404110
Павел-П
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexander Ryndin,

А вы проведите тест. Сгенерируйте огромное количество данных. И выполняйте свой запрос под большой нагрузкой. Вот и получите ответ.
Исходя из ваших аргументов - хранимые процедуры это зло. Ими вообще пользоваться не стоит. А вдруг они вообще работать откажутся в движке СУБД. Поэтому будем пользоваться обычными запросами. А то что запрос на сервере надо скомплировать - это никаких ресурсов не требует (об этом мы умалчиваем).
А вы знаете иногда оптимизатор неверно строит план запроса и для обычных запросов. Может и их запретить стоит. Вы знаете иногда и пешеход обгоняет машину, если в первой бензин закончился. Теперь сделаем вывод, что пешеходы ходят быстрее чем машины.

Вообще-то очень жаль, что обычная дискуссия перерастает в выяснение отношений кто круче.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404237
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
не совсем понял, а чем тесты помогут ?

Тем, что при изменении структуры БД, если какие-либо ошибки будут внесены, то при тестировании они все и вылезут. В конкретном примере - на первом же инсерте в изменившуюся таблицу, т.е. еще на фазе юниттестов, даже не интеграционном.

А так как тесты все равно нужно писать - что для хранимок, что для отдельных запросов - то особого смысла в проверках на уровне БД (для указанных сценариев) - нет.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404293
Alexander Ryndin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел-П,

эм... а я то тут при чем? ;)) мое мнение - хранимые процедуры отлично решают определенные задачи.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404298
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DPH3
Тем, что при изменении структуры БД, если какие-либо ошибки будут внесены, то при тестировании они все и вылезут. В конкретном примере - на первом же инсерте в изменившуюся таблицу, т.е. еще на фазе юниттестов, даже не интеграционном.
ну ясно. об том собственно и речь, что язык апп-сервера (в отличие от языка хп) чего-то там контролировать не способен и одного дата лаера не помогут, только регресивное тестирование со всеми вытекающими.

в ветке проектирования примерно такой-же срачь, там правда напирают на некие мифические апп-сервера с интер-транзакционным кешами которые прекрасно масштабируются. что за за чудесные такие сервера пока выпытать не удалось, но у себя заметил такую вещь: ООП по большому счету процедурное программирование и жава программеры (подавляющее большинство) не умеют мыслить множествами. если жава-архитек еще как-то основные вещи правильно делает, то второстепенные моменты системы обычные жава-лабатели делают стандартно - в цикле взял объект->поковырял->положил в зад. в результате хибер, который сам по себе страшненький sql генерит, но еще с таким подходом тупо долбит в цикле запросами. и получается хрень когда задачу которую решал один старенький сервер бд с pl/sql после перехода на апп-сервер + хибер уже сервер субд без логики уже не справляется. не потому что пл-скл столь чудесен, а просто потому что в отличае от программеров хп для жава программеров субд черный ящик и они не привыкли мыслить множествами.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404313
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
язык апп-сервера (в отличие от языка хп) чего-то там контролировать не
способен

И это говорит апологет сервера, в котором есть понятие "инвалидные
объекты"... Суровый такой контроль: если процедура перестала работать,
значит кто-то изменил метаданные.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404413
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
ну ясно. об том собственно и речь, что язык апп-сервера (в отличие от языка хп) чего-то там контролировать не способен и одного дата лаера не помогут, только регресивное тестирование со всеми вытекающими.

Хм. Ты читаешь то, что написано или то, что хочешь?
Внутри любого современного универсального языка (т.е. статический контроль типов и управляемая память) контроль над кодом на порядки выше, чем в всяких SQLподелках - еще на этапе компиляции.
Другое дело, что если у нас весь SQL код внутри application layer, то средствами языка контролировать соответствие этого кода и структуры БД - невозможно (вернее, неудобно, сделать то можно) - вот и приходится рассчитывать или на юнит-тестирование или на функциональные тесты.
Но так как и то, и другое все равно нужно - что для хранимых процедур, что для сервера приложений, разницы в уровне качества контроля - не будет.

В голову закрадывается страшная мысль - может, ты изменения в хранимых процедурах вообще не тестируешь, рассчитываешь только на контроль со стороны Oracle?
И, кстати, есть какой-нибудь аналог junit для хранимых процедур?
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404487
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
И это говорит апологет сервера, в котором есть понятие "инвалидные
объекты"... Суровый такой контроль: если процедура перестала работать,
значит кто-то изменил метаданные.

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

DPH3
чем в всяких SQLподелках - еще на этапе компиляции.
задело что-ли ? да ладно, чего тут обижаться как мальчик которому открыли глаза на историю с дедом морозом. давай, утри сопли и попробуй
DPH3Внутри любого современного универсального языка (т.е. статический контроль типов и управляемая память) контроль над кодом на порядки выше
выдать вместо эмоций хоть что-то техническое. что по твоему в языке жава в плане контроля на порядок выше pl/sql ?

DPH3
ты изменения в хранимых процедурах вообще не тестируешь, рассчитываешь только на контроль со стороны Oracle?
нет.
DPH3
И, кстати, есть какой-нибудь аналог junit для хранимых процедур?
ну а сам то как думаешь ?
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404494
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Павел-П
А вы проведите тест. Сгенерируйте огромное количество данных. И выполняйте свой запрос под большой нагрузкой. Вот и получите ответ.
Да мне то нахрена это надо? Я и так знаю, что получится в итоге.
Вот Вы можете попробовать сотворить в нулевом приближении ебайную эмуляцию.
Сервер БД, веб-сервер, страничка.
В первом варианте со страницы уходит простой селект.
Во втором варианте со страницы уходит обращение к хранимке, содержащей тот же самый простой селект.
Попробуйте заметить разницу во времени. Может хоть после этого эксперимента перестанете по форумам мудачества писать на тему "затрат ресурсов на компиляцию хп".

Исходя из ваших аргументов - хранимые процедуры это зло.
Нет.
Я далёк от мысли демонизировать хранимки. Но я их и не идеализирую. В отличие от многих здешних участников, которым даже лежащее на поверхности утверждение о том, что ХП могут быть медленнее, требуется в рот положить да расжевывать. Настолько они готовы на хранимки молиться, что им даже в голову не приходит, что там может быть что-то медленно и/или что-то плохо.

Ими вообще пользоваться не стоит. А вдруг они вообще работать откажутся в движке СУБД.
Вам - возможно и не стоит пользоваться. Тем более если они у Вас "вдруг" перестают работать.

Поэтому будем пользоваться обычными запросами.
Дык и до написания запросов не факт что Вас стоит допускать.
Use ORM.

А то что запрос на сервере надо скомплировать - это никаких ресурсов не требует (об этом мы умалчиваем).
Да нет, не умалчиваем. Вон, условия для эксперимента я чуть выше нарисовал. Дерзайте.
BTW, сервер БД предназначен для того, чтобы запросы исполнять. И если для простых запросов (а сложным запросам в ебайно-подобных приложениях взяться просто неоткуда) составление плана их исполнения вызывает какие-то существенные затруднения - то это есть веский повод задуматься.

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

Вообще-то очень жаль, что обычная дискуссия перерастает в выяснение отношений кто круче.
Вы пришли на форум.
Не удосужились даже прочитать сходные темы (вон, использование хранимых процедур на первой странице этого подфорума болтается, там вопросы планов исполнения уже обсуждались)
Выдали неверное утверждение, основанное на полнейшем непонимании.
Попросили, чтобы Вам объяснили элементарные вещи, которых Вы не понимаете.
Вам объяснили элементарные вещи.
И теперь Вы говорите, что дескать "выяснение отношений кто круче"?
Ну так не ходите сюда. Тут взрослые дяди письками меряются.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404496
ЛП
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Yo.!
допустим были table1.a и table2.a интами, поглотили конкурента пришлось table1.a на варчар поменять. в хп субд проблему обнаружит, а как тесты DL узнают о связи table1.a с table2.a и отловят проблему ?
Если кто-то, выражаясь соседским языком, ёбнут на своей гордости от умения выписывать data access layer, то ему не составит труда написать валидацию схемы. Если же нет желания велосипеды изобретать, то существуют нормальные ОРМ.
Есть маппер, у него внутре думатель и неонка. Если думатель не смог корректно отмапить, то загорается неонка.
Билд проекта не пройдет. Какие ты тут мировые проблемы увидел - загадка.

---------------------------------

2 DPH3
В голову закрадывается страшная мысль - может, ты изменения в хранимых процедурах вообще не тестируешь, рассчитываешь только на контроль со стороны Oracle?
И, кстати, есть какой-нибудь аналог junit для хранимых процедур?
О чём ты, товарисч?
Истину говорю, они застряли на этапе квик-бейсика для мс-дос.
То, что в самых продвинутых СУБД иногда не компилируется некомпилируемое - уже воспринимается как божье откровение.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404665
Yo.!
...
2сосед-акцессник
вы бы хотя бы базовые вещи изучили бы что-ли ...

и вам - не болеть!

Yo.!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
CREATE or REPLACE PROCEDURE PROCEDURE1 IS
  x table1.a%type ;
BEGIN
  select a into x from table1 where rownum= 1  ;
-- много всякого кода
  insert into table2 values ( 1 ,x) ;
END;
допустим были table1.a и table2.a интами, поглотили конкурента пришлось table1.a на варчар поменять. в хп субд проблему обнаружит, а как тесты DL узнают о связи table1.a с table2.a и отловят проблему ?

в этом примере - в точности так же, как ее "обнаружат" ваши xp - возвратом ошибки времени выполнения.

Извините за ответ на не мне заданный вопрос.

удачи
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36404776
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo, забейте вы, дело не благодарное объяснять людям технологии, которые они не хотят изучать и понимать. Деградация разъедает IT страшной силой и с этим что-то сложно поделать.
Самое правильное - вообще не подпускать к СУБД людей без знания SQL.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36405067
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!
вообще-то это и есть основная вещь из этого контроля, т.е. язык имеет
механизм защиты от запуска кривого кода

Что автоматически означает, что сервер не имеет защиты от разрушения
целостности метаданных, а при создании хранимых процедур и триггеров не
осуществляется даже их проверка на синтаксис языка.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36405953
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛП
О чём ты, товарисч?
Истину говорю, они застряли на этапе квик-бейсика для мс-дос.
То, что в самых продвинутых СУБД иногда не компилируется некомпилируемое - уже воспринимается как божье откровение.
Ну, с точки зрения развития языка и средств разработки - то да, все эти /SQL - страшное убожество. Но я сам дофига писал SQL кода (и вообще был большим сторонником хранимых процедур при разработке двухзвенок) - и вполне себе и юниттесты делал, и функциональные, и шаблоны проектирования формулировал и использовал - язык этому, в общем, не мешает, дело то в головах обычно.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36405986
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov
Что автоматически означает, что сервер не имеет защиты от разрушения
целостности метаданных, а при создании хранимых процедур и триггеров не
осуществляется даже их проверка на синтаксис языка.

который сервер ? апп-сервер тригера и зп не создает, а сервер субд как имеет защиту от разрушения методанных и проверку синтаксиса. в дб2 правда это обычно внешний прибомбас, но примерно ту же функцию выполняет.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36406099
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo.!который сервер ?

Оракул с лёгкостью позволит убить поле или всю таблицу, на которую
ссылается ХП. Это называется "защитой от разрушения метаданных"?
Он же позволит создать ХП у которой внутри всего одно слово да и то
матерное. Это называется проверкой синтаксиса?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36407534
Favn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Yo.!в дб2 правда это обычно внешний прибомбас, но примерно ту же функцию выполняет.
"Внешний" он только для внешних языков вроде C и Java. Для встроенных SQL PL (и PL/SQL :) ) он вполне себе внутренний.
ЗЫ (off). Если интересно, недавно натолкнулся на статейку, где сказано, что в DB2 9.7 SQL PL и PL/SQL компилячатся в общий байт-код, т.е. их совместная поддержка - это просто разные компиляторы, результат одинаковый.
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36408525
Yo.!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2DPH3
так что там у нас с контролем "современного универсального языка" ? есть шансы услышать, что-то кроме эмоций или громкое
DPH3
Внутри любого современного универсального языка (т.е. статический контроль типов и управляемая память) контроль над кодом на порядки выше, чем в всяких SQLподелках - еще на этапе компиляции.
так и останется громкой газификацией лужи ?
...
Рейтинг: 0 / 0
Высоконагруженные проекты и запросы
    #36408585
Yo.!...
есть шансы услышать, что-то кроме эмоций...
Это Вы с перепою, или от натуги над собственным знанием хотите услышать что-то вразумительное?
При условии, что сами ничего вразумительного не произносите?
( надеюсь, собственные пожелания читателям вы сами за "вразумительное" не принимаете)
...
Рейтинг: 0 / 0
20 сообщений из 95, страница 4 из 4
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Высоконагруженные проекты и запросы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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