|
|
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Добрый день. Имеем большую таблицу BIG_TABLE около 2млрд строк, из которых актуальны только несколько тысяч. Надо найти актуальные записи. Использую такую конструкцию: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. Подскажите способы оптимизации данного запроса, сейчас работает очень медленно. В таблицах ANOTHER_BIG_TABLE_N нет ни ключа ни индекса по искомому id((( Всё это добро вертится на Exadata. Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:15 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_Demin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. "Выбрать одно и то же 5 раз"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:26 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
DshedooAnton_Demin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. "Выбрать одно и то же 5 раз"? Ты не видишь, что ли, что ANOTHER_BIG_TABLE разные? Это BIG_TABLE одна и та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:28 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
DshedooDshedooAnton_Demin, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. "Выбрать одно и то же 5 раз"? Ты не видишь, что ли, что ANOTHER_BIG_TABLE разные? Это BIG_TABLE одна и та же. Ты бы лучше посоветовал что-нибудь, а не тыкал в названия таблиц. Можно для начала на экзист переписать: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:33 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Dshedoo"Выбрать одно и то же 5 раз"? 6 раз, смотри внимательней ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:56 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_Demin, Зачем повторно выбирать из BIG_TABLE? Можно ограничится запросом: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 14:58 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_DeminИмеем большую таблицу BIG_TABLE около 2млрд строк В таблицах ANOTHER_BIG_TABLE_N нет ни ключа ни индекса по искомому id((( Он там и даром не нужен, или ты планировал 2млрд IRS на каждую таблицу? Ну а так, приложи статистику по таблицам, планы запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 15:01 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_Demin, select * from big_table t left join (select id from ANOTHER_BIG_TABLE_1 union select id from ANOTHER_BIG_TABLE_2 .... union select id from ANOTHER_BIG_TABLE_5) all_another_big_tables on (t.id =all_another_big_tables.id ) where nvl(all_another_big_tables,'xXx')!='xXx' И вопрос -почему Вы не делает индекс на id в ANOTHER_BIG_TABLE_N ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 15:02 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
EvgeniaMakarova left joinЭто не то же самое, что IN, хотя, если убрать left и не добавлять all, где тот напрашивается, то сойдет. EvgeniaMakarovaпочему Вы не делает индекс на id в ANOTHER_BIG_TABLE_N ?XMLerОн там и даром не нужен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 15:20 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
-2-, надо поэкспериментировать что быстрее будет работать -левое соединение с фильтрацией на наллы или просто джойн. У меня обычно левое быстрее работает, если правильно помню. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 15:37 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_DeminВ таблицах ANOTHER_BIG_TABLE_N нет ни ключа ни индекса по искомому id((( Всё это добро вертится на Exadata. Storage indexes не помогают? Ну и union лучше заменить на union all, это позволит попробовать https://docs.oracle.com/database/121/VLDBG/GUID-1F4C90F9-3EF5-423A-B55B-2593FB3F1433.htm Дубли при необходимости убрать группировкой (в параллели) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 15:59 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Всем спасибо. пока нашли 2 быстрых варианта: вариант от EvgeniaMakarova Код: plsql 1. 2. 3. 4. 5. 6. 7. и Код: plsql 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.11.2018, 16:03 |
|
||
|
оптимизация запроса
|
|||
|---|---|---|---|
|
#18+
Anton_Demin, Неужели экзист отработал хуже?о_О ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2018, 16:11 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=93&tid=1883154]: |
0ms |
get settings: |
11ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
113ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 245ms |
| total: | 466ms |

| 0 / 0 |
