Что быстрее на уровне MS SQL

  1. 4 г. назад
    14.12.2019 14:37:30 отредактировано Fynjy

    Чистка существующей таблицы
    через
    delete from where
    создание новой вставка данных и удаление старой
    insert into select from where
    Есть у нас спецы по MS SQL?

    Ответы: (37) (38) (41)
  2. Дроп быстрее. Не всегда возможен

    Ответы: (2) (27)
  3. (1) то есть ты утверждаешь 4 операции
    create
    select
    insert
    drop
    быстрее чем 1 операция
    delete
    для базы в simple?

    Ответы: (22)
  4. 14.12.2019 14:49:44 отредактировано Курильщик

    Не знаю что за база симпл но при существенном объеме данных которые нужно удалить и незначительном остатке дроп будет быстрее. Проверено.

    Ответы: (4) (22)
  5. (3) не знаешь что такое recovery model?
    В simple не пишется лог, а значит скорость delete максимально быстрая.

    Ответы: (8)
  6. гыгы, ухтинская мразь знатно обосралась ;)
    это тебе не насрального пиарить.
    вот тебе лучше рубанок новый...

    Ответы: (7) (20)
  7. -image-

  8. (5) ванюш, я понимаю что ты не часто в жизни слышал про базы данных а [...] хоть что хотелось. А я так то довольно долго в теме.

    Ответы: (10)
  9. (4) как из 0 и 2 следовало что ты переключаешь базу в режим восстановления simple?

    Ответы: (22)
  10. Ты же изначально иначе ставил задачу - как быстрее честить таблицу, верно?

  11. (7) когда с людьми разговариваешь, [...] изо рта вынь...

    Ответы: (11)
  12. Guk [...] изо рта вынь

    Ответы: (12)
  13. Курильщик [...] изо рта вынь

  14. на одном уровне общаются гук и курильщик

    Ответы: (18)
  15. и только шмондер общается на высшем уровне ;) бугагага...

  16. про низость уровня ничего не было написано, но гукЪ всё сам понимает

  17. шмондер пытается умничать, но все равно он мудак...

    Ответы: (17)
  18. Guk мудак

    Ответы: (19)
  19. Луч света на одном уровне общаются гук и курильщик

    Это же прекрасно!

  20. Курильщик мудак

    Ответы: (24)
  21. Guk гыгы, ухтинская мразь знатно обосралась ;)
    это тебе не насрального пиарить.
    вот тебе лучше рубанок новый...

    Да он его лет 5 изучать будет

    Ответы: (21)
  22. (20) ему нечем изучать. у него вся голова на фюрера-нсрального заточена...

  23. (8) у тебя кроме критического отсутствует и логическое?

    Fynjy для базы в simple

    Курильщик Не знаю что за база симпл

    Ответы: (23) (25) (29)
  24. (22) а чему ты удивляешься? это мудило может работать только за гранты, в IT он вообще не шарит...

  25. Guk мудак

    Ответы: (34)
  26. (22) антон, ты чего такой агрессивный, всё у тебя хорошо?

    Ответы: (26) (29)
  27. (25) у меня все гуд. Работы правда очень много и тупой админ настаивает на дропе безосновательно (он так видит).
    А в чем агрессия то?

    Ответы: (28) (29)
  28. 14.12.2019 23:02:41 отредактировано Курильщик

    вопрос

    Что быстрее на уровне MS SQL
    Чистка существующей таблицы
    через
    delete from where
    создание новой вставка данных и удаление старой
    insert into select from where
    Есть у нас спецы по MS SQL?

    ответ.

    Курильщик Дроп быстрее. Не всегда возможен

    тебя не устроил мой ответ, зачем вся остальная токсичная херня.

    одно дело когда адовый дебиловатый мудак guk так себя ведет другое дело ты, нахера тебе это?

    Ответы: (30)
  29. (26) да не знаю даже.

    Ответы: (29)
  30. Курильщик (22) антон, ты чего такой агрессивный

    Fynjy (25)
    А в чем агрессия то?

    Курильщик (26) да не знаю даже.

    [smile=:D]

  31. (27) да не устроил, потому что требует обоснования.
    4 операции против 1
    Я добавил условий ты сказал глупость нивелировав свой первый ответ тем, что MS SQL ты не знаешь.

    Ответы: (31)
  32. (30) тестил, правда давно, но записей были миллионы

  33. 15.12.2019 01:12:10 отредактировано sda553

    У ms sql нет разве чего нибудь типа explain plan? Наверняка ведь что то есть аналогичное

    Ответы: (33)
  34. (32) есть "execution plan" но он не даст обоснования. Потому что таблиц несколько сотен. Строить его для каждой команды делать анализ - безумно время затратно.
    PS: нужно быть мужиком и завести себе логин на SQL.RU ) там точно есть зубры в этом вопросе.

    Ответы: (35)
  35. Курильщик мудак

  36. Fynjy там точно есть зубры в этом вопросе

    Есть

  37. думаю, дроп полюбас быстрее, независимо от модели

  38. Fynjy создание новой вставка данных и удаление старой

    Зависит от объема вставляемых данных.
    Возможно, и через delete быстрее будет.

  39. (0) однозначно delete медленней.

    В разы

  40. Я тут как раз сворачивал регистр бухгалтерии общим объемом в миллиард строк - с инсертом и дропом в пару-тройку часов уложилось

  41. А truncate?

  42. (0) truncate table и никаких вопросов более

    Ответы: (42)
  43. (41) нужно оставить половину записей

    Ответы: (43) (44) (49)
  44. (42) Тогда через drop быстрее будет.

  45. (42) Тогда о каких дропах может идти речь? delete where

    Ответы: (45) (46)
  46. (44) не просто дроп
    create
    select
    insert
    drop

  47. (44) нет

    Но если число удаляемых строк большое — особенно когда оно составляет большую долю строк таблицы, удаление с полной записью операции в журнале будет слишком медленным. В этом случае стоит подумать об использовании операции неполного протоколирования, такой как SELECT INTO, для копирования уникальных строк (с номером 1) в другую таблицу. После этого оригинальная таблица удаляется, затем новой таблице присваивается имя удаленной таблицы, воссоздаются ограничения индексы и триггеры.
    https://professorweb.ru/my/sql-server/window-functions/level3/3_5.php

    SQL не заточен на удаление записей

    Ответы: (49)
  48. 16.12.2019 11:08:24 отредактировано MIK

    https://itdemka.ru/pubs/1139.html

    готовое решение

    Ответы: (48)
  49. (47) не качается готовое решение

  50. (46) Не наш случай. В (42) сказано про половину записей. При такой пропорции копировать и переименовывать выйдет накладнее. Не говоря уже о том что работы кодеру гораздо больше.

    Ответы: (51)
  51. Скачал готовое решение посмотрю

  52. (49) воть и я про это - если бы мне нужно было оставить процентов 20 от объема я бы делал бы через копию и селект инто, а тут в среднем половину нужно оставить. Но заказчик (в лице куратора админа захотел так пришлось переделать)

    Ответы: (52)
  53. 16.12.2019 11:41:21 отредактировано Фёдор14

    (51) Интересно было бы попробовать оба способа, как в итоге быстрее получится.

    А то у теоретиков мнения разделились.

    Ответы: (53) (54)
  54. (52) в выходной буду резать проведу эксперимент для самой большой таблице на 15 гиг

  55. (52) Тут однозначного ответа быть не может. Зависит от пропорции оставшихся/удаляемых записей, наличия и пригодности индексов, модели базы. Как человек ленивый, я предпочитаю использовать delete, там писать руками надо меньше, но желательно уметь по-всякому. Дабы если заказчик потребовал сделать строго по-своему, суметь выполнить задачу.

  56. К ленивости плюс 1 )

или зарегистрируйтесь чтобы ответить!