należy zachować ostrożność, skracać i usuwać są całkowicie oddzielnymi instrukcjami sql: - usuwanie jest DML, a obcięcie to DDL, co oznacza, że można usunąć być wycofanym i skrócone nie może być wycofane - delete musi znaleźć każdy wiersz jeden po drugim. obciąć jest natychmiastowa - usunięcie zastosowania cofnąć dzienniki i obciąć nie
jeśli umieścić je wszystkie razem: 1/jeśli ma to być rollbackable, nie chcesz używać obciąć 2/jeśli używasz usuwać , biorąc pod uwagę rozmiar tabeli, którą chcesz opróżnić: - jeśli tabela jest mała, nie zobaczysz żadnej różnicy - jeśli tabela jest średniej wielkości, wystąpi zła wydajność - jeśli stół będzie duży, zabraknie Ci spacja w przestrzeni tabel cofania, a nie będziesz w stanie opróżnić niczego, co jest konieczne, aby zachować ostrożność w odniesieniu do stwierdzenia, którego naprawdę chcesz użyć.
co do obcięcia tabeli z hql, powinno być zabronione uruchamianie DDL (obcięcie, tworzenie tabeli, upuszczenie tabeli, itd ...) z aplikacji. Powinieneś użyć delete. Ale jeśli stół jest duży, to też nie zadziała. Dlatego opróżnianie tabeli w aplikacji jest generalnie złym pomysłem. Jeśli chcesz wykonać pewne czyszczenie, często lepiej jest skracać skrypt sql raz na dobę.
Zauważ, że nie wiem, specyfiki aplikacji i że mówi tylko w ogólnym
Usunięcie zawartości nie jest standardowym DML lub poleceń DDL, więc to normalne, że nie jest obsługiwane. –