PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX - Tutorial MS SQL Server Tabela Particionada
WX - Tutorial MS SQL Server Tabela Particionada
Iniciado por BOLLER ADRIANO, set., 01 2016 8:29 PM - Sem resposta
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em setembro, 01 2016 - 8:29 PM
Prezados,

Definição com a equipe para elencar as tabelas e treinamento de uso e criação.

Exemplo didático e como usar uma tabela particionada para o seu ERP.

http://screencast.com/t/B6Uz3XSrH

http://www.screencast.com/t/tHIgTcKy8

---------------------------------------------------------------------------------------------------------------
CRIAÇÃO DA TABELA PARTICIONADA
---------------------------------------------------------------------------------------------------------------

USE [model]
GO
BEGIN TRANSACTION
CREATE PARTITION FUNCTION [Fp_Meses](varchar(2)) AS RANGE LEFT FOR
VALUES (N'01', N'02', N'03', N'04', N'05', N'06', N'07', N'08', N'09', N'10', N'11', N'12')


CREATE PARTITION SCHEME [Sch_Financeiro]
AS PARTITION [Fp_Meses] TO ([PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY],
[PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY], [PRIMARY])

SET ANSI_PADDING ON

CREATE CLUSTERED INDEX [ClusteredIndex_on_Sch_Financeiro_636081645430660792] ON [dbo].[T0004_MovBancos]
(
[T0004_Mes]
)WITH (SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF) ON [Sch_Financeiro]([T0004_Mes])


DROP INDEX [ClusteredIndex_on_Sch_Financeiro_636081645430660792] ON [dbo].[T0004_MovBancos]


COMMIT TRANSACTION

---------------------------------------------------------------------------------------------------------------
USO DA TABELA PARTICIONADA
---------------------------------------------------------------------------------------------------------------

Use Asplan360_A
go



-- A INCLUSÃO NÃO TEM DIFERENÇA, SÓ DEVE ALIMENTAR A COLUNA DE QUAL PARTIÇÃO ELA PERTENCE, NO CASO
-- SERIA A COLUNA: T0004_Mes


-- Mostra Tudo
select * from T0004_MovBancos




-- Mostra a quantidade de registros em cada partição
SELECT $PARTITION.Fp_Meses(T0004_Mes) AS PARTITIONID,
COUNT(*) AS ROW_COUNT
FROM DBO.T0004_MovBancos
GROUP BY $PARTITION.Fp_Meses(T0004_Mes)
ORDER BY PARTITIONID




-- Lista só o conteudo da partição 02
SELECT * FROM dbo.T0004_MovBancos
WHERE $Partition.Fp_Meses(T0004_Mes) = 02

--O procedimento depois de feito o create table na model é transparente para o sql nada muda.

---------------------------------------------------------------------------------------------------------------

Imagem anexa do resultado.

Em resumo, é simples de fazer, não vai modificar o trabalho da equipe no dia a dia apenas na criação da tabela deverá ter um cuidado e padrões a serem seguidos que trarão para o nosso cliente final um alto desempenho nas consultas, relatórios, inclusão de dados e manutenção.

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/