Usuário com melhor resposta
Particionamento

Pergunta
-
Respostas
-
tem alguma query que eu consigo para levantar os meus objetos que hoje estao na partição?
porque ai dessa forma faço backup destes objetos e depois apago a particao.
Renata,
Segue um script para você visualizar os objetos particionados:
SELECT SCHEMA_NAME(o.schema_id) + '.' + OBJECT_NAME(i.object_id) AS [object] , p.partition_number AS [p#] , fg.name AS [filegroup] , p.rows , au.total_pages AS pages , CASE boundary_value_on_right WHEN 1 THEN 'less than' ELSE 'less than or equal to' END as comparison , rv.value , CONVERT (VARCHAR(6), CONVERT (INT, SUBSTRING (au.first_page, 6, 1) + SUBSTRING (au.first_page, 5, 1))) + ':' + CONVERT (VARCHAR(20), CONVERT (INT, SUBSTRING (au.first_page, 4, 1) + SUBSTRING (au.first_page, 3, 1) + SUBSTRING (au.first_page, 2, 1) + SUBSTRING (au.first_page, 1, 1))) AS first_page FROM sys.partitions p INNER JOIN sys.indexes i ON p.object_id = i.object_id AND p.index_id = i.index_id INNER JOIN sys.objects o ON p.object_id = o.object_id INNER JOIN sys.system_internals_allocation_units au ON p.partition_id = au.container_id INNER JOIN sys.partition_schemes ps ON ps.data_space_id = i.data_space_id INNER JOIN sys.partition_functions f ON f.function_id = ps.function_id INNER JOIN sys.destination_data_spaces dds ON dds.partition_scheme_id = ps.data_space_id AND dds.destination_id = p.partition_number INNER JOIN sys.filegroups fg ON dds.data_space_id = fg.data_space_id LEFT OUTER JOIN sys.partition_range_values rv ON f.function_id = rv.function_id AND p.partition_number = rv.boundary_id WHERE i.index_id < 2 GO
Segue a evidência de teste para esta consulta:
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Renata Cardoso segunda-feira, 24 de novembro de 2014 11:34
Todas as Respostas
-
Renata,
É possível remover sim.
Este link vai te ajudar.
http://www.patrickkeisler.com/2013/01/how-to-remove-undo-table-partitioning.html
Keny Maciel da Silva
DBA SQL-Server ITGROUP
MCTS SQL Server 2008 Implementation and Maintenance
Email: kenymaciel@gmail.com -
Renata,
De qual tipo de particionamento você esta se referindo?
Você esta se referindo a Filegroup, Partition Function ou até mesmo Particionamento Horizontal e Vertical?
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
-
-
Renata,
Como assim?
A edição Standard trabalhar tranquilamente com Filegroups, será que você não esta se referindo a Partition Function? Pois este recurso não é suportado no SQL Server Standard.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
-
-
Renata,
Certo, foi o que pensei!!!
Então basicamente o processo é simples, quando criamos Partition Function Scheme, estamos implementando um recurso que terá a função de direcionar os dados de acordo com a sua faixa de valores de uma tabela ou outra de acordo com o Schema que a tabela esta vinculada.
Sendo assim, o que você deveria fazer seria migrar as tabelas que estão relacionadas com o Partition Function Schema para outro Filegroup e posteriormente, remover a Partition Function Schema e depois Partition Function.
Não se esqueça que sua tabela esta vinculada ao Partition Schema que esta por sua vez envolvido com algum Filegroup do seu ambiente.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
-
-
tem alguma query que eu consigo para levantar os meus objetos que hoje estao na partição?
porque ai dessa forma faço backup destes objetos e depois apago a particao.
Renata,
Segue um script para você visualizar os objetos particionados:
SELECT SCHEMA_NAME(o.schema_id) + '.' + OBJECT_NAME(i.object_id) AS [object] , p.partition_number AS [p#] , fg.name AS [filegroup] , p.rows , au.total_pages AS pages , CASE boundary_value_on_right WHEN 1 THEN 'less than' ELSE 'less than or equal to' END as comparison , rv.value , CONVERT (VARCHAR(6), CONVERT (INT, SUBSTRING (au.first_page, 6, 1) + SUBSTRING (au.first_page, 5, 1))) + ':' + CONVERT (VARCHAR(20), CONVERT (INT, SUBSTRING (au.first_page, 4, 1) + SUBSTRING (au.first_page, 3, 1) + SUBSTRING (au.first_page, 2, 1) + SUBSTRING (au.first_page, 1, 1))) AS first_page FROM sys.partitions p INNER JOIN sys.indexes i ON p.object_id = i.object_id AND p.index_id = i.index_id INNER JOIN sys.objects o ON p.object_id = o.object_id INNER JOIN sys.system_internals_allocation_units au ON p.partition_id = au.container_id INNER JOIN sys.partition_schemes ps ON ps.data_space_id = i.data_space_id INNER JOIN sys.partition_functions f ON f.function_id = ps.function_id INNER JOIN sys.destination_data_spaces dds ON dds.partition_scheme_id = ps.data_space_id AND dds.destination_id = p.partition_number INNER JOIN sys.filegroups fg ON dds.data_space_id = fg.data_space_id LEFT OUTER JOIN sys.partition_range_values rv ON f.function_id = rv.function_id AND p.partition_number = rv.boundary_id WHERE i.index_id < 2 GO
Segue a evidência de teste para esta consulta:
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Renata Cardoso segunda-feira, 24 de novembro de 2014 11:34