Różnica między usuwaniem a obcinaniem

Usuń vs Obetnij

Oba polecenia SQL (Structure Query Language), Delete i Truncate służą do pozbycia się danych przechowywanych w tabelach w bazie danych. Delete to instrukcja DML (Data Manipulation Language), która usuwa niektóre lub wszystkie wiersze tabeli. „Klauzula Where” służy do określenia wierszy, które należy usunąć, a jeśli klauzula Where nie jest używana z instrukcją Delete, usuwa wszystkie dane z tabeli. Obcięcie jest instrukcją DDL (Data Definition Language) i usuwa całe dane z tabeli. Oba te polecenia nie niszczą struktury tabeli i odniesień do tabeli, a tylko dane są usuwane w razie potrzeby.

Usuń instrukcję

Instrukcja usuwania pozwala użytkownikowi usunąć dane z istniejącej tabeli w bazie danych na podstawie określonego warunku, a do określenia tego warunku służy klauzula „Where”. Polecenie Usuń jest nazywane wykonaniem zarejestrowanym, ponieważ usuwa tylko jeden wiersz na raz i zachowuje pozycję dla każdego usunięcia wiersza w dzienniku transakcji. Powoduje to spowolnienie operacji. Usuń to instrukcja DML, więc nie jest automatycznie zatwierdzana podczas wykonywania polecenia. Dlatego operację usuwania można cofnąć, aby w razie potrzeby uzyskać dostęp do danych. Po wykonaniu polecenia Usuń należy je zatwierdzić lub wycofać, aby trwale zapisać zmiany. Instrukcja delete nie usuwa struktury tabeli z bazy danych. Ponadto nie zwalnia miejsca pamięci używanego przez tabelę.

Typowa składnia polecenia Usuń została podana poniżej.

USUŃ Z

lub

USUŃ Z GDZIE

Skrócone oświadczenie

Instrukcja Truncate usuwa wszystkie dane z istniejącej tabeli w bazie danych, ale zachowuje tę samą strukturę tabeli, a także ograniczenia integralności, uprawnienia dostępu i relacje z innymi tabelami. Tak więc nie jest wymagane ponowne definiowanie tabeli, a można użyć starej struktury tabeli, jeśli użytkownik chce ponownie użyć tabeli. Truncate usuwa całe dane poprzez cofnięcie przydziału stron danych używanych do przechowywania danych, a tylko te zwolnienia stron są przechowywane w dzienniku transakcji. Dlatego polecenie obcinania wykorzystuje do operacji tylko mniej zasobów systemu i dziennika transakcji, dzięki czemu jest szybsze niż inne pokrewne polecenia. Obcięcie jest poleceniem DDL, więc używa automatycznych zobowiązań przed i po wykonaniu instrukcji. Dlatego obcinanie nie może w żaden sposób przywrócić danych. Zwalnia miejsce w pamięci używane przez tabelę po wykonaniu. Jednak instrukcji Obcinanie nie można zastosować do tabel, do których odwołują się ograniczenia klucza obcego.

Poniżej przedstawiono wspólną składnię instrukcji Truncate.

TABELA ŚCIEŻKI

Jaka jest różnica między usuwaniem a obcinaniem?

1. Polecenia usuwania i obcinania usuwają dane z istniejących tabel w bazie danych bez szkody dla struktury tabeli lub innych odniesień do tabeli.

2. Można jednak użyć polecenia Usuń, aby usunąć określone wiersze tylko w tabeli przy użyciu odpowiedniego warunku lub usunąć wszystkie wiersze bez żadnego warunku, natomiast polecenia Obetnij można użyć tylko do usunięcia całych danych w tabeli.

3. Usuń to polecenie DML i może w razie potrzeby cofnąć operację, ale Truncate jest poleceniem DDL, więc jest to instrukcja automatycznego zatwierdzania i nie można jej przywrócić w żaden sposób. Dlatego ważne jest, aby używać tego polecenia ostrożnie w zarządzaniu bazą danych.

4. Operacja obcinania zużywa mniej zasobów systemowych i zasobów dziennika transakcji niż operacja usuwania, dlatego truncate jest uważane za szybsze niż operacja usuwania.

5. Również Delete nie zwalnia miejsca zajmowanego przez tabelę, podczas gdy Truncate zwalnia miejsce używane po wykonaniu, więc Delete nie jest skuteczny w przypadku usuwania całych danych z tabeli bazy danych.

6. Truncate nie jest jednak dozwolone, gdy do tabeli odwołuje się ograniczenie klucza obcego, w takim przypadku można użyć polecenia Usuń zamiast Truncate.

7. Wreszcie, oba te polecenia mają zalety i wady w stosowaniu ich w systemach zarządzania bazami danych, a użytkownik powinien zdawać sobie sprawę z właściwego używania tych poleceń, aby osiągnąć dobre wyniki.