|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
Прошу помощи! Ситуация следующая: запускаю выгрузку данных в внешний источник (файл) и имею бесконечный поток, на размер всего свободного места на винте... Последняя выгрузка 350Гб. Это глюк или у меня что-то не верно. С PostgresSQL (v.9.5) дела раньше не имел, только MSSQL, Oracle. Размер каталога БД (вместе с системной базой: 11Gb. Размер файла бекапа рабочей базы =1,5 Гб. Запросы для определения размеров выборок: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
Результат: pos.order_client = 8 868 826 pos.wares_order = 11 524 384 pos.workplace = 606 Where = 11 524 384 Where-1 = 11 524 381 Вот сам запрос, который вызывает циклическую выгрузку (ничего военного просто полей много): Код: 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. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124.
Я думаю, что 350 Гигабайт файла выгрузки (прерван по окончанию места на винте) это явно не одиннадцать с половиной миллионов записей. Помогите. плииз! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 11:12 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
У вас декартово перемножение с выделенными таблицами. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 11:29 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
Только что запустил выгрузку с ограничением: Код: sql 1.
Результат: Query returned successfully: 11524384 rows affected, 07:27 minutes execution time. Размер файла 6,4 Гигабайта, что подтверждает что размер выгрузки ни как не может быть 350 Гигабайт. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 11:33 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
vyegorov, Добавил в запрос: Код: sql 1. 2. 3. 4. 5. 6.
Это решит проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 11:57 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
Cola, Не поможет. почитайте про декартово произведение уберите таблицы из `FROM`-части запроса, если они не нужны если нужны, то укажите связки для каждой таблицы в запросе, а не только для двух чтобы избежать недоразумений, используйте явную нотацию для связок: FROM ... JOIN ... ON ... [ JOIN ... ON ... [ ... ] ] ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 12:21 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
vyegorov, JOIN не прокатывает, пишет, что обнаружено несколько ссылок на одну таблицу. У меня связываются две таблицы по трем полям. Почему же тогда Count(*) сработал? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 13:32 |
|
Зацикливается запрос, бесконечное время выполнения - помогите
|
|||
---|---|---|---|
#18+
Cola, Модифицируйте предикаты так, чтобы выбиралась только одна запись из `wares_order`. Посмотрите на результат запроса. Также посмотрите на вывод `SELECT * ...` для такого (по одной записи из `wares_order`) запроса. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2017, 13:53 |
|
|
start [/forum/topic.php?fid=53&fpage=80&tid=1996772]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 371ms |
total: | 498ms |
0 / 0 |