|
|
|
При запуске процедуры из триггера она работает на два порядка дольше
|
|||
|---|---|---|---|
|
#18+
У меня задача в столбце NOM integer null найти свободный номер. То есть если в столбце 1,2,2,4,5,7,6 то моя процедура должна вернуть 3 - свободный номер. Написал я такую процедуру, поробовал как работает, на табличке с четырмя тысячами строк находит такой номер примерно за секунду. Далее, запихиваю вызов этой процедуры в триггер на инсерт, вызываю для этой же таблицы и выясняю что она там работает 3-4 минуты. Взял текст из процедуры, переделал и вставил на прямую в триггер. То же самое - 3-4 минуты. В чем я неправ? Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 09:10:58 |
|
||
|
При запуске процедуры из триггера она работает на два порядка дольше
|
|||
|---|---|---|---|
|
#18+
Ха! А у меня такая же задача толькос сложнее нужно искать для строковых колонок. Для числовых все просто (как мне кажется): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Этот запрос найдет превый свободный интервал. Можно еще Код: plaintext Топик-то как то ты назвал не в тему :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 09:33:25 |
|
||
|
При запуске процедуры из триггера она работает на два порядка дольше
|
|||
|---|---|---|---|
|
#18+
Можно чуть проще Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 09:46:20 |
|
||
|
При запуске процедуры из триггера она работает на два порядка дольше
|
|||
|---|---|---|---|
|
#18+
Я несколько ошарашен простотой идеи, но она отлична работает. Остались сомнения насчет первого запроса, но в целом задумка ясна. Остался академический интерес почему код процедуры быстро работает сам по-себе, но очень медленно в триггере? Вопрос уже не конкретно по этому коду, а вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:13:12 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3406&tid=1819955]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
| others: | 231ms |
| total: | 366ms |

| 0 / 0 |
