Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450Выполняется 6-10 часов... Таблица MATERIAL содержит 75 933 записей Выборка SELECT min(MATERIALID) as ID FROM MATERIAL GROUP BY RATE, TITLE , RESCODE дает 43 228 записей. Вопрос знатокам: Корректен ли такой запрос для удаления дубликатов? за 10 часов удалено 3600 записей... Может быть надо что-то настроить на сервере, в структуре БД? Индекс создать... Или нужно переписать запрос полностью, революционно? Заранее признателен всем, кто откликнется. Это все не нормально совсем. При том, что сам запрос неэффективный, удаление не должно занимать часы. Если у вас нет полного доступа к серверу - трогать ничего не рекомендую. зы. Триггер ваш тоже жуткий. Без плана запроса нельзя сказать что у вас за проблема. Вставьте SET SHOWPLAN_XML ON; + запрос в SSMS , запросите актуальный план, запустите запрос и прервите если не выполнится сразу. Правой кнопочкой по картинке плана и выбираете XML и постите сюда. зы. только что понял, что никогда не сталкивался с долгими запросами и не знаю, покажет ли SSMS актуальный план для не выполненного запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 21:25 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
SELECT [...] FROM MATERIAL WHERE MATERIALID NOT IN ( SELECT min(MATERIALID) as ID FROM MATERIAL GROUP BY RATE, TITLE , RESCODE ) тоже у вас часы выполняется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 21:28 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
PizzaPizzapavell450Выполняется 6-10 часов... Таблица MATERIAL содержит 75 933 записей Выборка SELECT min(MATERIALID) as ID FROM MATERIAL GROUP BY RATE, TITLE , RESCODE дает 43 228 записей. Вопрос знатокам: Корректен ли такой запрос для удаления дубликатов? за 10 часов удалено 3600 записей... Может быть надо что-то настроить на сервере, в структуре БД? Индекс создать... Или нужно переписать запрос полностью, революционно? Заранее признателен всем, кто откликнется. Это все не нормально совсем. При том, что сам запрос неэффективный, удаление не должно занимать часы. Если у вас нет полного доступа к серверу - трогать ничего не рекомендую. зы. Триггер ваш тоже жуткий. Без плана запроса нельзя сказать что у вас за проблема. Вставьте SET SHOWPLAN_XML ON; + запрос в SSMS , запросите актуальный план, запустите запрос и прервите если не выполнится сразу. Правой кнопочкой по картинке плана и выбираете XML и постите сюда. зы. только что понял, что никогда не сталкивался с долгими запросами и не знаю, покажет ли SSMS актуальный план для не выполненного запроса. вот бывает же так, пришёл человек и по полочкам всё разложил, золото. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 21:44 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
aleks222Откровение Иоанна-программизда? Сортировать и нумеровать ВСЕ записи внезапно стало быстрее? О темпора, о морес!Дарагуля, видимо ты за своим любимым делом (надувание щек) последние знания растерял. Может стоило подумать сколько раз твой опус будет полностью сканировать таблицу (индекс)? И чем поможет предложенный индекс? aleks222 Код: sql 1. 2. 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. 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. Результат без индексаdescriptionelapsed_timerows_deletedСупер медленный запрос от invm3433984746Супер быстрый запрос от aleks2223754984746Исходный вариант5191984746 Результат с индексомdescriptionelapsed_timerows_deletedСупер медленный запрос от invm6391991233Супер быстрый запрос от aleks2226980991233Исходный вариант8976991233 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2018, 22:08 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
Модератор: invm и aleks222, хорош какашками кидаться друг в друга; как дети малые, ей богу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 00:36 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо! А вот и план запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 18:56 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо! А вот и план запроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 19:03 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450, "Ну у вас и запросы" - сказала база и повисла А что такое Table="[ASSEMBLY_MATERIAL]" и какое отношение эта таблица имеет к вашему запросу? Или же ваша таблица "MATERIAL" вовсе не таблица, а вьюшка и вы из неё удаляете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 21:06 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450, Declare @Title nvarchar(max) @Title = Title WHERE l.TITLE like @Title" CONVERT_IMPLICIT(nvarchar(4000),[@Title],0)" GROUP BY RATE, TITLE ИМХО группировки и сравнения по nvarchar(4000) или nvarchar(max) = тормоза ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 21:39 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450, Выберите одного кандидата на удаление указав конкретные значения RATE, TITLE , RESCODE. и добавьте в условие вашего запроса через AND. Запустите Profiler и посмотрите, что там ваш запрос вытворяет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 22:14 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450А вот и план запросаЖуть кошмарная... Вы там вместо обработки только строк с "дубликатами" лопатите всю таблицу построчно с жутким апдейтом другой таблицы. Попробуйте так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 22:20 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450, Дополнительно к ответу invm, удостоверьтесь что следующий индекс у вас присутствует на таблице, а то судя по плану его нет. Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 22:46 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
Еще вариант Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. с тестовыми данными: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 22:53 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
PizzaPizza, выполняется не часы, быстрее :-) 1:32:29 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 08:29 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450PizzaPizza, выполняется не часы, быстрее :-) 1:32:29 Очень долго для десятков тысяч строк. Очевидно, где то проблема на стороне дизайна или обслуживания сервера. Не рекомендую вам вмешиваться в работу сервера если это не ваша зона ответственности - вслепую можно убить базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 20:50 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450, Assembly_material большая таблица? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 09:00 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
TaPaKpavell450, Assembly_material большая таблица? 165 000 записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:49 |
|
||
|
Удаление дубликатов - страшно долго
|
|||
|---|---|---|---|
|
#18+
pavell450TaPaKpavell450, Assembly_material большая таблица? 165 000 записей удаление ваших 30к записей рисует 5млрд чтений на эту таблицы, продолжайте развлекаться переписываниями запросов на красивые ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2018, 13:58 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39708809&tid=1689034]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 254ms |
| total: | 378ms |

| 0 / 0 |
