2009-04-03 3 views

Odpowiedz

25

Coś jak to powinno pomóc:

CREATE UNIQUE CLUSTERED INDEX PK_YourTableName 
    ON dbo.YourTableName(YourPKFields) 
    WITH (DROP_EXISTING = ON) ON [NewFilegroup] 
+0

I Myślę, że to działało.Po sprawdzeniu tabeli-> właściwości-> Storage pokazuje "FileGroup" jako mojej nowej grupy plików (z góry), ale grupa plików tekstowych == PRIMARY? czy to prawda? oup (np. NewFilegroup). ? –

+3

To inna historia - możesz określić grupę plików dla pól Tekst/NTekst podczas tworzenia tabeli, ale Books Online mówi: "Zapisanie danych kolumn o dużej wartości określonych w CREATE TABLE nie może być później zmienione." :-( –

+0

Prawidłowo, nie można zmienić grupy plików dla danych TEXT/NTEXT po utworzeniu tabeli.Trzeba byłoby przenieść dane do nowej tabeli przy użyciu poprawnych grup plików, a następnie zmienić nazwę tabeli na starą nazwę tabeli, aby zmienić grupa plików TEXT/NTEXT. – mrdenny

7

Istnieją dwa sposoby; jeden z SSMS, a drugi z TSQL.

z SQL Server 2008 Books Online:

Aby przenieść istniejący indeks do innej grupy plików lub partycji schemacie

  • W Object Explorer, połączyć się z wystąpieniem SQL Baza danych serwera Silnik, a następnie rozwiń tę instancję.

  • Rozwiń bazę danych, rozwiń bazę danych zawierającą tabelę o określonego indeksu, a następnie rozwiń pozycje Tabele.

  • Rozwiń tabelę, do której należy indeks, a następnie rozwiń Indeksy.

  • Kliknij prawym przyciskiem myszy indeks, który ma zostać przeniesiony, a następnie wybierz opcję Właściwości.

  • W oknie dialogowym Właściwości indeksu wybierz stronę Przechowywanie.

  • Wybierz grupę plików, do którego chcesz przenieść indeks.

Nie można przenieść indeksów utworzonych za pomocą unikalny lub klucz podstawowy wiązania przez za pomocą okna dialogowego Właściwości indeksu. Do poruszania tych wskaźników, trzeba spadek ograniczenie pomocą ALTER TABELA (Transact-SQL) z opcją UPUŚĆ przymusu, a następnie ponownie tworzyć ograniczenie w żądanym grupa plików z użyciem ALTER TABELA (Transact-SQL) z opcją ADD CONSTRAINT .

Jeśli tabela lub indeks jest podzielony na partycje, wybierz schemat partycji, w którym , aby przenieść indeks.

[Pre SQL Server 2008: Aby złożyć istniejącej tabeli na innej grupie plików (SSMS)

  • Rozwiń Bazy danych, rozwiń bazę danych zawierającą tabelę, a następnie kliknij przycisk Tabele.
  • W okienku Szczegóły kliknij prawym przyciskiem myszy tabelę, a następnie kliknij polecenie Projektuj tabelę.
  • Kliknij kolumnę prawym przyciskiem myszy, a następnie kliknij polecenie Właściwości.
  • Na karcie Tabele, na liście Grupa aplikacji Pliki wybierz grupę plików, na której chcesz umieścić tabelę.
  • Opcjonalnie, na liście Grupa aplikacji Tekst wybierz grupę plików, na której zostaną umieszczone kolumny tekstu, obrazu i tekstu. ]

bardziej skutecznym sposobem jest

tworzyć klastrowego indeks w tabeli . Jeśli tabela ma już indeks klastrowany , można użyć klauzuli ZAPISZ INDEKSU PRZYKŁAD, aby odtworzyć indeks klastrowany i przenieść go do określonej grupy plików . Gdy tabela ma indeks klastrowany, poziom liścia indeks i strony danych tabeli zasadniczo stają się jednym i samym. Tabela musi istnieć tam, gdzie istnieje indeks klastrowy , więc jeśli tworzysz lub odtwarzasz klastrowany indeksując indeks na konkretnej grupie plików , przenosisz także tabelę do nowej grupy plików.

kredytowe: Brian Moran

Można stworzyć (lub odtworzenie) klastrowany indeks określający nową grupę plików do klauzuli ON i że przeniesie tabeli (dane). Ale jeśli masz nieklastrowane indeksy i chcesz je na drugiej grupa plików, należy upuść i ponownie je utworzyć, określając nową grupę plików w klauzuli ON. Ref.

+0

>> Prawo -kliknij dowolną kolumnę, a następnie kliknij opcję Właściwości. Nie, nie ma opcji, aby to zrobić :(Zrzut ekranu: –

+0

musi być chnaged w SQL 2008, sposób TSQL powinien nadal działać. Będę aktualizował, gdy znajdę, gdzie opcja została przeniesiona! –

+0

hmm .... czy mógłbyś opublikować TSql proszę? Próbuję następujące (i to nie działa): - tworzenie indeksu PK_TableFooId na dbo.NorthAmerican_Countries (id) Z DROP_EXISTING ON SpatialDataReadOnly –

0

zgadzam się z Markiem. Odbudować klaster działa dobrze i jest znacznie szybciej niż Tasks-> Shrink od bazy danych> Files->Empty file by migrating data to another file.

Tworzenie indeksów individualy pozwala Controll nad obciążeniem systemu bez tworzenia dużych plików dziennika z select * into [your.new.table.] from .....

Powiązane problemy