2009-06-09 9 views
1

Ich habe eine große DB-Tabelle, die ich zum Testen verwende. Es enthält 7,3 m Telefonanrufe. Ich möchte viele von denen löschen, aber immer noch eine gute Verteilung über Telefonnummern und Daten halten. Gibt es einen Weg, dies zu erreichen? Vielleicht etwas mit table sample zu tun?Wie man eine Datenbanktabelle "ausdünnt"?

+1

Was sind Ihre Kriterien für die Einträge löschen und was behalten? –

Antwort

6

Löschen, wo die ID in einer 1 oder 6 endet? Oder ähnlich, abhängig davon, wie viele Sie entfernen müssen.

dh nur 10% der Datensätze zu halten, für die Prüfung alle Datensätze löschen, die 7.

(Anmerkung am Ende nicht in (sagen wir), dass eine wie diese löschen könnte eine Weile dauern. Sie könnte besser sein tun ein CREATE TABLE AS mit nur die Datensätze, die Sie benötigen)

3

Kopieren Sie die Daten, die Sie behalten möchten.

SELECT TOP 1000 * IN dbo.Buffer VON Data.Numbers ORDER BY NewID()

Del ete alle Daten:

TRUNCATE TABLE Data.Numbers

Verschieben die aufbewahrten Daten

EINSCHUB INTO Data.Numbers (Spaltenliste) zurück SELECT FROM dbo.Buffer

Verwandte Themen