powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Тонкий или толстый клиент
25 сообщений из 217, страница 5 из 9
Тонкий или толстый клиент
    #34636232
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laleks
6. Поскольку зарплата - конфиденциальная вещь - делать на нее отдельную БД со свом доступом.
Обшие справочники можно размещать в отдельной БД.

Всё это в лёгкую делается с помощью видов. Я у себя так и реализовал.

Алексей К
Я привел время расчёта для ~2000 работников - ~1:30. Умножаем на 2, получаем ~ 3 минуты.

Совсем запутался в арифметике. Для уточнения, сколько же времени у вас требуется на полный расчёт для одного сотрудника?
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636254
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_TomsСовсем запутался в арифметике. Для уточнения, сколько же времени у вас требуется на полный расчёт для одного сотрудника?Ну если 2000 сотрудников обсчитываются где-то 1.5 ... 2 минуты, то один - "мгновенно". Лицевой счёт сотрудника с различными расчётами нарастающим итогом с начала месяца по первичным данным открывается где-то секунды за полторы. Хочу отметить, что у меня не совсем зарплата. У меня расчёт рабочего времени, времени отвлечений и ряда специфичных для нашей предметной области характеристик сотрудника. С другой стороны, если я правильно понимаю принцип расчёта заработной платы, то это практически тоже самое.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636297
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К mcureenab2 процессора? 4 процессора? Это в два, четыре раза больше стоимость лицензии на СУБД и оборудование тоже ощутимо дороже. Грубо говоря, вас развели на покупку оборудования и СУБД в значительно большем объёме чем это требуется. Чё-то я не понял, кто кого разводил? Мы заказчиков, или они нас? О чём вы... Ещё неизвестно во сколько обойдётся для заказчика "расчёт зарплаты" на С++. Разработка, отладка, опытное внедрение и т. п. И ещё не факт что в итоге всё получится и будет хорошо работать. Вон, соседний топик про 1С просто усыпан "лестными" отзывами о качестве продукта.


Про это я писал. C++ слишком сложный язык для описания алгоритма расчёта зарплаты, а это скорее самый важный критерий. Дело не в C++, а в возможности вынести процесс расчёта на отдельный от СУБД узел. Как бы ХП выдернуть из СУБД и пустить в свободное плавание довольно сложно.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636305
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К
Ну если 2000 сотрудников обсчитываются где-то 1.5 ... 2 минуты, то один - "мгновенно". Лицевой счёт сотрудника с различными расчётами нарастающим итогом с начала месяца по первичным данным открывается где-то секунды за полторы.

Так это нормально, это и есть работа в режиме реального времени. Это когда после ввода данных, бухгалтер видит результаты расчёта и сразу проверяет правильно ли произведён расчёт и если ОК, то можно смело переходить к следующему л/с.
С такой скоростью работы системы нам удалось свести количество ошибок фактически к нулю, при этом каждый бухгалтер ведёт 600-700 чел, а на время болезни или отпуска одной, ещё больше.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636317
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
C++ слишком сложный язык для описания алгоритма расчёта зарплаты, а это скорее самый важный критерий.

Нормальный язык, для такой задачи не сложнее других, у меня клиентские части написаны на C++ Builder. И я ни сколько не жалею, что выбрал этот язык прграммирования. Все расчёты как я уже отмечал сводятся к простым простым арифметическим действиям. А вот придумать как реализовать эту задачу и как всё это разбить на сравнительно простые куски, вот это действительно не просто.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636320
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
laleks
2. Доступ к данным черех хранимые процедуры. Обязательно параметризовать. Данные с сервера - на клиенте минимизировать. Зачем тащить курсоры на клиента > 50 строк?
3. Хранимыми процедурами обеспечить ввод, корректировку, удаление.
4. Лучше сделать несколько ХП вместо одной.


