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

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

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

16 ответов

32 просмотра

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Evgeniy
Да

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

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

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

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

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

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта