|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Ребят, вот уже не первый месяц я понимаю, что можно сделать проще, а не изобретать велосипед. Например на сервере mssql хранятся данные: Отгрузка: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
График работы: Код: sql 1. 2. 3. 4. 5.
Список машин : Код: sql 1. 2. 3. 4. 5.
Например задача, мне нужно сделать график отгрузки, с учетом графика работы и вместимости машин. Алгоритм должен заполнить машину на 99%-100%, кол-во машин ограничено, заказ нельзя разделять (в 1 машину можно больше 1 заказа, но нельзя 0.5 заказа). Задача стандартная в логистике. На выходе: График отгрузки по дням Объем отгрузки по дням Кол-во машин по дням Лог какой заказ в какой машине и когда будет огрузка я не спрашиваю как мне сложить 2 числа и получить результат. Алгоритм все считает в 2 хранимках на сервере, но мне кажется, реализация на t-sql мягко говоря это не то. Поделитесь опытом где писали сложные расчеты и какой язык использовали? Можете посоветовать, что посмотреть и что почитать. Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 09:28 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha что посмотреть и что почитать Ну, вероятно, алгоритмически - про задачу линейного раскроя (как правило, она рассматривается как частный случай задачи о рюкзаке). Focha где писали сложные расчеты и какой язык использовали? Данная задача - несложная, пока нет лимита по ресурсам. А у тебя их и не будет, вероятно... так что пофиг. какой язык лучше знаешь, на том и пиши... да хоть в Excel поиск решения используй. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 11:24 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
AkinaFocha что посмотреть и что почитать Ну, вероятно, алгоритмически - про задачу линейного раскроя (как правило, она рассматривается как частный случай задачи о рюкзаке). Как решить я знаю, цифры умею не только складывать. AkinaFocha где писали сложные расчеты и какой язык использовали? Данная задача - несложная, пока нет лимита по ресурсам. А у тебя их и не будет, вероятно... так что пофиг. какой язык лучше знаешь, на том и пиши... да хоть в Excel поиск решения используй. Я смотрю вы это делаете в Excel ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 16:16 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
FochaЯ смотрю вы это делаете в ExcelУ меня вообще таких задач нет. Но когда появляются (было лет семь назад, помнится) - Эксель вполне себе справился. Уж больно всё неопределённо. Задача-то в общем случае NP, так что SQL под неё не заточен. И те две SP если её и решают, то либо реализуют тот же алгоритм, либо обрабатывают большие массивы, пользуясь тем, что данные локальные. Наверное, есть средства, либо специально под этот класс задач заточенные, либо несложно к ним применимые... та же генетика, к примеру. Но увы, конкретных не назову, не моя область. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 16:28 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
AkinaНаверное, есть средства, либо специально под этот класс задач заточенные, либо несложно к ним применимые... та же генетика, к примеру. Но увы, конкретных не назову, не моя область. Мне данная область интересна, но куда копать пока не пойму. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 17:31 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha, Добрый вечер! Если есть алгоритм то все-равно на каком языке это реализовывать. Проще наверное перевести все в объектное представление и реализовать все на с#. Тк при желании можно спокойно прикрутить и тесты и orm и отлаживать проще ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 21:06 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Я бы запихнул расчет в clr-процедуру ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2019, 22:16 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Автор пишет что у него уже есть 2 хранимки которые все считают. Но автор считает что это - не феньшуй. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 08:23 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
L.OtujktdЕсли есть алгоритм то все-равно на каком языке это реализовывать. Проще наверное перевести все в объектное представление и реализовать все на с#. Тк при желании можно спокойно прикрутить и тесты и orm и отлаживать проще Я вот думал о C# и CLR, но хочу узнать ваше мнение, каким образом у вас построены расчеты / алгоритмы / бизнес процессы или как еще там называют это КритикЯ бы запихнул расчет в clr-процедуру А вы делали большие и сложные расчеты на CLR или просто так сказали? maytonАвтор пишет что у него уже есть 2 хранимки которые все считают. Но автор считает что это - не феньшуй. Верно? Да, ваш комментарий 100% отображает мою проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 08:42 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha, Я бы оставил хранимки. Если они делают дело, то чудесно. Если считаете, что алгоритм не оптимальный, то нужно поискать другой алгоритм. Наверняка есть что-то специализированное. Ну и соответственно внешнее и затратное по всем параметрам. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:02 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
KreatorXXIFocha, Я бы оставил хранимки. Если они делают дело, то чудесно. Если считаете, что алгоритм не оптимальный, то нужно поискать другой алгоритм. Наверняка есть что-то специализированное. Ну и соответственно внешнее и затратное по всем параметрам. Алгоритм оптимальный, работает быстро, считает все правильно. Мне интересен подход, как другие делают расчеты не на SQL, произвести "сложные" расчеты и заложить алгоритм. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:26 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha Сколько времени в среднем работает расчет графика отгрузки? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 11:26 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
maytonKreatorXXI, Сколько времени в среднем работает расчет графика отгрузки? данный кусок работает ~10 секунд, а все 2 минуты. я думаю где-то есть истина, что такие расчеты "легче" разработать на чем-то другом. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 14:28 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha, не на SQL делают, когда не хотят привязываться к конкретному SQL. Либо PL этого SQL убогий (или его совсем нет). Ну ещё может быть, что задача специфическая, совсем не ложится под возможности конкретного SQL. А у Вас уже всё на сервере. Круто! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 14:50 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha, Твоя цель - уменьшить время работы алгоритма? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 16:44 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
maytonFocha, Твоя цель - уменьшить время работы алгоритма? нет, моя цель узнать какие еще есть варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 17:15 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
FochamaytonFocha, Твоя цель - уменьшить время работы алгоритма? нет, моя цель узнать какие еще есть варианты. Выше по тексту тебе предложили хранимые процедуры на базе clr. Хороший вариант. Я плюсую т.к и T-SQL и CLR это технологии от одного производителя. И соотв. проблем с типами не будет. Все будет совместимо. Далее нам говорить тут в топике не очем. Т.к. код ты не показал. И я... и все здесь присутствующие чувствуют себя дураками обсуждая то чего не видно. Поэтому сделай одолжение. Попробуй что-то написать сам и выдать нам результаты в топик. Выдавливать мысли из нас без кода... это как говорил мой бывший босс - высасывать гной из грязного пальца. Надеюсь на твоё понимание. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 17:20 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
maytonFochaпропущено... нет, моя цель узнать какие еще есть варианты. Выше по тексту тебе предложили хранимые процедуры на базе clr. Хороший вариант. Я плюсую т.к и T-SQL и CLR это технологии от одного производителя. И соотв. проблем с типами не будет. Все будет совместимо. Далее нам говорить тут в топике не очем. Т.к. код ты не показал. И я... и все здесь присутствующие чувствуют себя дураками обсуждая то чего не видно. Поэтому сделай одолжение. Попробуй что-то написать сам и выдать нам результаты в топик. Выдавливать мысли из нас без кода... это как говорил мой бывший босс - высасывать гной из грязного пальца. Надеюсь на твоё понимание. без проблем, вот часть, распределяет текущие остатки между заявками с учетом срока годности, мой вопрос был не как реализовать, а где вы производите расчеты и что используете. Может кто-то делает расчеты на C# CLR или Python или R или не знаю на VBA, пока я не услышал "у нас в компании алгоритмы и расчеты на CLR в основном и часть на SQL" Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 17:35 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Есть описание таблички plan_production_finished_products в виде ddl? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 17:52 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Focha, Я бы попробовал все перенести в объектное представление и в linq завернуть потихоньку и что-то респараллелить/закешировать. Плюс в это во всем что можно прикрутить визуализацию и красивые диаграммы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 18:38 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
А зачем индексы создаются и убиваются? Странная практика. Из Ораклового опыта... я-бы их 1 раз создал как HIDDEN. И потом в запросах активировал бы когда надо хинтами. И еще вопрос 1) Сколько всего строк в табличке plan_production_finished_products? 2) Сколько из них реально используются в расчетах? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.09.2019, 18:53 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
FochaАлгоритм все считает в 2 хранимках на сервере, но мне кажется, реализация на t-sql мягко говоря это не то. а чего нет? Чем ближе к данным, тем лучше. считает "всё" считает быстро считает правильно работает - не тронь (с) если тащить это куда-то ИЗ базы, значит уже лишнюю работу делать быстрее будет, только если алгоритмы говно, тогда конечно можно взять C++ и заюзать евойные алгоритмы это будет оптимально. FochaА вы делали большие и сложные расчеты а это разве "большой и сложный"? сходите к синоптикам, посмотрите, как они погоду считают ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 05:14 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Fochaданный кусок работает ~10 секунд, а все 2 минуты. я думаю где-то есть истина, что такие расчеты "легче" разработать на чем-то другом. это от запросов и алгоритма зависит перетащить данные в C++ будет ещё дольше но скорость расчётов останется ~такой же, если алгоритм не изменить ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 05:17 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
Код: sql 1. 2. 3.
мда, ну тут вообще не к БД претензии если увидим DDL таблицы, думаю будем плакать всем форумом ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 05:25 |
|
На чем создать расчет, поделитесь опытом
|
|||
---|---|---|---|
#18+
я бы тут рассматривал выбор - бизнес логику держать в БД или в приложении. сейчас ты выбрал вариант 2. у обеих есть плюсы и минусы. по бд плюсы - в теории сравнительно быстро работает (на практике как угодно), просто подменить минусы- трудозатратно в разработке и сопровождении, юнит тесты в архитектуре не предусмотрены бизнес логика в приложении плюсы - на вменяемом железе производительность на уровне, разработка на высокоуровневом языке C# или похожем, писать сложную логику проще, юнит тесты применять можно минусы - обновление выполнять только с обновлением приложения (если это минус) , дополнительно в приложении надо слой бизнес логики строить. у тебя задачи логистики - там сложность логики может быть любая. лучше писать ее по юнит тестам, чтобы понимать что за логика реализована. у тебя вот написаны 2 процедуры - как ты будешь уверен через 3 месяца, что они поддерживают тот же функционал, что и сегодня без тестов? никак. обычно заводят логический слой - типа классы OrderService, в котором реализовывают методы, занимающиеся формированием заказа, как у тебя. в БД такие классы не лезут - для этого отдельный слой заводят. в общем срач не первый на эту темы. подходов 2 - у каждого есть плюсы и минусы. выбери для себя что тебе важнее по приоритетам и его и используй ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2019, 08:50 |
|
|
start [/forum/topic.php?fid=16&msg=39857399&tid=1339911]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
140ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
others: | 19ms |
total: | 273ms |
0 / 0 |