MCDBA Brasil


  • Home
  • Sobre
  • Contato

Livros





Links Rápidos

SQL Server Builds (All Versions/Editions)


Download SQL Server 2017 (trial)


SQL Server 2017 Feature Pack


SQL Server 2016 Feature Pack


Cumulative Update SQL Server 2017 builds


Cumulative Update SQL Server 2016 builds


Cumulative Update SQL Server 2014 builds


Cumulative Update SQL Server 2012 builds


SQL Server 2005/2008 Samples Databases


Documentando o Servidor SQL Server


Analisando a Performance do Servidor-CheckList


Virtual PASS PT


Faça parte do maior virtual chapter do PASS com conteúdos técnicos em Português sobre SQL Server.

Todos os meses um evento Online para você! Acompanhe aqui os WebCasts já agendados

Sindicalize seu blog ou site ao VirtualPASSPT

SQL Server Blogs

SQL Server Query Processing Team


SQL Programmability & API Development Team


SQL Server Manageability Team


Latin America Support Team


Database + Disk + Performance


Microsoft SQL Server Support


SQL CLR Team


SQL Query Optimization Team


SQL 2005 Code Samples


SQL Server Express Team


SQL SMO Samples


SQL Storage Engine Team


SQL CAT Team


SQL Protocols Team


PSS SQL Server Engineers


Slava Oks on SQLOS


Ken Henderson’s blog


LUTI@Microsoft Blog


kimberly L. Trip’s blog


Fernando Garcia Blog

Tutoriais

Particionando Tabelas e Índices no SQL Server 2005 – Parte II

por Nilton Pinheiro novembro 30, 2008 Nenhum comentário

Para que você possa entender melhor esta segunda parte do artigo, leia também a primeira parte: Particionando Tabelas e Índices no SQL Server 2005 – Parte I

Particionando um Índice


O procedimento para criar um índice particionado é igual ao procedimento de se criar uma tabela particionada. Para exemplificar, vamos criar um índice para a coluna aula_id da tabela aula_partição utilizando a Partition function e Partition Sheme utilizados para tabela (veja a Parte I).


Listagem 1. Criando um Índice particionado
USE particionamento
GO
Create Nonclustered Index ix_aula_id on aula_particao(aula_id)
on particao_esquema(aula_id)


No exemplo criamos um índice chamado ix_aula_id para a coluna aula_id da tabela aula_particao referenciando o esquema de partição particao_esquema. Podemos verificar a criação do índice utilizando a procedure de sistema sp_helpindex como no exemplo abaixo:


sp_helpindex aula_particao


Na coluna index_description podemos observar que o índice foi locado no esquema de partição particao_esquema.


Com a query abaixo também podemos verificar a quantidade de registros por partição do índice.


SELECT * FROM sys.partitions
WHERE object_id = OBJECT_ID(‘dbo.AULA_PARTICAO’)
and   sys.partitions.index_id =
(select sys.indexes.index_id from sys.indexes
where object_id = OBJECT_ID(‘dbo.AULA_PARTICAO’)
and sys.indexes.name = ‘ix_aula_id’)



Gerenciando Partições

Para gerenciar partições temos três operadores SLIPT, MERGE e SWITCH.

SPLIT – Adiciona um intervalo para  a função de partição
MERGE – Permite mesclar um ou mais intervalos de uma função de partição
SWITCH – Adiciona ou remove linhas de uma tabela


Antes de alterar a partição vamos relembrar como está criada nossa Partition Function e Partition Scheme.


Listagem 4. Consultando os intervalos de uma  Partition Function e qual Partition Scheme ela esta relacionada
select sys.partition_functions.name , sys.partition_range_values.* , sys.partition_schemes.name as name_scheme
from sys.partition_functions
inner join sys.partition_range_values on sys.partition_range_values.function_id = sys.partition_functions.function_id
inner join sys.partition_schemes      on sys.partition_schemes.function_id      = sys.partition_functions.function_id
where sys.partition_functions.name = ‘particao_funcao’



Listagem 5. Consultando em qual filegroup esta apontando o Partition Scheme
select sys.partition_schemes.name as name_scheme, sys.data_spaces.name as name_filegroup
from sys.partition_schemes
inner join sys.destination_data_spaces on sys.destination_data_spaces.partition_scheme_id = sys.partition_schemes.data_space_id
inner join sys.data_spaces on sys.data_spaces.data_space_id = sys.destination_data_spaces.data_space_id
where sys.partition_schemes.name = ‘particao_esquema’




Utilizando MERGE


O MERGE permite mesclar um ou mais intervalos de uma Partition Function. Note que no exemplo abaixo solicitamos a mesclagem do intervalo entre 200 e 399 e como resultado o filegroup FG3 não faz mais parte da Partition Scheme particao_esquema.


