172 похожих чатов

Господа опытные, подскажите пожалуйста. Представления тормозят базу ? Есть таблица с

1 млрд записей из записей ключ=значение которая пополняется примерно на 100-1000 в секунду и по ней сделано представление выполняющее суммирование значения и группируя по дате. Это представление нужно использовать сразу после операции вставки. Собственно вопрос, не возникнет ли у юзера огромная задержка на чтение этого представления ?

16 ответов

17 просмотров

Представление это обертка над select, так что оно будет тормозить так же, как и сама выборка. С материализованным представлением другая ситуация

Evgeniy- Автор вопроса
Kairat
Представление это обертка над select, так что оно ...

Я не совсем про то. Вот в таблице у юзера 1млрд записей и он вставил еще одну. Получается представлению надо повторно исполнить этот запрос на суммирвоание 1млрд+1 строку ? И это время юзер ждет

У вас уже через месяц там будет 2 миллиарда, база умрет с таким подходом очень быстро

Evgeniy
Я не совсем про то. Вот в таблице у юзера 1млрд за...

План выполнения запроса вышел из чата

Evgeniy
Я не совсем про то. Вот в таблице у юзера 1млрд за...

Ещё раз: представление — это обёртка над SELECT. Фактически, что-то вроде подстановки этого текста в запрос. Постарайтесь это понять.

Evgeniy
Я не совсем про то. Вот в таблице у юзера 1млрд за...

получается, да. Обращение к представлению под капотом это тот же запрос, это синтаксический сахар в данном случае. Если вы ждете выполнения выборки 1млрд+1 строки, то точно так же будете ждать выборку из представления. Вам надо смотреть в сторону агрегатов, чтобы не пересчитывать миллиард записей каждый раз

Evgeniy- Автор вопроса
Kairat
получается, да. Обращение к представлению под капо...

Можно чуть подробней что за агрегаты имеется ввиду ? Сводная таблица не через представления ?

Evgeniy
Можно чуть подробней что за агрегаты имеется ввиду...

да. Зачем считать миллиард записей повторно, когда можно взять готовый результат и сделать +1

Evgeniy- Автор вопроса
Kairat
да. Зачем считать миллиард записей повторно, когда...

Проблема в том что выборка нужна по дате. А если захотят еще и время - идея совсем умрёт :(

Evgeniy
Да

Вот и храните агрегированные значения по дням , так как подробнее вам и так не нужно

Evgeniy- Автор вопроса
central hardware
Вот и храните агрегированные значения по дням , та...

Ну я и говорю, а если захотят время ? Группировать до секунд ? Печально же

Evgeniy
Ну я и говорю, а если захотят время ? Группировать...

Ну, тут или изучайте тему сами (долго, сложно) или наймите толкового архитектора.

Похожие вопросы

Обсуждают сегодня

А как старый хаскел с новым стыковать ? потому как тут работает https://play.haskell.org/saved/C3xpMzcd, а вот тут https://stepik.org/lesson/7602/step/9?unit=1473 нет ошибка C...
Fedor
75
Как Вы считаете нормально ли в двадцатых годах 21 века в ВУЗах Российской Федерации обучать студентов работе с TASM? Не слишком ли это "архаично"? (Если оффтоп или флейм для э...
Spiker01
35
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Комрады, хотел уточнить. Проперть в OnDestroy юнита-хозяина по-прежнему доступна? И еще уточнение: finalization юнита наступает раньше или позже OnDestroy?
Ed Doc
48
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
15
Вопрос, вот задание https://stepik.org/lesson/7602/step/9?unit=1473 вот код и ошибка, удивляет, что требуется еще и Semigroup так и должно быть, или я опять делаю ошибки ? htt...
Fedor
14
Проблема с Windows scripting control Множество объектов получают iDispatch обертки и отдаются в скрипты. При этом скрипты могут эти обертки держать живыми очень долго, наприм...
Arioch The
16
Вообще, меня бы даже такой вариант, наверное устроил бы: try tag.Read(0); finally end; Но этот AV не ловится и программа завершается Exception EAccessViolation in module C...
notme
12
Скажите, можно ли как-то "переместить" динамический массив из одной переменной в другую? Скажем, переместить из TList<> в TArray<>. Именно переместить, а не скопировать. Если ...
Eugene Krasnikov (ᴊɪɴ x)
37
Карта сайта