Recherche…


Récupérer les valeurs limites des partitions

SELECT        ps.name AS PartitionScheme
            , fg.name AS [FileGroup]
            , prv.*            
            , LAG(prv.Value) OVER (PARTITION BY ps.name ORDER BY ps.name, boundary_id) AS PreviousBoundaryValue

FROM        sys.partition_schemes ps
INNER JOIN    sys.destination_data_spaces dds
            ON dds.partition_scheme_id = ps.data_space_id
INNER JOIN    sys.filegroups fg
            ON dds.data_space_id = fg.data_space_id
INNER JOIN    sys.partition_functions f
            ON f.function_id = ps.function_id
INNER JOIN    sys.partition_range_values prv
            ON f.function_id = prv.function_id
            AND dds.destination_id = prv.boundary_id

Changement de partition

Selon cette [page TechNet Microsoft] [1],

Les données de partitionnement vous permettent de gérer et d'accéder à des sous-ensembles de vos données rapidement et efficacement, tout en conservant l'intégrité de l'ensemble de la collecte de données.

Lorsque vous appelez la requête suivante, les données ne sont pas déplacées physiquement. seules les métadonnées concernant l'emplacement des données sont modifiées.

ALTER TABLE [SourceTable] SWITCH TO [TargetTable]

Les tables doivent avoir les mêmes colonnes avec les mêmes types de données et paramètres NULL, elles doivent être dans le même groupe de fichiers et la nouvelle table cible doit être vide. Voir le lien de la page ci-dessus pour plus d'informations sur le changement de partitions.

[1]: https://technet.microsoft.com/en-us/library/ms191160(v=sql.105).aspx La propriété IDENTITY colonne peut être différente.

Récupère les valeurs de la table de partition, de la colonne, du schéma, de la fonction, du total et du min-max à l'aide d'une seule requête

SELECT DISTINCT
    object_name(i.object_id) AS [Object Name],
    c.name AS [Partition Column],
    s.name AS [Partition Scheme],
    pf.name AS [Partition Function],
    prv.tot AS [Partition Count],
    prv.miVal AS [Min Boundry Value],
    prv.maVal AS [Max Boundry Value]
FROM sys.objects o 
INNER JOIN sys.indexes i ON i.object_id = o.object_id
INNER JOIN sys.columns c ON c.object_id = o.object_id
INNER JOIN sys.index_columns ic ON ic.object_id = o.object_id
    AND ic.column_id = c.column_id
    AND ic.partition_ordinal = 1
INNER JOIN sys.partition_schemes s ON i.data_space_id = s.data_space_id
INNER JOIN sys.partition_functions pf ON pf.function_id = s.function_id
OUTER APPLY(SELECT 
                COUNT(*) tot, MIN(value) miVal, MAX(value) maVal 
            FROM sys.partition_range_values prv 
            WHERE prv.function_id = pf.function_id) prv
--WHERE object_name(i.object_id) = 'table_name'
ORDER BY OBJECT_NAME(i.object_id)

Juste Décommentez where l' article et remplacer table_name avec le actual table name la actual table name pour voir le détail de l' objet désiré.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow