none
Moving Table to different File Group RRS feed

  • Frage

  • Hi,
    what is the fastest and safest way to move a table (or all tables within a
    schema) of a File Group (primary) to another File Group (secondary -
    with 8 Files).

    PS. I have a lot of Table to move :sob:

    Best Regards
    Nicole

    Mittwoch, 29. Juni 2016 12:25

Antworten

  • Hallo Nicole,

    I will answer in German, since I suppose you chose a German Forum on purpose:

    das macht man ganz einfach mit einem Neu-Erstellen der Indexe mit Angabe der Zielfilegroup

    also zB

    CREATE NON/CLUSTERED INDEX NCL_xy ON schema.table
    (
    colums,...
    )
    WITH (DROP_EXISTING=ON)
    ON ZielFilegroup

    In der Enterprise-Edition kann man das Sortieren auch in die Tempdb auslagern.

    Tabellen ohne Clustered Index kann man nicht so verschieben. Dann erstellt man einen solchen gleich auf der Zieldateigruppe - und lässt ihn am besten gleich da. Für reine Heaps gibt es seltendst wirklich bessere Gründe als man immer mal wieder liest.


    Orchestrierung:

    Naja, und das Ganze lässt man sich natürlich am Besten dynamisch als Script erzeugen und führt diesen dann aber nicht komplett auf einmal aus, sondern je nach Datenmenge über Stunden bis Tage verteilt, um den Logbackuops eine Chance zu geben das Log kleinzuhalten.

    Das klappt auch bei Terabyte-großen Datenbanken wunderbar kann ich Dir versichern.

    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform
    www.SarpedonQualityLab.com | www.andreas-wolter.com

    Mittwoch, 29. Juni 2016 15:32

Alle Antworten

  • Hallo Nicole,

    I will answer in German, since I suppose you chose a German Forum on purpose:

    das macht man ganz einfach mit einem Neu-Erstellen der Indexe mit Angabe der Zielfilegroup

    also zB

    CREATE NON/CLUSTERED INDEX NCL_xy ON schema.table
    (
    colums,...
    )
    WITH (DROP_EXISTING=ON)
    ON ZielFilegroup

    In der Enterprise-Edition kann man das Sortieren auch in die Tempdb auslagern.

    Tabellen ohne Clustered Index kann man nicht so verschieben. Dann erstellt man einen solchen gleich auf der Zieldateigruppe - und lässt ihn am besten gleich da. Für reine Heaps gibt es seltendst wirklich bessere Gründe als man immer mal wieder liest.


    Orchestrierung:

    Naja, und das Ganze lässt man sich natürlich am Besten dynamisch als Script erzeugen und führt diesen dann aber nicht komplett auf einmal aus, sondern je nach Datenmenge über Stunden bis Tage verteilt, um den Logbackuops eine Chance zu geben das Log kleinzuhalten.

    Das klappt auch bei Terabyte-großen Datenbanken wunderbar kann ich Dir versichern.

    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform
    www.SarpedonQualityLab.com | www.andreas-wolter.com

    Mittwoch, 29. Juni 2016 15:32
  • Hallo Andreas,

    ich danke Dir!

    VG

    Nicole

    Donnerstag, 2. Februar 2017 19:57
  • Hallo Andreas,

    das mit dem Umzug der Tabellen in eine andere Filegroup hat prima funktioniert. Hast du evtl. noch einen Tipp, wie ich eine Menge von Tabellen, die partitioniert sind in eine neue Dateigruppe (switch out / in) verschieben kann?
    Was ist der beste Weg, dies zu tun? Jede Tabelle hat Tagespartitionen für 2 Jahre.

    PseudoCode. Foreach Day ... verschieben Partition alt zu Partition in Dateigruppe neu

    The Function: CREATE PARTITION FUNCTION [pf_2YearDays] (datetime) AS RANGE RIGHT FOR VALUES (N'2016-05-23T00: 00: 00.000 ', N'2016-05-24T00: 00: 00.000' ...

    Best Regards
    Nicole

    Donnerstag, 2. Februar 2017 20:03
  • Hallo Nicole

    ich bin nicht sicher, ob ich die Frage jetzt ad hoc verstehe.

    Prinzipiell würde ich die Partitionen durchus mal Mergen

    die Aktion für mehrere Tabellen würde man am Besten mithilfe von dynamischem SQL vorbereiten, testen und dann eben ablaufen lassen.. Dann kann man das leicht wiederholt testen.

    Wenn das die Frage war. Ansonsten, für ein Gesamtkonzept müsste ich wesentlich mehr wissen. Aber das wäre ehetwas zu viel für mich mal eben hier nebenbei zu beantworten.. :-/

    viel Erfolg

    Andreas


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform/SQL Server 2012
    MCM SQL Server 2008
    MVP Data Platform
    www.SarpedonQualityLab.com | www.andreas-wolter.com

    Donnerstag, 2. Februar 2017 22:07