Załóżmy, że to , a nie skrócić indeksy. Oznaczałoby to, że baza danych była fizycznie niespójna. Więc nie może tak być.
Skróć logicznie usuwa wszystkie wiersze i fizycznie tworzy świeże b-drzewa dla wszystkich partycji. Ponieważ drzewa są świeże, nie ma fragmentacji.
Właściwie nie jestem pewien, czy drzewa mają przypisane 0 lub 1 stronę. Ale to nie ma znaczenia. Uważam, że dla tabel tymczasowych istnieje specjalny przypadek związany z buforowaniem tabel tymczasowych. Również nie ma znaczenia.
Wkładka z twojego pytania działa tak samo jak każda inna wkładka. Nie ma na nią wpływu poprzednie obcięcie w komunikacji krzyżowej. To, czy powoduje rozdrobnienie, zależy od konkretnego przypadku, a IMHO jest najlepiej umieszczone w nowym pytaniu.
„TRUNCATE TABLE usuwa wszystkie wiersze z tabeli, ale struktura tabeli i jej kolumny, ograniczenia, indeksy itd. Pozostają. Licznik używany przez tożsamość dla nowych wierszy jest resetowany do początkowego dla kolumny. Jeśli chcesz zachować licznik tożsamości , użyj zamiast tego DELETE .Jeśli chcesz usunąć definicję tabeli i jej dane, użyj instrukcji DROP TABLE "z http://msdn.microsoft.com/en-us/library/aa260621(v=sql.80).aspx. Jeśli obetniesz tabelę, a następnie ponownie wstawisz dane, po wstawieniu może to najbardziej sensowne, aby odbudować indeks, ponieważ masz nowe dane w tabeli. – Kprof
@Kprof Mieliśmy sytuację sytuacyjną, gdy cotygodniowe DELETE zabija działanie serwera aż do całkowitego odbudowania indeksu, ale cotygodniowe TRUNCATE utrzymują go w czystości na MSSQL 2005 – alex