|
Два порядка?
|
|||
---|---|---|---|
#18+
По мотивам этой статейки http://habrahabr.ru/post/140221/ а именно цитаты: "... Особенность применения ООП в том, что оно порождает кучу мелких обращений к базе данных. И из этой ситуации сейчас существует два выхода: а) разместить логику приложения внутри базы данных; б) кэшировать данные внутри сервера приложений. Выбрав вариант «а», вы сможете увеличить скорость примерно на два порядка : до 100 000 запросов в секунду. ..." К сожалению автор абсолютно голословен. Почему было 1000, а стало 100000? Никаких фактов ,измерений, или хотя бы внятных объяснений. Но! Сам я встречался с ситуацией, когда отчеты в том же Навижн формировались в около 100 раз (те же 2 порядка) дольше, чем прямая выборка тех же данных из тех же таблиц средствами самого SQL сервера. Нельзя сказать, что отчеты специально оптимизировались (как впрочем и выборки), но и явных косяков в их логике не было. Причем речь даже и не об ООП. Есть ли у Вас какие-либо подтверждения или опровержения этим двум порядкам? Какая разница в скорости по Вашему? Давайте любые мысли по этому поводу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 15:12 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Что мешало задать вопрос автору статьи? Тем более, что цель вопроса - всего лишь придраться к этой интуитивно-экспертно-потолочной оценке. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 15:19 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
vandererЧто мешало задать вопрос автору статьи? Тем более, что цель вопроса - всего лишь придраться к этой интуитивно-экспертно-потолочной оценке. Нет, цель вопроса - узнать, является оценка "два порядка" верной ли по мнение местной публики. У людей есть опыт, мысли. По мне, она имеет право на жизнь, но вдруг я ошибаюсь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 15:25 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
IzyaПо мотивам этой статейки http://habrahabr.ru/post/140221/ Оценка самой статьи (-19) и комментарии к ней достаточно ясно говорят о "ценности" этой статьи. По моему, комментировать тут больше нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 15:30 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Я уже жалею, что на статью сослался :) Еще раз. Я не пытаюсь обсудить эту статью, хорошая она или плохая. Вопрос в другом, прочитайте внимательно. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 15:36 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Изя, твоя беда в том, что ты пытаешься к хорошо формализуемым техническим областям подойти с позиций веры. IzyaЕсть ли у Вас какие-либо подтверждения или опровержения этим двум порядкам? Какая разница в скорости по Вашему? Давайте любые мысли по этому поводу. Совершенно идиотская постановка вопроса. Разница в скорости никак не зависит от наличия опровержений, подтверждений и тем более от форумных мыслей по этому поводу. Эта разница зависит исключительно от конкретной реализации и условий применения. Разницы может и не быть, может быть 1, 2 или 100500 порядков. Это все равно что обсуждать и собирать мнения, действительно ли M*N=4. Не надо собирать мнения, надо всего лишь выяснить M и N P.S. Это надо было в ПТ постить ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:13 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Izyaа) разместить логику приложения внутри базы данных; Ессно такие программы быстрее чем та же логика на клиенте. М.б. и 2 порядка, зависит от логики работы с БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:33 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
2 vanderer, Я и с первого раза понял, что по делу Вам сказать нечего. У Вас есть опыт переноса какой-то конкретной логики с клиента на сервер в какой-нибудь (любой) конфигурации? Если есть, какой выигрыш (оценочно или точно) Вам это дало при использовании этой конкретной логики? Если не трудно - что это была за конфигурация. У меня какой-то опыт есть. Я им поделился. Надеюсь, что здесь найдутся люди со схожим опытом и поделятся им. Я хочу понять, насколько мои оценочные суждения (не)совпадают с другими такими же суждениями. А если мой вопрос Вам не нравится - не заходите больше в этот топик. Я и с первого раза понял, что по делу Вам сказать нечего. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:35 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
_модIzyaа) разместить логику приложения внутри базы данных; Ессно такие программы быстрее чем та же логика на клиенте. В общем случае утверждение ложное. Бывают обратные примеры. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:37 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
IzyaНо! Сам я встречался с ситуацией, когда отчеты в том же Навижн формировались в около 100 раз (те же 2 порядка) дольше, чем прямая выборка тех же данных из тех же таблиц средствами самого SQL сервера. Нельзя сказать, что отчеты специально оптимизировались (как впрочем и выборки), но и явных косяков в их логике не было. Причем речь даже и не об ООП. навик при формировании отчетов работает очень неоптимально с точки зрения нагрузки на sql фактически отчет в навике - это несколько циклов, каждый из которых может содержать вложенные циклы. для больших отчетов разница может быть намного больше, чем 100 раз ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:00 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
IzyaСам я встречался с ситуацией, когда отчеты в том же Навижн формировались в около 100 раз (те же 2 порядка) дольше, чем прямая выборка тех же данных из тех же таблиц средствами самого SQL сервера. Нельзя сказать, что отчеты специально оптимизировались (как впрочем и выборки), но и явных косяков в их логике не было. Причем речь даже и не об ООП. Есть ли у Вас какие-либо подтверждения или опровержения этим двум порядкам? Какая разница в скорости по Вашему? Давайте любые мысли по этому поводу. каким образом сравнивали? Это самый главный вопрос. Зачастую сравнивается загрузка видимой на экране порции, для отображения, "средствами самого SQL сервера" с загрузкой и отображением всего набора данных и делается вывод о том, что где-то в 100 раз быстрее. В этих самых средствах всегда добейтесь загрузки всех данных их БД, так это делают отчеты, а затем сравнивайте. Типичный прием, когда для WOW-эффекта демонстрируется мгновенное открытие. То, что банальный переход на последнюю запись в наборе данных при этом заставляет подумать о кофе, вежливо скрывается. Так работает любая "ленивая" загрузка. Для отчета, когда данные нужны здесь, сейчас и все одновременно - это естественно не подходит. Так то не стоит сравнивать несравнимое. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:23 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
s_ustinovнавик при формировании отчетов работает очень неоптимально с точки зрения нагрузки на sql здесь объяснимо. Не стоит забывать, что SQL для не все же не родное. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:28 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
iscrafmНе стоит забывать, что SQL для не ГО все же не родноеопечатка ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:30 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
vandererЧто мешало задать вопрос автору статьи? Тем более, что цель вопроса - всего лишь придраться к этой интуитивно-экспертно-потолочной оценке. Гы! Там на хабре -- попробуй что-нибудь задай! Это ж сборище элитарных графоманов, на манер бывшего союза писателей -- чтобы что-то им написать, надо сначала самому стать элитарным графоманом, но и этого ещё мало -- надо, чтобы тебя признали уже действующие элитарные графоманы, чтобы попасть в клуб. Вот он тут и обсуждает, обсудить-то хочется... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:48 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Ну не знаю, как насчёт двух порядков, специально не считал. Однако сам наблюдал. Множество мелких запросов в профайлере там, где можно было обойтись и одним. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:53 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
IzyavandererЧто мешало задать вопрос автору статьи? Тем более, что цель вопроса - всего лишь придраться к этой интуитивно-экспертно-потолочной оценке. Нет, цель вопроса - узнать, является оценка "два порядка" верной ли по мнение местной публики. У людей есть опыт, мысли. По мне, она имеет право на жизнь, но вдруг я ошибаюсь? Как бы почему ты хочешь обсуждать именно эту статью -- не понятно. По мне -- ещё одна надпись на заборе, но не одно слово из трёх букв, а много слов, и букв в каждом слове тоже побольше. Ну, уж изволь, раз уж ты так хочешь ... авторОбщая скорость работы приложения обуславливается двумя категориями: 1) скоростью работы каждого из звеньев приложения; 2) скоростью взаимодействия между звеньями приложения. По первому пункту, слабым звеном может быть только база данных, поскольку мы всегда можем поставить рядом ещё один сервер и распараллелить сервера приложений и веб-сервера. Ага, а что есть state full запросы и в серверах приложений -- это автор не знает. и что всякие техники распараллеривания БД есть -- видимо, тоже не знает. авторИ из этой ситуации сейчас существует два выхода: а) разместить логику приложения внутри базы данных; б) кэшировать данные внутри сервера приложений. Выбрав вариант «а», вы сможете увеличить скорость примерно на два порядка порядок: до 100 000 запросов в секунду. Неудобство в том, что при этом мы вынуждены логику реализовывать на встроенном языке базы данных. Вариант с С# или Java –процедурами не подходит, т.к. такие процедуры выполняются в виртуальной машине, которая фактически является отдельным процессом и по времени взаимодействия практически не отличается от внешнего сервера приложений. И хотя встроенный язык программирования не очень приспособлен для реализации логики приложения, во многих банках используется именно такой подход. В основном в таком случае используется, конечно же, Oracle со своим встроенным PL/SQL. Ага, и интересно чем это эти встроенные языки не подходят.... Во-первых, во многих СУБД есть и встроенные C# с Java -- пиши, если нравится. Во-вторых, языки типа Transact SQL и PL/SQL мощны, близко находятся к данным, хорошо с ними работают, лишены проблем типа утечек памяти, и -- главное -- поддерживают ту же парадигму программирования, что и БД -- реляционные вычисления. И учаться ещё легко. Это ИДЕАЛЬНО для разработки бизнес-логики. авторТеперь поговорим о перспективах. Сейчас тихо и незаметно происходит настоящая революция в компьютерной технике – переход на 64-бита. Статья за март 2012 года. ДА 64 БИТА УЖЕ ЛЕТ 5 как рулят вовсю! 2001 году винды вышли 64 бита и ядро линукса. Автор проспал всё на свете... авторПо всей видимости, в скором будущем мы увидим объединение сервера приложения и базы данных. Первые шаги сделаны: Oracle купила технологию Java, а Microsoft уже встраивает SQL-запросы в язык C#. Т.е. они стараются засунуть логику внутрь своей СУБД. Ну, и с этим автор тоже давно уже всё "проспал". авторВыводы. ООП, доказавшее, за 30 лет своего существаования, свою эффективность, не может использоваться нами полностью, т.к. оно плохо совместимо с реляционными базами данных. В топике даны ориентировочные цифры, используя которые, можно выбрать оптимальную глубину внедрения ООП, и знать границы возможностей будущего приложения. Ну фееричный вывод. Да.. не может ООП-то нами использоваться, не может! В общем, детский сад. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 18:11 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
IzyaЯ и с первого раза понял, что по делу Вам сказать нечего. Как раз он очень по делу сказал. Чтобы иметь конкретные цифры, надо иметь конкретную задачу, а тут (в статье) -- только пустые слова. IzyaУ Вас есть опыт переноса какой-то конкретной логики с клиента на сервер в какой-нибудь (любой) конфигурации? Если есть, какой выигрыш (оценочно или точно) Вам это дало при использовании этой конкретной логики? Если не трудно - что это была за конфигурация. В разных ситуациях будут разные выигрыши, иногда это будут наоборот проигрыши. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 18:18 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
MasterZivязыки типа Transact SQL и PL/SQL мощны, близко находятся к данным, хорошо с ними работают, лишены проблем типа утечек памяти, и -- главное -- поддерживают ту же парадигму программирования, что и БД -- реляционные вычисления. И учаться ещё легко. Это ИДЕАЛЬНО для разработки бизнес-логики. это действительно так, но это не "мэйнстрим". К тому же, нужно уметь разложить сложный процесс на простые и быстрые составляющие и скормить их в нужном порядке СУБД. Но!... Сейчас этому не учат, концентрация внимания на ООП, даже там, где оно "за уши притянуто". Попробуй среднестатистическому современному разработчику поставить какую-либо задачу из бизнес-логики... Будет долгий поиск сущностей и объектов там, где необходимо 2+2 выполнить. По этой причине в ход идут совершенно другие инструменты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 19:16 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
iscrafmэто действительно так, но это не "мэйнстрим". Это -- мейнстрим. iscrafmК тому же, нужно уметь разложить сложный процесс на простые и быстрые составляющие и скормить их в нужном порядке СУБД. Ты знаешь, в такой формулировке -- это вообще-то секрет производительности любого приложения с БД. iscrafm Но!... Сейчас этому не учат, концентрация внимания на ООП, даже там, где оно "за уши притянуто". Попробуй среднестатистическому современному разработчику поставить какую-либо задачу из бизнес-логики... Будет долгий поиск сущностей и объектов там, где необходимо 2+2 выполнить. По этой причине в ход идут совершенно другие инструменты. Где не учат? Не знаю... Вообще-то в мире баз данных ООП противопоказано. Т.е. объект со структурой -- пожалуйста, наследование -- пожалуйста, но не инкапсуляция. Даже ОО-СУБД не такие уж ОО -- инкапсуляцией даже там и не пахнет. Суть БД (и СУБД) в том, что приложение РАСКРЫВАЕТ для СУБД внутреннюю структуру данных, описывая её в виде метаданных, и этим позволяет СУБД выполнять всяческие оптимизации по хранению и обработке этих данных. И это признано всеми вроде бы ведущими экспертами. Никто вроде бы не спорит. Так что я не знаю, про что это. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 19:53 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
MasterZiviscrafmэто действительно так, но это не "мэйнстрим". Это -- мейнстрим. у нас похоже разные источники информации. По моим - мейнстримом является масса ОРМов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 22:04 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
vandererВ общем случае утверждение ложное. Бывают обратные примеры. Бывают, но только для высоконагруженных систем, когда сервер БД не справляется с БЛ. Дл ярядовых систем с числом пользователей до 1000 все нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 09:15 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
iscrafmу нас похоже разные источники информации. По моим - мейнстримом является масса ОРМов. Прикольно. ОРМ занимаются на мой взгляд, либо дилетанты и у них получается как*шка, либо профессионалы, которые адаптируют ОРМ под реляционную БД. В том же 1С есть не просто объект "Документ", но и "Реестр документов". Насколько я понимаю, для скорости обработки. Ну а профессионалы либо будут переписывать многие медленные блоки ОРМ, либо, что скорее всего, напишут свою, с приемлемой скоростью обработки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 09:50 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
defragmentatorпрофессионалы либо будут переписывать многие медленные блоки ОРМ, либо, что скорее всего, напишут свою, с приемлемой скоростью обработки данных. именно об этом и речь: все "ударились" в ОРМ. p.s. ОРМ не нужно именно адаптировать под реляционную СУБД. Адаптировать нужно ООП под реляционную СУБД. Он для этого и предназначен. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 11:24 |
|
Два порядка?
|
|||
---|---|---|---|
#18+
Izya, а можно еще хранить агрегаты наряду с реляционными данными. А можно учитывать тот простой факт, что бд сама кэширует результаты запросов, осталось только "корректно" разбивать на подзапросы и тд. Все очень сильно зависит от реализации. авторЭто ИДЕАЛЬНО для разработки бизнес-логики. Просто бросилось в глаза ;) Идеально для разработки - может быть, но никак не для сопровождения;) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 11:55 |
|
|
start [/forum/topic.php?fid=33&msg=38146527&tid=1547738]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 327ms |
total: | 462ms |
0 / 0 |