Créer une vue partitionnée avec SQL Server

Comment créer une vue partitionnée avec SQL Server ? Ce script est un exemple simple pour créer une vue qui pointe sur trois tables différentes. Dans cet exemple, chaque table des Ventes contiendrait les ventes d’un mois ou encore d’un trimestre, pour optimiser les performances.

Comment créer une vue partitionnée SQL Server qui regroupe les données de plusieurs tables ? 

Voici un exemple de vue partitionnée horizontalement. C’est aussi une vue locale car toutes les données sont stockées sur le même serveur de base de données. Les tables sous-jacentes sont appelées les tables membres de la vue.

CREATE VIEW [dbo].[V_VENTES_P]
AS 
  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_01]

  UNION ALL 

  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_02]

  UNION ALL 

  SELECT [NombreClients], [NombreVentes], [Montant_HT], [Montant_TTC]
  FROM [dbo].[VENTES_03];

Partitionnement horizontale mensuel d’une vue

En effet, pour aller au bout du concept, il suffirait de créer 12 tables avec une table par mois, et ainsi partitionner les données des vente de façon mensuelle. Par exemple:

  • Janvier : VENTES_01
  • Février : VENTES_02
  • Mars : VENTES_03
  • Avril : VENTES_04
  • Mai : VENTES_05
  • Juin : VENTES_06
  • Juillet : VENTES_07
  • Aout : VENTES_08
  • Septembre : VENTES_09
  • Octobre : VENTES_10
  • Novembre : VENTES_11
  • Décembre : VENTES_12

Partitionnement horizontale trimestriel d’une vue

Ou encore un partitionnement des chiffres de ventes par trimestre:

  • Premier trimestre : VENTES_Q1
  • Deuxième trimestre : VENTES_Q2
  • Troisième trimestre 3: VENTES_Q3
  • Quatrième trimestre 4: VENTES_Q4

Créer une vue partitionnée annuellement avec SQL Server

Toutefois, un modèle largement utilisé est le partitionnement par années. En effet, les années passées sont rarement ou très peu utilisées, ce qui améliore considérablement les performances lors des requêtes sur les données de l’année en cours. Comme par exemple:

  • D’abord, l’Année 2020 et passées: VENTES_2020
  • Année 2021: VENTES_2021
  • Année 2022: VENTES_2022
  • Enfin, l’année 2023 et futures: VENTES_2023

Par contre, ce partitionnement annuel implique de gérer l’imnsertion des données dynamiquement sur l’année adéquate en fonction de la date effective des données concernées.

Ce cette manière, une requête filtrée sur un mois particulier ne récupère que les données sur une seule table. Voici en outre comment créer une table avec SQL Server.

Soyez le premier à commenter

Laisser un commentaire