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
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 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.
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.
@@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.
👍
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
Czyli w przypadku delete potrzebujemy jeszcze drop table? Czy to jeszcze jakoś inaczej idzie i drop table też ma jakieś ukryte moce?
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)
@@mateuszmajkowski8034 OK, dzięki :) czyli pakiet wtedy delete + drop powinien dać radę.
@@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.
@@mateuszmajkowski8034 dzięki bardzo za wyjaśnienie. Btw, pewnie będę tu wpadać, więc dla wyjaśnienia: jestem oną ;)
I takie dyskusje miło się czyta :) Pozdrawiamy
Brakuje moim zdaniem jednej praktycznej informacji (powiedzianej wprost), co się dzieje z kolumnami autoincrement w przypadku tych operacji :).
A to nie jest tak, że skoro usuwamy wszystko jak leci to to pozostaje bez znaczenia?
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.
W SQL Server kolumna IDENTITY jest zerowana.
@@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.
@@hipekk Dokładnie tak. Dzięki, że zwróciłeś na to uwagę :-)