2, 3. ХМ. А чем select, insert, update, delete не устраивает? Тем более что компоненты доступа к БД, эти запросы самостоятельно создают. И триггеры никто не отменял. А >50 строк, так это может быть так пользователю надо. Другое дело, если пользователю много строк не надо, то нефиг их тянуть все.
4. Может быть для чего то и лучше. Только не надо забывать, что для вызова ХП или DML, на клиенте и сервере нужно открыть курсор, разобрать запрос, выполнить его, по ходу открывая рекурсивные курсоры и запросы. Если все DML операции вызывать через ХП, то СУБД потребуется чуть не вдвое больше памяти для хранения курсоров и дополнительное время для их компиляции.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636324
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabПро это я писал. C++ слишком сложный язык для описания алгоритма расчёта зарплаты, а это скорее самый важный критерий. Дело не в C++, а в возможности вынести процесс расчёта на отдельный от СУБД узел. Как бы ХП выдернуть из СУБД и пустить в свободное плавание довольно сложно.Зачем что-то куда-то выносить, если и без "выноса" всё отлично работает. Ну если так сильно хочется вынести аналитику отдельно - поставьте рядом ещё одну СУБД и назовите её OLAP .
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636332
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab2, 3. ХМ. А чем select, insert, update, delete не устраивает? Тем более что компоненты доступа к БД, эти запросы самостоятельно создают. И триггеры никто не отменял. А >50 строк, так это может быть так пользователю надо. Другое дело, если пользователю много строк не надо, то нефиг их тянуть все.
4. Может быть для чего то и лучше. Только не надо забывать, что для вызова ХП или DML, на клиенте и сервере нужно открыть курсор, разобрать запрос, выполнить его, по ходу открывая рекурсивные курсоры и запросы. Если все DML операции вызывать через ХП, то СУБД потребуется чуть не вдвое больше памяти для хранения курсоров и дополнительное время для их компиляции.Бес коментариеф....
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636338
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey TokarevМое ИМХО - СУБД - это приложение для обработки данных, и поэтому обработку данных нужно делать именно на ней. За редкими исключениями.

Если бы СУБД была предназначена для обработки данных, её бы назвали Система Обработки Данных (СОД). Одако СУБД назвали Системой Управления Базой Данных. Думаю, это не случайно. База Данных, это вполне конкретные файлы на диске, а не вообще всякоразные сведения, которые можно как то обработать. Управление, это тоже не совсем Обработка. ИМХО, управление не порождает новых данных, но размешает их в БД (в файлах на диске) или извлекает их оттуда наилучшим образом. Обработка скорее связана с преобразованием одних данных в другие, т.е. всякоразные вычисления, кодирование, шифрование, сжатие и распаковка. Обработка вообще может быть не связана с БД.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636361
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Alex_Toms
Да действительно, бывает полезно сразу после ввода данных отобразить оператору какие-нибудь расчётные характеристики, основанные на вновь введённых данных, чтобы он смог оценить правильность вода.

2 mcureenab
Ну так чё там с OLAP, как идея? Или не понравилась?
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636363
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabЕсли бы СУБД была предназначена для обработки данных, её бы назвали Система Обработки Данных (СОД). Одако СУБД назвали Системой Управления Базой Данных.Вас послушать, так любому запросу сложнее "SELECT * FROM tbl" не место в базе.
Ведь это уже будет обработка данных, а не управлением данных.

Группировка, аналитика и джоины - всех на клиента!
Не барское это дело данные обрабатывать...
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636365
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
2, 3. ХМ. А чем select, insert, update, delete не устраивает? Тем более что компоненты доступа к БД, эти запросы самостоятельно создают. И триггеры никто не отменял. А >50 строк, так это может быть так пользователю надо. Другое дело, если пользователю много строк не надо, то нефиг их тянуть все.

При получении запросов select, insert, update, delete сервак:
1: сначала призводит синтаксический разбор текста
2: затем компилирует
3: производит оптимизацию плана запроса
4: и только после этого выполняет сам запрос.
При использовании ХП, первые 3 пункта выполняются после изменении текста ХП, а при вызове сразу пункт 4, при этом при экономятся ресурсы сервера, и выигрыш от этого бывает очень значительный.

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

А сколько строк тянуть на клиента? Конечно лишего не надо, тут даже и спорить нет большёй необходимости. Хотя если делать курсор на сервере и тащить только 5 записей например из полученных 500, то остальные останутся на сервере и будут отнимать его ресурсы (временное пространство не резиновое). И поэтому иногда выгоднее всё же их утащить на клиента и там делать многократный перебор этих значений.
В ADO напрмер, можно реализовать курсор как на сервере так и на клиенте, всё зависит от каждого конкретного случая...
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636377
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab wrote:
Автор, пиши еще...
Плакал весь день, не переставая....
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636378
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К
Да действительно, бывает полезно сразу после ввода данных отобразить оператору какие-нибудь расчётные характеристики, основанные на вновь введённых данных, чтобы он смог оценить правильность ввода.

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

