Truncate a delete - najważniejsze różnice

Поділитися
Вставка
  • Опубліковано 11 гру 2024

КОМЕНТАРІ • 18

  • @kubamosakowski7350
    @kubamosakowski7350 Рік тому

    👍

  • @informatyczna42
    @informatyczna42 3 роки тому

    Takie porównania są bardzo fajne, od razu wiadomo o co chodzi. W taki sposób chętnie bym się dowiedziała więcej o różnicach między linked serverami a openquery. Czy np NO LOCK jest przesyłany, po której stronie te dwa mechanizmy działają, czy na serwerze zdalnym czy lokalnym. Jak to się przekłada na performance... rozkład na czynniki pierwsze:)
    z pozdrowieniami,
    Mil

  • @zwierze
    @zwierze 3 роки тому +3

    Czyli w przypadku delete potrzebujemy jeszcze drop table? Czy to jeszcze jakoś inaczej idzie i drop table też ma jakieś ukryte moce?

    • @mateuszmajkowski8034
      @mateuszmajkowski8034 3 роки тому +3

      Delete czyści tylko dane z tabeli i nie usuwa struktury tabeli. Po delete tabelka ciągle isnieje razem ze wszystkimi uprawnieniami. Po prostu jest pusta.
      Po drop tabelka jest usuwana lub wpada do kosza (jeśli jest włączony)

    • @zwierze
      @zwierze 3 роки тому +1

      @@mateuszmajkowski8034 OK, dzięki :) czyli pakiet wtedy delete + drop powinien dać radę.

    • @mateuszmajkowski8034
      @mateuszmajkowski8034 3 роки тому +3

      @@zwierze Tak w skrócie mogę dopisać, że jeśli chcesz usunąć tabelkę, to wystarczy samo Drop Table. Nie trzeba jej czyścić deletem jeśli chcesz ją wyrzucić z bazy.
      Mało tego: nie powinno się robić delete jeśli chcesz tabelkę po prostu wyrzucić.
      Delete służy bardziej do usunięcia części rekordów z tabeli. Jak byś zrobiła* delete danych z jakiejś wielkiej tabeli to trwałoby to bardzo długo. No i zapchała* byś przestrzeń Undo niepotrzebnie.

    • @zwierze
      @zwierze 3 роки тому +3

      @@mateuszmajkowski8034 dzięki bardzo za wyjaśnienie. Btw, pewnie będę tu wpadać, więc dla wyjaśnienia: jestem oną ;)

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  3 роки тому +4

      I takie dyskusje miło się czyta :) Pozdrawiamy

  • @hipekk
    @hipekk 3 роки тому +1

    Brakuje moim zdaniem jednej praktycznej informacji (powiedzianej wprost), co się dzieje z kolumnami autoincrement w przypadku tych operacji :).

    • @zwierze
      @zwierze 3 роки тому +2

      A to nie jest tak, że skoro usuwamy wszystko jak leci to to pozostaje bez znaczenia?

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  3 роки тому +1

      Cześć Rafał,
      Odpowiadamy wprost. Nic się nie dzieje, wiersze są po prostu usuwane.
      Oracle identity column zostało wprowadzone w wersji 12c i jego główne zadanie to nadanie unikatowego(bądź kolejnego) numeru podczas insertów.

    • @marcinbadtke
      @marcinbadtke 3 роки тому

      W SQL Server kolumna IDENTITY jest zerowana.

    • @hipekk
      @hipekk 3 роки тому +3

      @@bazydanychalternatywnie1873 dzieje się i sęk w tym, że te operacje mają różne konsekwencje dla takich kolumn (przynajmniej w SQL Server). Truncate powoduje, że pole autoinkrementowane jest zerowane, natomiast delete "nie rusza" licznika.

    • @bazydanychalternatywnie1873
      @bazydanychalternatywnie1873  3 роки тому +1

      @@hipekk Dokładnie tak. Dzięki, że zwróciłeś na to uwagę :-)