|
|
|
On delete cascade: "встроенный" триггер (check_NN) медленнее простой эмуляции каскада.Why?
|
|||
|---|---|---|---|
|
#18+
hi all: DDL-1 : две таблицы, дочерняя связана с родительской по FK on delete cascade: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Код: 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. Код: plaintext Для варианта-1 (с FK + on delete cascade) вижу: 15558 ms, ..., 3501230 fetch(es) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 13894 ms, ..., 2500627 fetch(es) Код: 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. Чем объяснить дифферент в 1 млн фетч, и к тому же - не впользу "встроенного" триггера, обеспечивающего FK ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 00:07 |
|
||
|
On delete cascade: "встроенный" триггер (check_NN) медленнее простой эмуляции каскада.Why?
|
|||
|---|---|---|---|
|
#18+
Во-первых, надо в первую очередь не фетчи сравнивать, а чтения. Во-вторых, сравнивать надо таки одинаковые количества записей, а не 300 тыщ и 500 тыщ. Если в реале были одинаковые, и это ты при копировании сюда напортачил - ну тогда уже думать, что там не так и куда ещё лям утекает. Если он и есть - ну, видимо, где-то неоптимально используется индекс, например, по 2 фетча на запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 01:09 |
|
||
|
On delete cascade: "встроенный" триггер (check_NN) медленнее простой эмуляции каскада.Why?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамВо-первых, надо в первую очередь не фетчи сравнивать, а чтения.не, погодь! чтения могут варьироваться туда-сюда в зав. от р-ра страничного кеша. При повторном запуске их может вообще не оказаться. Я потому и смотрю именно на фетчи. Гаджимурадов РустамВо-вторых, сравнивать надо таки одинаковые количества записей, а не 300 тыщ и 500 тыщ. Если в реале были одинаковые, и это ты при копировании сюда напортачилда, косяк при копипасте: сначала делал 50 тыс, затем 300, затем 500 - вот и забыл привести в соотв-вие статистику и ДДЛ; но в трейсе и так видно, что фигачилось именно 500 тыс :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 01:25 |
|
||
|
On delete cascade: "встроенный" триггер (check_NN) медленнее простой эмуляции каскада.Why?
|
|||
|---|---|---|---|
|
#18+
Повторил на LI-T3.0.0.31228 (SS, cache = 512K, FW = OFF), сделав несколько раз заливку и грохание 1 млн строк в TDETL. Результат - "еще более" тот же, что и на 2.5. Для варианта-1 (с FK + on delete cascade): ~2860 ms, 7002438 fetch(es) Код: 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. Для варианта-2 (с AD-триггером) : ~2480 ms, 5001248 fetch(es) Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2014, 08:35 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38701501&tid=1563461]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
195ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 234ms |
| total: | 541ms |

| 0 / 0 |
