
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
31.08.2014, 16:23:13
|
|||
|---|---|---|---|
FB 2.5.3 SC видит index-based план вып-я новой ХП только после переконнекта. Why ? |
|||
|
#18+
hi all Нижеприведенный скрипт создаёт таблицу с двумя полями tmp_01(id int primary key, pid int) и добавляет в неё 300 тыс строк, после чего - создаёт индекс по полю pid. Кроме того, этот скрипт создает две ХП, каждая из которых удаляет все строки из таблицы с pid = :a_pid. Первая ХП делает это отдельной командой внутри самой себя: delete from tmp_01 x where x.pid = :a_id; А вторая - через ES: execute statement ('delete from tmp_01 x where x.pid = :a_id') ( a_id := :a_id ); Затем эти две ХП вызываются: сначала сразу после пересоздания индекса (т.е. до переконнекта), а затем - после переконнекта к этой базе. Первые два вызова идут с аргументами 51 и 52, вторые два - с арг. 53 и 54. Код: plaintext 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. 57. 58. 59. Стартую трейс с конфигом: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Стартую в другом окне этот скрипт: Код: plaintext Вижу по итогам выполнения в трейсе: 1. Для первого вызова ХП p_del_sql_in_psql , которая обращается к таблице "обычной" delete-командой внутри своего кода (т.е. не через ES): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Код: plaintext 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Что помешало задействовать индекс tmp_01_pid сразу при первом вызове ХП p_del_sql_in_psql , т.е. до переконнекта ? PS. WI-V2.5.3.26790 Строка запуска службы: fb_inet_server.exe -s FB_253 -m ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
31.08.2014, 16:45:55
|
|||
|---|---|---|---|
FB 2.5.3 SC видит index-based план вып-я новой ХП только после переконнекта. Why ? |
|||
|
#18+
план ХП (ее внутренностей) создается в момент загрузки ХП в кеш метаданных. В твоем случае это момент создания ХП. На тот момент индекса еще нет. Аминь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1563368]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 350ms |

| 0 / 0 |
