|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Есть несколько источников, с которых с разной периодичностью берутся показатели. Показатель, в общем-то, один, просто число. Источники разных типов. 1. Простой. Один замер - один показатель. 2. Двойной. Один замер - два показателя. 3. Сложный. Один замер - от 4 до 20 показателей. Как их хранить? На данный момент есть источники с 1, 2 и 4 показателями. Все хранятся в одной таблице, каждый со своим айдишником (для этого и был нужен пивот). Но вот предстоит добавить источник с 13 показателями. Хочется создать для него таблицу, но это как-то неправильно. Но и пихать его в общую таблицу как-то некомильфо, потому что выборки, если будут использовать этот источник, скорее всего, все 13 показателей и возьмут. И будут их разворачивать пивотом. Плюс еще непонятно, как формировать выборки по желанию пользователя. Тут или динамический код, или трехзвенка. Вообще жесть. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 14:00 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Когда брался за эту задачу, думал: "А, неделя делов." А если все по-уму делать, 1С придется с нуля написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 14:01 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Может, понаделать таблиц с 1, 2, 4, 5, 6 итд столбцами? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 15:22 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Скажем так, ТЗ есть, но плохо сформулировано. В процессе, такскать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 15:43 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
А сколько места я в базе потеряю, если будет таблица на 20 smallmoney, из которых 60% будет null? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 15:44 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Сколько показаний в сутки, в год, новых сыплется в систему? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 19:30 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
А отчеты и отображение дело вторичное. Пивот, это дело клиента, эксел и любая отчетная система умеют делать пивот. И 1с ... |
|||
:
Изменено: 11.07.2022, 19:32 - Просто Трёп
Нравится:
Не нравится:
|
|||
11.07.2022, 19:31 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Можно по принципу 1С пойти, сделать типа регистра, где сводные данные иметь. А например, годовой давности данные убирать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 19:33 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Пока что решил сделать одну таблицу с 20 колонками смоллмани и пусть будет полупустой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2022, 19:34 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Пока что решил сделать одну таблицу с 20 колонками смоллмани и пусть будет полупустой. Лень всё минусы расписывать - просто не делай так. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2022, 13:48 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Да и нагрузка на сервер... 20 инсертов или 1. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2022, 13:49 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Пока что решил сделать одну таблицу с 20 колонками смоллмани и пусть будет полупустой. Причем очень эффективно. Есть пивот в верси. 2008, но там изврат. А хорший есть толи в 2016 толи в 2018. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.07.2022, 16:48 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Обвязку недолго сделать. Главный вопрос, что делать с группами, когда берутся единовременно 20 замеров. Подготовил пару запросиков, данные как раз набежали, завтра посмотрим, какой вариант быстрее. Самый медленный - явно с джойнами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2022, 20:08 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Данных мало. всего 2700 строк в результирующей таблице. Первый запрос - чисто посмотреть на время выполнения селекта из таблицы с одним столбцом, там в 4 раза больше строк. Последний - селект из таблицы с четырьмя столбцами. Код: 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.
simple in -----------------------------------------------------
(11088 row(s) affected)
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 12 ms.
joins -----------------------------------------------------
(2772 row(s) affected)
SQL Server Execution Times:
CPU time = 31 ms, elapsed time = 33 ms.
pivot with fake aggr -----------------------------------------------------
(2772 row(s) affected)
SQL Server Execution Times:
CPU time = 16 ms, elapsed time = 11 ms.
case with fake aggr -----------------------------------------------------
(2772 row(s) affected)
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 12 ms.
optimal -----------------------------------------------------
(2773 row(s) affected)
SQL Server Execution Times:
CPU time = 0 ms, elapsed time = 6 ms. Получается, нет ничего быстрее таблицы с количеством столбцов, соответствующим количеству замеров в группе. Но case с фиктивными аггрегациями тоже неплох. А pivot тоже подгружает ЦП, но не так сильно, как join.... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2022, 10:37 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Есть несколько источников, с которых с разной периодичностью берутся показатели. Показатель, в общем-то, один, просто число. Источники разных типов. 1. Простой. Один замер - один показатель. 2. Двойной. Один замер - два показателя. 3. Сложный. Один замер - от 4 до 20 показателей. Как их хранить? На данный момент есть источники с 1, 2 и 4 показателями. Все хранятся в одной таблице, каждый со своим айдишником (для этого и был нужен пивот). Но вот предстоит добавить источник с 13 показателями. Хочется создать для него таблицу, но это как-то неправильно. Но и пихать его в общую таблицу как-то некомильфо, потому что выборки, если будут использовать этот источник, скорее всего, все 13 показателей и возьмут. И будут их разворачивать пивотом. Плюс еще непонятно, как формировать выборки по желанию пользователя. Тут или динамический код, или трехзвенка. Вообще жесть. Это понятно, что в единую БД. Сколько столбцов делать в таблице? Все в один столбец, а потом разворачивать пивотом (или кейсами), или все-таки для групп замеров, которые делаются единомоментно, и будут выбираться потом все скопом, делать много столбцов? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2022, 16:49 |
|
Microsoft SQL Server / Что делать с кучей данных из разных источников?
|
|||
---|---|---|---|
#18+
Продолжайте жрать кактус Код: SQL 1.
У тебя нет мысли, что лучше все-таки сделать таблицу с 20-ю столбцами, чем хранить все в одном столбце? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2022, 14:51 |
|
|
Start [/forum/search.php?do_search=1&tid=2996&author_mode=wrote_post&author=%D0%9F%D1%80%D0%BE%D1%81%D1%82%D0%BE%20%D0%A2%D1%80%D1%91%D0%BF&start_from=93470]: |
0ms |
get settings: |
1ms |
get forum list: |
5ms |
searching: |
11ms |
get settings: |
1ms |
get forum list: |
4ms |
get topic data: |
2ms |
check forum access: |
1ms |
check topic access: |
1ms |
get forum data: |
0ms |
get found posts: |
36ms |
track hit: |
28ms |
get online users: |
52ms |
check new: |
1ms |
others: | 251ms |
total: | 394ms |
0 / 0 |