Bely
Группировка, аналитика и джоины - всех на клиента!
Не барское это дело данные обрабатывать...

Вот это я не понял, как будет всё это клиент делать? Он ведь абсолютно не владеет языком запросов!
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636379
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab wrote:
>База Данных, это вполне конкретные
> файлы на диске, а не вообще всякоразные сведения, которые можно как то
А если у мена рав-партишн - то это уже не СУБД?
а если мне надо просуммировать столбец в табличке - это обработка
данных? Кто это должен делать - сервер или клиент?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636393
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Toms Bely
Группировка, аналитика и джоины - всех на клиента!
Не барское это дело данные обрабатывать...
Вот это я не понял, как будет всё это клиент делать? Он ведь абсолютно не владеет языком запросов!Языком запросов владеет программист, а сервер и клиент выполняет инструкции

По поводу того, что клиент не умеет выполнять SQL запросы - тоже не верно.
Вспомните, хотя бы, старый добрый Access.
Запросы выполняет, работает полностью на клиенте.

Дело в том, что большинство запросов проще выполнить там же где лежат данные, чем передавать данные в отдельную программу.
Именно это и делает СУБД.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636416
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bely
Языком запросов владеет программист, а сервер и клиент выполняет инструкции

По поводу того, что клиент не умеет выполнять SQL запросы - тоже не верно.
Вспомните, хотя бы, старый добрый Access.
Запросы выполняет, работает полностью на клиенте.

Дело в том, что большинство запросов проще выполнить там же где лежат данные, чем передавать данные в отдельную программу.
Именно это и делает СУБД.

Ещё раз повторюсь, SQL запросы выполняет всё же SQL сервер, а не как не клиент ... А программист просто знает как работают запросы.

На сколько я правильно помню, старый добрый Access запросы всё же выполнять не мог, их за него выполнял механизм Jet. А почему всё это работало полностью на клиенте. Всё очень просто, при инсталяции офиса, Jet автоматом садится. И при работе с ADO рекомендуют выбирать для работы с MDB именно Jet с ним выше скорость, и поэтому функции он может выполнить которые есть только в Access.

Ну а по третьему пункту, в общем именно за это я "агитирую", с поправкой: не проще выполнить там же где лежат данные, а обработка происходит быстрее...
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636451
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Toms
При получении запросов select, insert, update, delete сервак:
1: сначала призводит синтаксический разбор текста
2: затем компилирует
3: производит оптимизацию плана запроса
4: и только после этого выполняет сам запрос.
При использовании ХП, первые 3 пункта выполняются после изменении текста ХП, а при вызове сразу пункт 4, при этом при экономятся ресурсы сервера, и выигрыш от этого бывает очень значительный.



В Оракле и при использовании ХП всё происходит точно так же с п.1 по п.4.
Может в MSSQL это не так? Но тогда после изменения данных останется старый план запроса.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636460
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
B MSSQL так же...
С Oracle много схожего, хотя у каждой БД есть свои изюминки, которой нет у другой.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636461
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky
mcureenab wrote:
>База Данных, это вполне конкретные
> файлы на диске, а не вообще всякоразные сведения, которые можно как то
А если у мена рав-партишн - то это уже не СУБД?

Файл на диске, это область памяти. Работаем мы с этой областью через файловую систему или как с raw устройством файл остаётся файлом.

lockyа если мне надо просуммировать столбец в табличке - это обработка
данных?

Да.

lockyКто это должен делать - сервер или клиент?

Зависит от постановки задачи. Если все данные есть на клиенте, то наверное клиенту будет сподручнее найти сумму самостоятельно, чем напрягать сеть и СУБД.
Никто не спорит, что функции обработки данных встроены в современные СУБД, и в ряде случаев они упрощают жизнь программиста, или экономят ресурсы, например сетевые, как в случае выборки агрегатов. Я предлагаю относится к этим функциям с точки зрения их полезности для системы в целом.


Alex_TomsВот это я не понял, как будет всё это клиент делать? Он ведь абсолютно не владеет языком запросов!

