Ya tengo un avance (todavía no estoy muy seguro pero ahí va):
Código SQL:
Ver original--DROP PARTITION FUNCTION part_evto_perf
--DROP SCHEMA EVTO_SM
-- Funciòn para particionar las 8 tablas de eventos de perturbaciòn y 7
--de perfiles històricos mediante campo fecha (por ahora del 2005 hasta 2007)
--pero se requiere que se "incremente" por cada semestre que vaya a transcurrir
--por tiempo indefinido
CREATE PARTITION FUNCTION evto_perf_pf(datetime)
AS RANGE RIGHT
FOR VALUES ('20050101', '20050701', '20060101', '20060701','20070101')
GO
--Creo filegroups por semestre
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s1_2005_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s2_2005_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s1_2006_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s2_2006_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s1_2007_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILEGROUP s2_2007_fg
GO
--Agrego a cada archivo un filegroup
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = s1_2005_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s1_2005_BD.ndf')
TO FILEGROUP s1_2005_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = 2S_2005_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s2_2005_BD.ndf')
TO FILEGROUP s2_2005_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = 1S_2006_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s1_2006_BD.ndf')
TO FILEGROUP s1_2006_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = 2S_2006_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s2_2006_BD.ndf')
TO FILEGROUP s2_2006_fg
GO
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = 1S_2007_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s1_2007_BD.ndf')
TO FILEGROUP s1_2007_fg
GO
-- Filegroup exra
ALTER DATABASE SERVICIO_BD
ADD FILE(NAME = 2S_2007_BD,
FILENAME = 'C:\Archivos de programa\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\s2_2007_BD.ndf')
TO FILEGROUP s2_2007_fg
GO
-- Creo un esquema de particiòn usando un file group diferente para cada particion
CREATE PARTITION SCHEME evto_perf_ps
AS PARTITION evto_perf_pf
TO (s1_2005_fg, s2_2005_fg, s1_2006_fg,
s2_2006_fg, s1_2007_fg, s2_2007_fg)
GO
Pero veo que tengo que crear tablas y no puedo reutilizar las que ya tengo y que ya tienen datos.
y luego encontré según como pasar los datos pero no se como (lo adapté con el campo tipo fecha):
Código SQL:
Ver original-- Mover los datos al esquema particionado
CREATE UNIQUE CLUSTERED INDEX ID
ON EVTO_DESB (FECHA)
WITH (DROP_EXISTING = ON, ONLINE = ON)
ON evto_perf_ps (FECHA)
GO
¿Cómo hago el alter table para mis tablas que no son como las del sig. ejemplo?
Código SQL:
Ver originalCREATE TABLE dbo.tblDatos
(
ID UNIQUEIDENTIFIER NOT NULL
,DESCRIPCION VARCHAR(200) NOT NULL
,FECHA DATETIME NOT NULL
,CONSTRAINT PK_tblDatos PRIMARY KEY NONCLUSTERED (ID, FECHA) ON psDatos(FECHA)
) ON psDatos(FECHA);