2016-05-16 4 views
0

Gibt es eine Möglichkeit, die maximale Größe pro Tabelle oder die maximale Anzahl der Zeilen in einer Tabelle zu definieren? (für eine SELECT INTO new_table Operation)Definieren Sie maximale Tabellengröße oder Zeilen pro Tabelle - SQL Server 2012

Ich arbeitete mit SELECT INTO und JOINS in Tabellen mit ungefähr 70 Millionen Reihen und es geschah, dass ich einen Fehler in der AN-Bedingung machte. Daher hat das Ergebnis dieser Join-Operation eine Tabelle erstellt, die größer als das Datenbankgrößenlimit ist. Die DB stürzte ab und ging in einen Wiederherstellungsmodus (der für 2 Tage)

Ich würde gerne wissen, wie man diese Art von Problem in der Zukunft vermeiden kann. Gibt es ein "Handbuch für gute Manieren" bei der Arbeit mit riesigen Tischen? Irgendeine vordefinierte Konfiguration um dieses Problem zu vermeiden?

Ich habe nicht den Code, aber wie gesagt, es war im Grunde eine linke Join und das Ergebnis in eine neue Tabelle durch SELECT INTO eingefügt.

PS: Ich habe nicht viel Erfahrung mit SQL Server oder einer anderen relationalen Datenbank.

Vielen Dank.

Antwort

1

SET ROWCOUNT 10000 hätte es so gemacht, dass nicht mehr als 10.000 Zeilen eingefügt werden würden. Das kann zwar Schäden verhindern, aber auch den Fehler, den Sie mit Ihrer SQL-Abfrage gemacht haben, maskieren.

Ich würde sagen, dass vor jedem SELECT INTO laufen, würde ich ein SELECT COUNT(*) tun, um zu sehen, wie viele Zeilen meine JOIN und WHERE Klauseln führen zu. Wenn die Zahl sehr groß ist, oder wenn es Stunden sogar komme mit einer Zählung verbringt Dann ist das dein Warnzeichen.

Verwandte Themen