|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Для импорта/экспорта нужно взять 1000 записей из master, затем связанные с ними записи из child. Запрос получился какой-то дико тормозной. Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:22 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Квази, Это все данные, которые можешь предоставить? Т.е. даже гущу для гадания нам самим заваривать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:32 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
WildSeryКвази, Это все данные, которые можешь предоставить? Т.е. даже гущу для гадания нам самим заваривать? две таблицы. PK и FK integer-ы, остальное varchar-ы небольшие. В master около 100К записей, в child около миллиона. База тестовая, поэтому мусора и прочего в ней конечно может быть много. Плана запроса нет, запрос висит уже около часа. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 11:46 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Квази, Замени in (select) на select from (select from rows) join. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 12:01 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
> Плана запроса нет, запрос висит уже около часа. как это мешает сделать prepare и показать план? а так же ddl таблиц и статистику индексов ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 12:26 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Vlad FКвази, Замени in (select) на select from (select from rows) join. А на хрена там вообще вложенный запрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 14:09 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
А в чём смысл конструкции под where? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 14:23 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
разве вот такое Код: sql 1. 2. 3.
[/quot] не будет делать то же самое? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 14:30 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Хотя нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 14:33 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
982183разве вот такое Код: sql 1. 2. 3.
не будет делать то же самое? Иногда да но вообще то Нет тоже самое будет делать если последовать совету 21838280 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 14:34 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишкаА на хрена там вообще вложенный запрос? Чтобы взять 1000 первых мастеров, а не произведений мастеров с деталями.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 15:02 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Vlad F, я в запросе упоминания этой 1000 в упор не вижу (ошибка в first 1 ?). Если надо брать 1000 мастеров и соотв детали, так и надо так делать (брать 1000, а потом уже соединять), а не брать ВСЁ, а потом выколупывать оттуда 1000 мастеров. В исходном запросе, если в мастере 100к записей, получилось как минимум 100к заходов в подзапрос. И тут возникает ключевой момент - какой план у left join. Я не уверен, из-за чего возникли тормоза, то-ли из-за master натуралом, то ли наоборот, из-за мастера индексом. Правильный запрос: with A as (select first 1000 skip 0 primary_key from master order by primary_key) select a.* from a left join child c on a.primary_key=c.for_key и план оч.хор. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 15:24 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Vlad FКвази, Замени in (select) на select from (select from rows) join. Хм. Вот так что ли? Код: sql 1. 2. 3. 4.
Спасибо, работает. ------ Performance info ------ Prepare time = 0ms Execute time = 16ms Avg fetch time = 0,76 ms Current memory = 36 337 408 Max memory = 36 435 776 Memory buffers = 4 096 Reads from disk to cache = 0 Writes from cache to disk = 0 Fetches from cache = 715 Первый вариант барабанил час с лишним. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 15:25 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Vlad FСтарый плюшевый мишкаА на хрена там вообще вложенный запрос? Чтобы взять 1000 первых мастеров, а не произведений мастеров с деталями.)) А слово "left" к произведению каким боком? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 15:32 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка, Дед, произведение, ведь в том числе и один на многое.)) Закрадывается, однако, мысль, что у тебя там под тулупом есть что то и без подзапроса. Так не томи уж, доставай.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 16:04 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Vlad FСтарый плюшевый мишка, Дед, произведение, ведь в том числе и один на многое.)) Закрадывается, однако, мысль, что у тебя там под тулупом есть что то и без подзапроса. Так не томи уж, доставай.)) До меня дошло. Я неправильно понял условие задачи. Надо 1000 мастеров, а записей в резалте хоть мульён. Тогда да. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 00:59 |
|
Почему так тормозит запрос?
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка, Старик Державин нас заметил и, и в гроб сходя (я не конкретно, просто вспомнилось почему-то)), благословил. (с))) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 01:12 |
|
|
start [/forum/topic.php?fid=40&msg=39789066&tid=1560778]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
177ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 606ms |
0 / 0 |