|
|
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Конечно! :) Из такого: [quot автор]Кроме того, сейчас основная работа возложена на один SQL запрос, который, если каких то данных не хватает, просто скипает записи, так что хрен найдёшь, куда и почему они делись[/ quot] я давно уже вырос Тяпница :) -- Tygra's -- Мои фотогалереи тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:35 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
mcureenabСейчас вугружается около сотни записей в секунду. В перспективе нужно увеличить производительность на порядок.Что-то это слабо тянет на AS. Типичное миграционное приложение, которых можно настругать с десяток. Ну задача у него своеобразная... только это не AS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:45 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Так вообще непонятно, откуда выгружается и куда. По-мойму нас разводят :)) -- Tygra's -- Мои фотогалереи тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:54 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Bely mcureenabСейчас вугружается около сотни записей в секунду. В перспективе нужно увеличить производительность на порядок.Что-то это слабо тянет на AS. Типичное миграционное приложение, которых можно настругать с десяток. Ну задача у него своеобразная... только это не AS. На AS не тянет, а как сервер выгрузки, вполне. Если в системе есть AS, то неплохо будет вносить изменения в БД через него, а не напрямую, чтобы изменения сразу в его кэше отображались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 16:56 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
tygraТак вообще непонятно, откуда выгружается и куда. Из БД в файл определённого формата. Задача совершенно нехитрая, есть GUI, хранимая процедура на PL/SQL и модуль на C++, который работает в режиме сервиса Windows. Зачем так много? 1. Затем что PL/SQL не умеет делать GUI и не умеет делать требуемые файлы. 2. Затем что GUI работает на ПК оператора, а модуль на C++ на отдельном сервере, чтобы оператор не остановил его. Спрашивается, зачем тут хранимая процедура на PL/SQL, если модуль на C++ может всё сделать не хуже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:11 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
mcureenabСпрашивается, зачем тут хранимая процедура на PL/SQL, если модуль на C++ может всё сделать не хуже?Дествительно, незачем. Но с такими рассуждениями можно легко докатиться до выводов "Зачем нужна БД, если все можно хранить в текстовом файле" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 17:14 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Bely mcureenabСпрашивается, зачем тут хранимая процедура на PL/SQL, если модуль на C++ может всё сделать не хуже?Дествительно, незачем. Но с такими рассуждениями можно легко докатиться до выводов "Зачем нужна БД, если все можно хранить в текстовом файле" Так если можно, то почему бы не хранить в текстовом файле? Видимо, нужно взвесть стоимость разработки и сопровождения собственного менеджера данных и покупки промышленной СУБД. Учесть перспективы развития системы, требования к её открытости, производительности, устойчивости к сбоям и т.д. и т.п. Что касается моей задачи, PL/SQL модуль просится быть переписаным на C++, но этот модуль уже есть, он протестирован и работает, бюджет на переписывание начальство не даёт, вот и пользуемся тем что имеем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 19:17 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
авторСпрашивается, зачем тут хранимая процедура на PL/SQL, если модуль на C++ может всё сделать не хуже? Отвечается - зачем какой-то с++, если есть pl/sql, на котором можно сделать чего надо. И уж в крайних случаях - если например данные бд превращать в формат pdf, можно делать не с помощью pl\sql, а с помощью того, чего это умеет делать. Но только приведенный пример никак не относится ни к распределенным вычислениям, тем более вообще никак к многозвенкам. Я тыщу раз говорил - слишком сильная трава у заядлых многозвенщиков, вы даже в обычном роботе, который чего-то там считает по расписанию, уже видите звено, и мало того, пытаетесь это воплотить в апп-сервере. Жаль, что уже не вылечить. :) Трава сидит глубоко. В общем, облом, пример не соответствует теме топика. -- Tygra's -- Мои фотогалереи тут и тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 09:30 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
>mcureenab > ... Из БД в файл определённого формата. ..... >tygra > ... Но только приведенный пример никак не относится ни к распределенным вычислениям, тем более вообще никак к многозвенкам. Это, батенька, почему-же? Сервер данных построил выборку в своем формате (последовательность строк, например). В общем случае эта последовательность должна быть предварительно обработана и сериализована для передачи клиенту (клиент не в локальной сети и библиотека SQLClient на его компе не установлена) и представлена в виде файла (на диске) или MemoryStream (в памяти). Потом неплохо бы результирующую сериализацию сжать (Zip-ом например), всетаки 1:10, а то и поболее. Да и шифрование применить иногда не мешает. И это все должен делать сервер данных? А почему не сервер приложений? А если второе, то вот и многозвенка и распределенные вычисления. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 11:09 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
"Тонкий" клиент был задуман с целью экономии на стоимости клиентской машины, минимум памяти, без винта и т.д., а также для медленных сетей и прочее. Вобщем тратимся на сервер, а экономим на рабочих станциях. По жизни железо становится всё шустрее и дешевле. На данный момент достаточно дешёвый комп на самом деле машина всё же очень шустрая и не использовать эти ресурсы просто не разумно. Тем более если клиенты находятся в офисе с локалкой как минимум 100MB. Поэтому логично сервак всёже максимум разгрузить. Я реализовал расчёт зарплаты на предприятии без дубликатов данных и сответсвенно без триггеров. Все необходимые расчёты на каждый лицевой счёт производится хранимой процедурой. В неё более сотни запросов, на считывание, обновление у добавление данных. Процедура оптимизирована и вызывается после каждого изменения данных. При необходимости из приложения можно на произвести расчёт всех сотрудников. За 40 сек. производится расчёт на 4000 чел. В мае полностью переписал приложение, заменил доступ через BDE на ADO и часть нагрузки перенёс на рабочии станции, тем самым рагрузил сервак. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 11:12 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
tygra авторСпрашивается, зачем тут хранимая процедура на PL/SQL, если модуль на C++ может всё сделать не хуже? Отвечается - зачем какой-то с++, если есть pl/sql, на котором можно сделать чего надо. И уж в крайних случаях - если например данные бд превращать в формат pdf, можно делать не с помощью pl\sql, а с помощью того, чего это умеет делать. Прикол в том, что "это самое" (программа на C++), может сделать то что нужно, в том числе и то, что написано на PL/SQL. Так зачем PL/SQL и необходимость развёртывания ХП в СУБД? Короче, не выдумывай сырые частные решения не зная общей задачи. tygraНо только приведенный пример никак не относится ни к распределенным вычислениям, тем более вообще никак к многозвенкам. Я тыщу раз говорил - слишком сильная трава у заядлых многозвенщиков, вы даже в обычном роботе, который чего-то там считает по расписанию, уже видите звено, и мало того, пытаетесь это воплотить в апп-сервере. Наличие вдух взаимодействующих узлов, это уже распределённые вычисления. Про многозвенку в примере вообще речи не шло. Тут взаимодействуют GUI клиент, СУБД и спциализированный сервер, который создаёт файлы и отправляет их по указанному адресу. ИМХО, серверы приложений в настоящее время являются отличной масштабируемой платформой для развёртывания задач любой сложности. Специфические требования приложений реального времени или желание сэкономить на оборудовании заставляют разрабытывать внешние модули. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 14:41 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven wrote: > <...>Если некий компонент одинаково работает с разными СУБД - крайне велика > вероятность того, что со всеми СУБД он это делает одинаково плохо. > И ценность такого компонента для решения из конкретно этого топика - > стремится к нулю. > > > Согласен, "независимость от СУБД" зачастую неоправдана. С другой стороны > - вот случится несчастье, свалится к Вам на голову начальник - > ортодоксальный юниксоид, прикрывающийся блюдением лицензионной чистоты, > что будете делать? Посчитаю ему стоимость перехода с MS SQL на Oracle - пусть захлебнётся слюной от жадности. > > locky > > А "к примеру зарплата" - чудесным образом реализуется на T-SQL без > излишнего геммороя.<...> > > > Размер геморроя зависит от индивидуальных знаний, навыков и > предпочтений. С тем, что для коммерческой компании до неск. тысяч > человек всё вполне реализуемо на T-SQL, не поспоришь. Но вот Вы взялись > бы создавать и главное - потом поддерживать решение, обсчитывающее з/п > средствами T-SQL для РЖД, или "хотя бы" для ВАЗа? Не знаю - не мой профиль. Но на менее крупных - можно было бы. Проводим декомпозицию... и далее по тексту :) Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 14:55 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
AlexTheRavenНо вот Вы взялись бы создавать и главное - потом поддерживать решение, обсчитывающее з/п средствами T-SQL для РЖД, или "хотя бы" для ВАЗа?Мы вот взялись. MSSQL2k + Win клиент. Никаких больше звеньев нет. Все расчёты и логика на TSQL. Расчёт рабочего времени + ещё куча характеристик нарастающим итогом каждые сутки в конце прошлого месяца на "подшефном" сервере занял 1 минуту 41 секунду. И таких серверов порядка сотни. Расчёт был произведён по 1880 работникам. В начале месяца он выполняется где-то секунд за 30. Система работает в режиме 24х7. Что мы делаем не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 06:07 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Алексей К MSSQL2k + Win клиент. Никаких больше звеньев нет. Все расчёты и логика на TSQL И у меня такой вариант работает с 2000г., структура получилась удачная, за 7 лет реализовывались все мыслемые и не мысленные требования законодателей. Полный расчёт всех начислений, в том числе налогов различной аналитической информации происходит после каждого изменения вводимых данных. Всё это происходит быстро, на скорость работы операторов не сказывается. Ограничений на численность персонала не вижу, всё зависит от сервака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 09:38 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Алексей К<...>Расчёт был произведён по 1880 работникам. В начале месяца он выполняется где-то секунд за 30. Система работает в режиме 24х7. Что мы делаем не так?Да я и не спорю, что Вы всё делаете правильно. Просто пост лучше читать целиком :) . А в нём написано: AlexTheRaven<...>С тем, что для коммерческой компании до неск. тысяч человек всё вполне реализуемо на T-SQL, не поспоришь.<...> ---------------------- Алексей К<...>И таких серверов порядка сотни.<...> Несколько непонятно: - в Вашей организации порядка 200'000 тыс сотрудников, и Вы грамотно распараллелили расчёты по 100 серверам? - 100 серверов считает з/п для 1880 сотрудников? - Ваши сервера стоят в 100 организациях по неск. тыс. сотрудников в каждой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 10:47 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Alex_Toms<...>Ограничений на численность персонала не вижу, всё зависит от сервака. А сейчас для какого количества сотрудников рассчитывается, если не секрет, конечно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 10:50 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
И мне интересно, а зачем разбивать на "небольшие" части всех сотрудников, есть какие то ограничения на расчёт в одном месте? Скорее всего мне кажется, что организация разбита на филиалы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 10:56 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
AlexTheRaven См. чуть выше в этом топике... Повторюсь:За 40 сек. производится расчёт на 4000 чел.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 11:00 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
AlexTheRavenНесколько непонятно: - в Вашей организации порядка 200'000 тыс сотрудников, и Вы грамотно распараллелили расчёты по 100 серверам? - 100 серверов считает з/п для 1880 сотрудников? - Ваши сервера стоят в 100 организациях по неск. тыс. сотрудников в каждой?Сотрудники распределены по более чем 200-м линейным предприятиям, территориально расположенным по всей России. В каждом линейном предприятии стоит сервер линейного уровня (или один на несколько, территориально расположенных рядом, всё зависит от каналов связи). Есть ещё сервера регионального уровня, они используются для обмена данными между линейными предприятиями (транзакционная репликация) и с них передаются данные в другие оперативные системы и в ОЛАП. Сейчас ведутся работы по созданию центрального сервера в Москве для "глобальной" отчётности. Это я всё упрощённо описал, на самом деле там всё гораздо сложнее. Но вопрос не в этом. Вопрос в другом. Накой писать обработку данных на C++ (C#, Java), когда это можно на порядок проще и эффективнее реализовать в SQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 11:57 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
AlexTheRavenС тем, что для коммерческой компании до неск. тысяч человек всё вполне реализуемо на T-SQL, не поспоришьА что, если будет больше, то нереализуемо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 12:22 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Алексей К Накой писать обработку данных на C++ (C#, Java), когда это можно на порядок проще и эффективнее реализовать в SQL? Пробовал я такой вариант, правда не в зарплате. Приложение было на C++ Builder, считывал данные с сервака, обрабатывал из на клиенте, а потом обновлял на серваке. Сделал всё это в хранимой процедуре, скорость работы значительно возросла, и система стала просто летать по сравнению с первым вариантом. Да и от конфигурации рабочей станции скорость перестала зависеть. А при распределённых системах могут быть ещё проблемы с каналами, и в этом случае обработку оптимально всё же делать в ХП на серваке. Хотя в каждом деле всегда есть золотая середина. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 12:55 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Даже если вдруг аналитика станет сильно влиять на работу оперативной системы, всегда можно "сбоку" прикрутить ОЛАП, и пусть вся аналитика крутится там. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 13:03 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Alex_Toms Пробовал я такой вариант, правда не в зарплате. Приложение было на C++ Builder, считывал данные с сервака, обрабатывал из на клиенте, а потом обновлял на серваке. Сделал всё это в хранимой процедуре, скорость работы значительно возросла, и система стала просто летать по сравнению с первым вариантом. Распределённые вычисления принципиально отличаются от локальных. Возможно, в данном случае система не учитывала сетевые задержки. Если программа на C++ изначально была основана на принципах локальных вычислений, то неудивительно, что её перенос на сервер позволил увеличить скорость вычислений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 14:46 |
|
||
|
Тонкий или толстый клиент
|
|||
|---|---|---|---|
|
#18+
Алексей К AlexTheRavenНесколько непонятно: - в Вашей организации порядка 200'000 тыс сотрудников, и Вы грамотно распараллелили расчёты по 100 серверам? - 100 серверов считает з/п для 1880 сотрудников? - Ваши сервера стоят в 100 организациях по неск. тыс. сотрудников в каждой?Сотрудники распределены по более чем 200-м линейным предприятиям, территориально расположенным по всей России. В каждом линейном предприятии стоит сервер линейного уровня (или один на несколько, территориально расположенных рядом, всё зависит от каналов связи). Есть ещё сервера регионального уровня, они используются для обмена данными между линейными предприятиями (транзакционная репликация) и с них передаются данные в другие оперативные системы и в ОЛАП. Сейчас ведутся работы по созданию центрального сервера в Москве для "глобальной" отчётности. Это я всё упрощённо описал, на самом деле там всё гораздо сложнее. Но вопрос не в этом. Вопрос в другом. Накой писать обработку данных на C++ (C#, Java), когда это можно на порядок проще и эффективнее реализовать в SQL? Согласен, только на чистом SQL и ХП обработку данных реализовать невозможно. SQL запросы должен кто то толкать и забирать результат и предоставлять его пользователю, SQL это делать не умеет вообще, а ХП с многими ограничениями, т.е. непременно нужен некий клиент БД. А раз есть клиент, то частенько есть возможность разместить расчёты на нём, а не в СУБД. Клиент в данном случае не обязательно GUI компонент или AS. Это может быть некий сервис, например менеджер расчёта зарплаты. Пример с распределённой системой не показательный. Понятное дело, если раскидать нагрузку по сотне СУБД, то задача будет работать быстро. В данном случае распределённые вычисления необходимы по причине распределённости самого предприятия. Но ведь никому не придёт в голову устанавливать в спортзале сотню серверов СУБД, только для расчёта зарплаты на несколько тысяч сотрудников или чего нибудь подобного. Только на закупку лицензии СУБД на 100 CPU уйдёт куча бабок. Нужно понимать, что СУБД включает в себя SQL машину, которая решает основную задачу - управление данными на диске, и PL/SQL машину или т.п., которая осуществляет процедурные вычисления (триггеры и ХП). Когда мы покупаем лицензию на СУБД, то платим за оба компонента. Но если мы имеем дефицит только вычислительных ресурсов, при том что SQL машина не догружена, покупка дополнительного узла СУБД или обновление оборудования только ради развёртывания дополнительных расчётов на ХП будет выглядеть несколько странно. PS. Расчёт ЗП сложен на этапе разработки и внедрения, тогда как на этапе выполнения современный микрокомпьютер справится с расчётом ЗП для тысяч сотрудников в более чем приемлемые сроки. Поэтому здесь нужно ориентироваться на удобство работы с исходником. C++ или Java для этого слишком сложные языки, поэтому естественным выбором может стать PL/SQL и т.п. + GUI на базе framework системы и генератор отчётов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 15:28 |
|
||
|
|

start [/forum/search_topic.php?author=ich&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
11ms |
get forum list: |
21ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
174ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
88ms |
get tp. blocked users: |
2ms |
| others: | 605ms |
| total: | 949ms |

| 0 / 0 |
