|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Столкнулся с такой проблемой. Есть небольшая SP, не устраивала скорость работы: --->>> stored proc План PLAN (TMP_GOODS_FOR_CASH NATURAL)(DL_CASHREGISTER_GETMACRO NATURAL)JOIN (T NATURAL, GS OB0 INDEX (PK_GOODS), GS OB1 INDEX (PK_DIRECTORY), GS OB2 S_OBJECTS INDEX (PK_S_OBJECTS), BC OB2 S_OBJECTS INDEX (FK_S_OBJECTS_PARENT_ID), BC OB0 INDEX (PK_BARCODES), BC OB1 INDEX (PK_DIRECTORY)) ------ Информация о производительности ------ Время подготовки запроса = 16ms Время выполнения запроса = 593ms Current memory = 36 139 460 Max memory = 39 192 080 Memory buffers = 2 048 Reads from disk to cache = 0 Writes from cache to disk = 0 Fetches from cache = 226 353 начал разбираться, внутренние запросы выполняются быстро. Решил попробовать с execute block План PLAN (TMP_GOODS_FOR_CASH NATURAL) PLAN JOIN (CASHREGISTER OB2 S_OBJECTS INDEX (PK_S_OBJECTS), CASHREGISTER OB0 INDEX (PK_CASHREGISTER), CASHREGISTER OB1 INDEX (PK_DIRECTORY))(MACRO_GET_DATA NATURAL) PLAN JOIN (BC OB1 INDEX (CL_DIRECTORY_NAME), BC OB0 INDEX (PK_BARCODES), BC OB2 S_OBJECTS INDEX (PK_S_OBJECTS), T INDEX (PK_TMP_GOODS_FOR_CASH), GS OB0 INDEX (PK_GOODS), GS OB1 INDEX (PK_DIRECTORY), GS OB2 S_OBJECTS INDEX (PK_S_OBJECTS)) ------ Информация о производительности ------ Время подготовки запроса = 47ms Время выполнения запроса = 32ms Current memory = 36 198 556 Max memory = 39 192 080 Memory buffers = 2 048 Reads from disk to cache = 0 Writes from cache to disk = 0 Fetches from cache = 7 178 Т.е. время было 593ms - стало 32ms. Процедуру перекомпилировал - эффекта нет. Откуда такая разница по времени. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:17 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Alex Truhin, не верю что процедура и блок эквивалентны. У тебя даже планы слишком разные ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:22 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Alex Truhin, очевидно - разные планы. Версия и архитектура FB ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:25 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Версия 2.5 sp и eb эквивалентны. На планы обратил внимание, почему так не знаю Код: 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.
execute block Код: 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.
т.е. отличие в 1 4 строках заголовка ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:35 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
hvlad Версия и архитектура FB ? Alex Truhin Версия 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:39 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Alex Truhin, Код: sql 1. 2. 3. 4. 5.
Это может быть важным отличием ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:40 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
типы BARCODES.NAME и CL_DIRECTORY.NAME не разные часом? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:42 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
Сделал одинаково, ни чего не изменилось SEARCHSTR varchar(300), NAME varchar(300), SP/ Вызываю select ID, FLAGS, ABBR, NAME, PRICE, BCCOUNTS, REMAINS from DL_GOODS_GETONBARCODE('15912621591262', 1591262, 0) План PLAN (TMP_GOODS_FOR_CASH NATURAL)(DL_CASHREGISTER_GETMACRO NATURAL)JOIN (T NATURAL, GS OB0 INDEX (PK_GOODS), GS OB1 INDEX (PK_DIRECTORY), GS OB2 S_OBJECTS INDEX (PK_S_OBJECTS), BC OB2 S_OBJECTS INDEX (FK_S_OBJECTS_PARENT_ID), BC OB0 INDEX (PK_BARCODES), BC OB1 INDEX (PK_DIRECTORY)) ------ Информация о производительности ------ Время подготовки запроса = 15ms Время выполнения запроса = 594ms EB План PLAN (TMP_GOODS_FOR_CASH NATURAL) PLAN JOIN (CASHREGISTER OB2 S_OBJECTS INDEX (PK_S_OBJECTS), CASHREGISTER OB0 INDEX (PK_CASHREGISTER), CASHREGISTER OB1 INDEX (PK_DIRECTORY))(MACRO_GET_DATA NATURAL) PLAN JOIN (BC OB1 INDEX (CL_DIRECTORY_NAME), BC OB0 INDEX (PK_BARCODES), BC OB2 S_OBJECTS INDEX (PK_S_OBJECTS), T INDEX (PK_TMP_GOODS_FOR_CASH), GS OB0 INDEX (PK_GOODS), GS OB1 INDEX (PK_DIRECTORY), GS OB2 S_OBJECTS INDEX (PK_S_OBJECTS)) ------ Информация о производительности ------ Время подготовки запроса = 16ms Время выполнения запроса = 16ms ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 12:54 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
ты понимаешь, что varchar-параметры в процедуре имеют чарсет базы, а в EXECUTE BLOCKе - чарсет коннекта? Так что нифига там не "одинаково". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 13:05 |
|
Разница в скорости выпрлнения SP и execute block
|
|||
---|---|---|---|
#18+
dimitr ты понимаешь, что varchar-параметры в процедуре имеют чарсет базы, а в EXECUTE BLOCKе - чарсет коннекта? Так что нифига там не "одинаково". Нет это не знал. Интересная информация. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2021, 13:11 |
|
|
start [/forum/topic.php?fid=40&fpage=8&tid=1560089]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
99ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 248ms |
total: | 445ms |
0 / 0 |