Listagem 6. Mesclando o Intervalo 200 a 399
ALTER PARTITION FUNCTION PARTICAO_FUNCAO()
MERGE RANGE (300);





Utilizando SPLIT


Use o SPLIT sempre que precisar adiciona um intervalo para uma  Partition Function.


Listagem 7. Adicionando um Intervalo 300 a 399
— Adidionando um Filegroup para a Partition Scheme
ALTER PARTITION SCHEME particao_esquema
NEXT USED FG3;


— Criando o Intervalo de 300 a 399
ALTER PARTITION FUNCTION PARTICAO_FUNCAO ()
SPLIT RANGE (300);



Utilizando SWITCH


O operador SWITCH permite mover dados de uma partição para uma outra tabela do mesmo filegroup. Imagine que você queira mover os dados de produção para uma tabela de histórico quanto tempo não iria demorar com o SWITCH o SQL Server move o ponteiro dos dados para a outra tabela, mas é valido somente para tabelas criadas no mesmo FILEGROUP e com a mesma estrutura.


Como exemplo, vamos mover os dados da partição 1 para a tabela AULA_PARTICAO_HIST.


Listagem 8. Criando tabela de histórico
CREATE TABLE dbo.AULA_PARTICAO_HIST (aula_id int,descricao Char(10) default (‘AAAAA’)) ON FG1


Listagem 9. Movendo os dados da partição 1 para a tabela de histórico
ALTER TABLE AULA_PARTICAO
SWITCH PARTITION 1 TO AULA_PARTICAO_HIST


SELECT * FROM AULA_PARTICAO_HIST



Bom pessoal termina aqui Particionando Tabelas e Índices no SQL Server 2005 até a próxima.


ROGÉRIO SANCHES DE OLIVEIRA
(rsanches@hpgsoft.com.br)
formado em Sistemas de Informação para o Setor Financeiro pela UNIBAN. Trabalha como Analista Programador e DBA no CPDI (Centro de Processamento de Documentos Inteligentes) da XEROX, participa ativamente do fórum www.mcdbabrasil.com.br. Possui Certificação MCTS em SQL Server 2005 e está se preparando para a certificação MCITP:Database Administrator.

Avaliação:
Compartilhe:
  • Anterior Particionando Tabelas e Índices no SQL Server 2005 – Parte I17 anos atrás
  • Próximo Automatizando Backups no SQL Server Express17 anos atrás

Deixe uma resposta Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

MVP Reconnect Award

Categorias

  • Artigos (359)
  • Dica da Semana (95)
  • Documentação (54)
  • Downloads (113)
  • MSDE 2000 (3)
  • Sem categoria (1)
  • Tutoriais (9)

Posts recentes

  • #FechouBrasil #PartiuPortugal
  • Brigando com o erro “The cached MSI file is missing”
  • MCDBABRASIL está de volta
  • Documentando o Servidor SQL Server
  • Brigando com os Erros 17182, 17826 e 17120

SQL Server AlwaysOn Video Series

Video1: Introdução ao SQLServer2012 AlwaysOn


Video2: Introdução ao SQLServer2012 AlwaysOn Availability Group


Video3: Introdução ao SQLServer2012 AlwaysOn AVG-Demo


Video4: Introdução ao SQLServer2012 AlwaysOn Listener


Video5: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries


Video6: Introdução ao SQLServer2012 AlwaysOn Readable Secondaries-Demo


Video7: Introdução ao SQLServer2012 AlwaysOn Failover Clustering


Serie SQL Server Failover Clustering End-to-End

Parte 1: Configuração da Rede e Ambiente


Parte 2: Configurando o Windows 2008 R2 Domain Controler e DNS


Parte 3: Preparando os nós para o Failover Cluster


Parte 4: Configurando um Failover Cluster de 2 nós


Parte 5: Configurando as LUNs no iSCSI Software Target (Parte 1)


Parte 6: Configurando as LUNs no iSCSI Software Target (Parte 2)


Parte 7: Apresentando as LUNs para os nós do Failover Cluster


Parte 8: Configurando os discos no Failover Cluster


Parte 9: Instalando a primeira instância virtual do SQL Server 2008


Parte 10: Instalando a segunda instância virtual do SQL Server 2008


Parte 11: Instalando e Configurando o MSDTC no Failover Cluster


Parte 12: Configurando Mount Points no Cluster e SQL Server 2008


Vídeo Extra: Removendo uma Instância do SQL Server 2008 R2 em Cluster


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering Overview


Alta Disponibilidade no SQL Server 2008 R2: Failover Clustering na Prática

Menu

  • Home
  • Sobre
  • Contato

Mais

  • RSS Feeds
2025 MCDBA Brasil.