luni, 19 ianuarie 2009

Partitionarea unei tabele in SQL 2008

Probabil deja stiti ca pentru partionarea unei tabele in SQL 2005 trebuie parcursi urmatorii pasi:
- creata o functie de partitionare (CREATE PARTITION FUNCTION ...)
- creata o schema de partitionare (CREATE PARTITION SCHEME ...)
- aplicata schema de partitionare unei tabele (prin recrearea indexului clustered folosind schema de partitionare)



Cateodata insa chiar si un DBA cu experienta trebuie sa apeleze la help sa-si aminteasca sintaxa unor comenzi... Insa in SQL 2008 (in SQL Server Management Studio) acest lucru se poate face mult mai rapid:

1. Dati click dreapta pe tabela care doriti s-o partitionati si alegeti din meniul contextual "Storage -> Create Partition..."


2. In primul pas din wizard selectati coloana dupa care se va face partitionarea:

3. Introduceti numele functiei si schemei de partitionare:
4. Definiti intervalele functiei de partitionare si alocarile pe fiecare filegroup:
5. Alegeti daca wizard-ul sa va genereze doar script-ul, sau sa ruleze imediat sau la un anumit moment:

... si GATA!

Mai jos este script-ul care l-a generat acest wizard:

CREATE PARTITION FUNCTION PartitionFunction1(datetime)
AS RANGE LEFT
FOR VALUES (N'2005-01-01T00:00:00', N'2006-01-01T00:00:00', N'2007-01-01T00:00:00', N'2008-01-01T00:00:00', N'2009-01-01T00:00:00')

CREATE PARTITION SCHEME PartitionScheme1
AS PARTITION PartitionFunction1
TO ([FG1], [FG1], [FG2], [FG3], [PRIMARY], [PRIMARY])

DROP INDEX ClusteredIndex1
ON dbo.Items WITH ( ONLINE = OFF )


CREATE CLUSTERED INDEX ClusteredIndex1
ON dbo.Items(CreateDate)
WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF)
ON PartitionScheme1(CreateDate)

Niciun comentariu: