|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Добрый день! Помогите ускорить следующий запрос: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
Код: sql 1. 2.
выполняется 22 минуты, что уж очень много. Как можно ускорить запрос? В таблице FIAS$HOUSES_SOURCE - 25 000 000 записей. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 18:45 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Если быть более точным, то: Код: sql 1. 2.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 18:49 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Никак ты этот запрос не ускоришь. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 19:03 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__, - почему у тебя плоскй select from select? чисто чтоб красиво было? убери. ордер у тебя на внешнем селекте. - эти NULLIF(UPPER(TRIM(HOUSENUM)), '') AS HOUSENUM, наверное лучше при вставки нулить/уперить если всегда нужны так - смотри чтоб индекс был по ORDER BY T.HOUSEGUID, T.ENDDATE DESC Еще подумай можеть есть смысл сохранить отдельно уникальные/активные записи по T.HOUSEGUID, T.ENDDATE DESC. Если потом этот сет нужно будет джоинить, ограничивать записи (rows), сортировка, то через процедуру будет весело. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 19:37 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Dorin Marcoci__Avenger__, - почему у тебя плоскй select from select? чисто чтоб красиво было? убери. ордер у тебя на внешнем селекте. - эти NULLIF(UPPER(TRIM(HOUSENUM)), '') AS HOUSENUM, наверное лучше при вставки нулить/уперить если всегда нужны так - смотри чтоб индекс был по ORDER BY T.HOUSEGUID, T.ENDDATE DESC Еще подумай можеть есть смысл сохранить отдельно уникальные/активные записи по T.HOUSEGUID, T.ENDDATE DESC. Если потом этот сет нужно будет джоинить, ограничивать записи (rows), сортировка, то через процедуру будет весело. 1.Эта процедура используется как процедура импорта, т.е. insert into [постоянная таблица] select from FIAS$GET_HOUSES_SOURCE. 2.Индексов быть не может, потому-что ExternalTable. 3.select from select, что бы в where еще раз данные не нормализовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 19:44 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__, попробуй увеличить TempCacheLimit в конфиге. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 20:03 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__Если быть более точным, то: Код: sql 1. 2.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 20:04 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvlad сколько времени этот запрос выполнялся ? Время выполнения запроса = 1m 8s 766ms TempCacheLimit - на 2.5.6 и так до максимума TempCacheLimit = 2097152000 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2017, 23:39 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
У меня подозрение на строки ORDER BY T.HOUSEGUID, T.ENDDATE DESC, T.STARTDATE DESC и IF (OLD_OID IS DISTINCT FROM OBJECT_ID) THEN попробуй их закомментировать и посмотреть, что получится. Кстати, а что вообще вторая строка делает? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2017, 18:49 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Василий №2У меня подозрение на строки ORDER BY T.HOUSEGUID, T.ENDDATE DESC, T.STARTDATE DESC и IF (OLD_OID IS DISTINCT FROM OBJECT_ID) THEN попробуй их закомментировать и посмотреть, что получится. Кстати, а что вообще вторая строка делает? Это аналог запроса в MSSQL Код: sql 1.
Так что эти два выражения нужны, без них запрос некорректен. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 00:00 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__, а всё же, интересно - без ORDER BY (и сортировки), сколько времени будет ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 00:46 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvlad__Avenger__, а всё же, интересно - без ORDER BY (и сортировки), сколько времени будет ? Время выполнения запроса = 4m 55s 388ms ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 11:16 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__, значит это действительно сортировка занимает 3\4 времени. __Avenger__TempCacheLimit = 2097152000 А сколько реально процесс FB выделяет памяти во время выполнения запроса ? Кстати, если FB не 64-битный, то такое значение весьма вредно для него. Файл сортировки не искал ? Размер его не смотрел ? И какой размер файла с ET ? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 12:08 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvlad, Реальный размер файла ET - 8,6 ГБ (8 992 326 464 байт). FB отъел - 2 ГБ. Судя по ProcessMonitor - сортировка заняла 2 ГБ ( Offset: 2 010 779 712, Length: 187 840) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:03 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__сортировка заняла 2 ГБ ( Offset: 2 010 779 712, Length: 187 840) сортировка в файле на диске заняла 2 ГБ ( Offset: 2 010 779 712, Length: 187 840) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:07 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__Реальный размер файла ET - 8,6 ГБ ... сортировка заняла 2 ГБИнтересно. Не все поля задействованы в запросе ? Или это CHAR_TO_UUID так съэкономил ? Можно ещё немного сократить, выкинув поля INTSTART, INTEND, INTSTATUS из тела запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:27 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvlad__Avenger__Реальный размер файла ET - 8,6 ГБ ... сортировка заняла 2 ГБИнтересно. Не все поля задействованы в запросе ? Или это CHAR_TO_UUID так съэкономил ? Можно ещё немного сократить, выкинув поля INTSTART, INTEND, INTSTATUS из тела запроса. Да, не все поля задействованы. И сортировка заняла 4 Гб (2 в оперативке+ 2 на диске) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:32 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__, попробуй вот так Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 13:57 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
Симонов Денис, это внешняя таблица на 25 млн строк. Какие джойны ? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 14:00 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvlad, ой. Ну тогда тут вряд ли запрос можно улучшить. В 3.0 ведь можно задать TempCacheLimit > 2 Гб? __Avenger__, попробуй вынести константы из запроса, это хоть и не сильно должно уменьшить ширину резалтсета для сортировки Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 14:08 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
hvladСимонов Денис, это внешняя таблица на 25 млн строк. Какие джойны ? :) Вы не поверите, этот запрос выполняется за 7 минут. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Я сам в шоке... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 14:33 |
|
Помогите ускорить запрос по ET
|
|||
---|---|---|---|
#18+
__Avenger__Я сам в шоке... Но есть и недостаток, запрос Код: sql 1. 2. 3.
вернет мне результат с нужной сортировкой? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2017, 14:37 |
|
|
start [/forum/topic.php?fid=40&msg=39413093&tid=1561686]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 266ms |
0 / 0 |