Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
Коллеги, приветствую! Есть вот такой список: ИД, номер событие, класс события (0,1), состояние (). Нужно вывести событие с максимальным номером, у которого класс = 1, либо если такового события нет - то с максимальным номером класса 0, и номер максимального события для данного ИД вообще (ну и само состояние и класс). Номера - монотонно возрастающие. Вот - модель: Код: 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. Модель не очень хорошая, т.к. событий у одного id может быть от 1 до 100, примерно, но среднее - около 5, я просто не знаю, как нормально засеять модель. Очевидное решение - у меня есть. Но имеется проблема, оно конкретно подтормаживает. Дело в том, что в списке порядка 10 млрд. записей, и порядка 100 млн. уникальных ID. Сервер - 16SP2. Посоветуйте, что можно сделать? Если нужно, могу на список построить колумнстор или, теоретически, любой индекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 10:20 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
uaggsterПосоветуйте, что можно сделать?Завести служебную таблицу для хранения агрегированных данных и поддерживать ее триггером. Если же хочется все время выковыривать требуемое запросом, то можно, например, так: Код: sql 1. 2. Код: 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. В конечном итоге, затраты на индексы и запрос с их участием окажутся выше затрат на поддержание таблицы с агрегатами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 11:53 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
invm, Код: sql 1. 2. 3. Что-то я сомневаюсь, что самосоединение на миллиарде то записей нормально будет работать. Хотя я попробую, конечно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 15:10 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
uaggster, автор100 млн. уникальных ID. т.е. вам в каждий момент времени(запрос) нужно выдать 100кк записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 15:17 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
TaPaK, нет. Просто запрос на формирование некой вторичной выборки из хранилища, где регистрируются события от приборов. Это хранилище живет своей жизнью, секции обновляются, удаляются и т.д. Время от времени мне нужно материализовать такую выборку в отдельную базу. И с ней уже в дальнейшем работают... ну, дофига кто. Я ее выгружаю в отдельную табличку, а потом переключением контекста убиваю предыдущую (не совсем так, там еще архивные таблицы есть, но не суть). Проблема в том, что обрабатывается она долго. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.07.2018, 16:04 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
uaggsterДело в том, что в списке порядка 10 млрд. записей, и порядка 100 млн. уникальных ID. Проблема в том, что обрабатывается она долго. Вы же говорите среднее 5, а если поделить одно на другое то 100 получается. И долго - это сколько минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2018, 16:52 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
uaggsterПросто запрос на формирование некой вторичной выборки из хранилища, где регистрируются события от приборов. Довольно распространенная задача. Только "Вторичню выборку" надо материализовать не "Время от времени" а постоянно/периодически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2018, 02:29 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
ATI.HeNRy, около 20 минут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2018, 08:54 |
|
||
|
Помогите написать быстрый запрос
|
|||
|---|---|---|---|
|
#18+
Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2018, 13:15 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39676779&tid=1689361]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
50ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 393ms |

| 0 / 0 |
