|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
Имеются 3 таблицы: Код: 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.
В таблице emp ~30k записей, в contacts ~60k, tree - ~20k-30k. Не ахти какие объемы, НО если мне надо очистить таблицы, то Код: sql 1. 2. 3.
в пределах одной транзакции выполняется очень долго. Однако, если эти же запросы выполнять по очереди, то они все выполняются за секунды. Почему так происходит и что сделать, чтобы все работало быстро? P.S. СУБД просто поставил, не меняя никаких настроек. Подключение осуществляется пользователем, являющимся владельцем схемы, в которой находятся таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 06:13 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
Код: plsql 1.
Осторожно! truncate сообщает лишь о ближайших таблицах в цепочке FK, а truncate cascade выносит всё начисто. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 07:48 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
aleksandy, создайте индексы на внешние ключи в зависимых таблицах contacts(first_emp_id),.. и т.д. чтобы при удалении из главной таблицы, например delete from emp, ускорить проверки в зависимой таблице, select from contacts where first_emp_id = $1 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 10:48 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
LeXa NalBat, а разве индекс на первичный ключ не создается автоматом? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 12:03 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
aleksandyLeXa NalBat, а разве индекс на первичный ключ не создается автоматом?да, на первичный создается. но на внешний - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 12:07 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
А какие FK проверяются при удалении из tree? По моему никаких. Разве должно оно тормозить при таком порядке удаления? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:34 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
Гость_0А какие FK проверяются при удалении из tree? По моему никаких.верно. на таблицу tree не ссылаются другие. но индексы нужны для ускорения удаления из emp и contacts. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 13:45 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
Гость_0Разве должно оно тормозить при таком порядке удаления?да Код: 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.
ROLLBACK Time: 11,937 ms BEGIN Time: 0,300 ms CREATE TABLE Time: 5,633 ms CREATE TABLE Time: 13,021 ms CREATE TABLE Time: 12,677 ms INSERT 0 10000 Time: 49,189 ms INSERT 0 10000 Time: 563,216 ms INSERT 0 10000 Time: 766,535 ms DELETE 10000 Time: 8,382 ms DELETE 10000 Time: 3702,609 ms DELETE 10000 Time: 11533,378 ms ROLLBACK Time: 11,572 ms BEGIN Time: 0,324 ms CREATE TABLE Time: 6,916 ms CREATE TABLE Time: 21,798 ms CREATE INDEX Time: 10,868 ms CREATE INDEX Time: 6,346 ms CREATE TABLE Time: 12,698 ms CREATE INDEX Time: 3,471 ms CREATE INDEX Time: 4,121 ms CREATE INDEX Time: 4,237 ms INSERT 0 10000 Time: 48,167 ms INSERT 0 10000 Time: 617,167 ms INSERT 0 10000 Time: 1018,074 ms DELETE 10000 Time: 32,012 ms DELETE 10000 Time: 389,450 ms DELETE 10000 Time: 1469,689 ms ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 14:16 |
|
Пакетное удаление записей в БД
|
|||
---|---|---|---|
#18+
LeXa NalBat, аа, точно, данные же всё равно там, версионность. Спасибо :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2013, 15:37 |
|
|
start [/forum/topic.php?fid=53&msg=38203731&tid=1999552]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 137ms |
0 / 0 |