Хех. Что, без SQL уже посчитать ничего не умеем? SQL запрос в конечном итоге сводится к выполнению определённого алгоритма, который при желании можно запрограммировать на алгоритмическом языке. Совсем не обязательно загружать массив чисел в БД, чтобы посчитать сумму его элементов.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636478
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Хех. Что, без SQL уже посчитать ничего не умеем? SQL запрос в конечном итоге сводится к выполнению определённого алгоритма, который при желании можно запрограммировать на алгоритмическом языке. Совсем не обязательно загружать массив чисел в БД, чтобы посчитать сумму его элементов.

И без SQL посчитать умеем, и даже лучше чем он, например при сложных научных расчётах...
Вообще то БД это в первую очередь хранилище данных. Будут данные, будет что обрабатывать...
Наибольшая скорость работы SQL серверов заточена как раз на выполнение запросов, к примеру с помощью серверных курсоров, суммирование будет гораздо медленней чем простой select.
А если массив чисел находится на клиенте, то это не наш случай. Дебаты идут по вопросу, качать данные с сервака на клиента и например там суммировать, или суммировать на сервере...
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636481
serjio-k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже всегда считал, что СУБД - чОрное зло! Ну а так и сам я злой и подлый, служу ему с большим удовольствием ;)

Если же быть серьезным, вынос вычислений на отдельный сервер - не самая плохая идея. Виртуальная машина PL/SQL действительно медленная. С одной стороны лучше втюхать заказчику SunFire 15K с бизнес-логикой на PL/SQL, вместо двух 890-х (один - сервер БД, второй - сервер приложений). Но что вы будете говориь заказчику, когда самый топовый сервер (SunFire 25K или HP SuperDom) начнет не справляться с вычислениями (про RAC молчим, эта технология подходит далеко не для всех задач)? Правильно - вы ничего не будете говорить, а таки будете выносить бизнес логику в С/C++ приложение.

А зарплату надо считать в 1С :) Это была провокация.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636493
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serjio-k
Если же быть серьезным, вынос вычислений на отдельный сервер - не самая плохая идея. Виртуальная машина PL/SQL действительно медленная...

А зарплату надо считать в 1С :) Это была провокация.

Ситуацию когда процесс вычислений на HP SuperDom с PL/SQL, выносили на отдельный сервер с C/C++ я встречал. И при этом получали заметный выигрыш в скорости. Но это очень редкий случай.

А про то, что зарплату надо считать в 1С : Это не провокация.
Пусть поделятся опытом кто на предприятии численностью в тысячи человек, внедрил расчёт зарплаты на 1С, как скорость работы, на каком железе, ну очень интересно...
На сколько я в курсе например "Камин", рекомендуют до 1000 человек, а реально до 500.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636494
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_TomsДебаты идут по вопросу, качать данные с сервака на клиента и например там суммировать, или суммировать на сервере...

Что тут дебаты разводить. Тупая задача, тупое решение. Гораздо интереснее, когда нам нужно и агрегаты поиметь и детализацию. Ещё интереснее, когда клиент часть данных уже имеет в локальном кэше и вообще работает с СУБД только через локальный кэш и про SQL никакого понятия не имеет.
...
Рейтинг: 0 / 0
Тонкий или толстый клиент
    #34636508
Alex_Toms
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab
Что тут дебаты разводить. Тупая задача, тупое решение.

Прежде чем задачу называть тупой, неплохо бы её самому решить и поделиться своим опытом.
А тупое решение может быть у любой задачи, гораздо сложнее найти хорошее решение!

mcureenab
Гораздо интереснее, когда нам нужно и агрегаты поиметь и детализацию...

В это не понял? Как раз с этим то проблем и нет.

mcureenab
Ещё интереснее, когда клиент часть данных уже имеет в локальном кэше и вообще работает с СУБД только через локальный кэш и про SQL никакого понятия не имеет.

Ну а в локальном кэше данные то откуда возьмутся как не из БД, да и этой части данных может не хватить, значит их туда всё же необходимо закачать? Да можно их обработать и на клиенте.
Повторяюсь: что выгоднее, качать данные с сервака на клиента и например там суммировать, или суммировать на сервере...
...
Рейтинг: 0 / 0
25 сообщений из 217, страница 5 из 9
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Тонкий или толстый клиент
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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