Ich habe Code in C# geschrieben, die Datensätze aus einer Datenbank löscht. Es ist Ihr einfacher SQL-Löschcode, der in einer Transaktion enthalten ist.Löschen von Zeilen aus SQL Server erhöhte die Datenbankgröße
using (SqlTransaction trans = conn.BeginTransaction()) {
//some delete code
trans.Commit();
}
Ich habe etwa 4 Millionen Zeilen über 4 Tabellen in meiner Datenbank gelöscht. 7GB
- Vor dem Löschen etwa dreimal erhöht 28GB
I bestätigt dass sowohl die MDF als auch die LDF Dateien in der Größe zugenommen haben. Ich habe auch bemerkt, dass einige Tabellen, die nicht von der Löschung betroffen sind, ihre Indexgröße erhöht haben.
Nach dem Löschen:
vor dem Löschen:
Mein Ziel ist es Datensätze zu löschen, die Größe der Datenbank zu reduzieren, aber es erhöht statt. Können Sie mir sagen, warum die Größe zunimmt?
EDIT:
Nach dem Löschen:
- database_size: 61.050,69 MB
- nicht zugeordneten Speicherplatz: 9.592,60 MB
- reserviert: 303.512 KB
- Daten: 207.040 KB
- index_size: 53024 KB
- ungenutzt: 43448 KB
vor dem Löschen:
- database_size: 100 67,88 MB
- nicht zugeordneter Speicherplatz: 16.69 MB
- vorbehalten: 7.290.176 KB
- Daten: 2.937.656 KB
- index_size: 4.324.848 KB
- ungenutzt: 27672 KB
Dieses besser geeignet für dba.se ist, da der Grund für diese (und die Antwort) nichts mit C# zu tun hat. Jedes DELETE, das viele Zeilen in einer Transaktion löscht, wird dieses Problem veranschaulichen. –
Ich würde erwarten, dass die LDF definitiv zunehmen wird und die MDF zumindest gleich bleibt, aber wahrscheinlich zunimmt. Also gib uns ein paar Zahlen. Und verwenden Sie 'sp_spaceused', um herauszufinden, wie viel Speicherplatz belegt ist und wie viel Speicherplatz reserviert ist. Normalerweise wird ein Löschvorgang Speicherplatz in einer MDF freigeben, die tatsächliche Datei wird jedoch nicht verkleinert (da sie wahrscheinlich nur erneut vergrößert werden muss) –
Mögliches Duplikat von [Datenbankgröße größer nach dem Löschen aus der Tabelle] (http: // stackoverflow. com/questions/10865201/Datenbank-Größe-größer-nach-löschen-aus-Tabelle) – pmcilreavy