Size: a a a

2021 July 06

MZ

Maxim Zadonskiy in sql_ninja
А вообще в метаданных какая инфа обычно бывает?
источник

TS

Tim Safari in sql_ninja
работает, конечно, но там уже выше выяснили, что не ms sql
источник

Л

Лучший ник in sql_ninja
ааа, я затупок
источник

Л

Лучший ник in sql_ninja
Спасибо
источник

N

Ninja Reputation in sql_ninja
Репутация @Tim_Safari: 10
источник

ML

Mihail Li in sql_ninja
коллеги, для "средней сферической в ваккуме" 1с.УправлениеТорговлей - как часто рекомендуют обновлять статистику?
источник

IS

Igor Sergeichik in sql_ninja
http://www.gilev.ru/updatestat/

Гилёв плохого не посоветует
источник

ML

Mihail Li in sql_ninja
спасибо!
источник

N

Ninja Reputation in sql_ninja
Репутация @Ronohan: 26
источник

IS

Igor Sergeichik in sql_ninja
да незачто
если надо будет тыкнуть в кого-нибудь документацией, то вот
https://its.1c.ru/db/metod8dev/content/5837/hdoc
источник

Л

Лучший ник in sql_ninja
Ребята!
источник

Л

Лучший ник in sql_ninja
Посоветуйте годный декриптор
источник

ДT

Дмитрий Texnix... in sql_ninja
хакир штоль?
источник

Л

Лучший ник in sql_ninja
не, я сам наклацал и зашифровал случайно
источник

Н

Николай in sql_ninja
Ребят, привет) Посоветовали обратиться сюда за помощью.

Помогите, пожалуйста, оптимизировать запрос.

Есть таблица с данными
id   order_id                        mod_date
4    1000000000091298    2021-05-09 08:28:21.090
3    1000000000137327    2021-05-09 08:28:21.070
2    1000000000137327    2021-05-09 08:28:21.057
1    1000000000181967    2021-05-09 08:28:17.830

Нужно получить след. данные
id   order_id                        mod_date
4    1000000000091298    2021-05-09 08:28:21.090
3    1000000000137327    2021-05-09 08:28:21.070
1    1000000000181967    2021-05-09 08:28:17.830

Т.е. надо получить id, order_id и mod_date с максимальной датой изменения, до определённой даты, и не все сразу, а последовательно, т.к. данных там миллионы и желательно это распараллелить (я через python смогу это сделать).

Написал запрос, но он работает медленно (примерно 70 секунд на 1000 строк). Помогите, пожалуйста, оптимизировать запрос. БД MSSQL (какая версия точно не знаю)

Сам запрос
SELECT
DISTINCT order_id, mod_date, id
FROM
mytable as [data]
WHERE
mod_date < '2021-01-08 00:00:00'
AND
mod_date = (SELECT
           MAX(mod_date)
           FROM
           mytable
           WHERE
           order_id = [data].order_id)
ORDER BY mod_date
OFFSET 0 ROWS FETCH NEXT 1000 ROWS ONLY
источник

Н

Николай in sql_ninja
Есть индекс на mod_date ASC формата Non-Clustered
источник

ДT

Дмитрий Texnix... in sql_ninja
ну по сути ты хочешь выбрать прост ордер_ид с максимальной датой, но меньше заданного значения
источник

ДT

Дмитрий Texnix... in sql_ninja
делаешь оконку с
rownumber over(particion by order_id order by mod_date desc) rn
и селектишь те записи где rn=1
источник

Н

Николай in sql_ninja
Спасибо, попробую)
источник

N

Ninja Reputation in sql_ninja
Репутация @texnix: 16
источник