81
4.2 Partitionnement
série. De plus, l’intérêt ne sera réel que pour des VLDB (bases de données de grande
taille). En effet, dans les bases de données de taille moyenne, les lectures sur le disque devraient être autant que possible évitées par une quantité suffisante de RAM.
La plupart des pages sollicitées sont alors déjà contenues dans le buffer et tout accès
aux disques est évité.
Mais même dans la RAM, il peut être intéressant de n’attaquer qu’une partie de
la table. Un autre intérêt du partitionnement est la simplicité et la rapidité avec
laquelle on peut ajouter ou retirer des partitions de la table. Nous allons le voir en
pratique.
Le partitionnement se prépare avant la création de la table : il ne peut se faire sur
une table existante. Pour appliquer un partitionnement à des données déjà présentes, il faut les faire migrer vers une nouvelle table, partitionnée. De plus, l’opération
ne peut se faire en SQL Server 2005 que par code T-SQL. SQL Server 2008 propose
un assistant (clic droit sur la table dans l’explorateur d’objet, menu Storage à partir de
la CTP 6 de février 2008), mais pour rester compatible avec les deux versions, nous
vous présentons ici les commandes T-SQL.
Pour partitionner, vous devez suivre les étapes suivantes dans l’ordre :
• Créer autant de groupes de fichiers que vous désirer créer de partitions.
• Créer une fonction de partitionnement (partition function). Elle indique sur
quel type de données et pour quelles plages de valeurs, les partitions vont être
créées.
• Créer un plan de partitionnement (partition scheme) (traduit dans l’aide en
français par « schéma » de partitionnement). Il attribue chaque partition
déclarée dans la fonction, à un groupe de fichiers.
• Créer une table qui se repose sur le plan de partitionnement.
Le partitionnement consiste à placer chaque partition sur son propre groupe de
fichiers. Vous devez donc préalablement créer tous vos groupes de fichiers. Si vous
cherchez à partitionner une très grande table pour optimiser les lectures physiques,
faites au moins en sorte que les fichiers dans lesquels vous allez placer les lignes le
plus souvent requêtées se trouvent sur des disques physiques différents.
USE Master;
ALTER DATABASE AdventureWorks ADD FILEGROUP fg1;
ALTER DATABASE AdventureWorks ADD FILEGROUP fg2;
ALTER DATABASE AdventureWorks ADD FILEGROUP fg3;
GO
ALTER DATABASE AdventureWorks
ADD FILE
( NAME = data1,
FILENAME = 'c:\temp\AdventureWorksd1.ndf',
SIZE = 1MB, maxsize = 100MB, FILEGROWTH = 1MB)
TO FILEGROUP fg1;
ALTER DATABASE AdventureWorks
Précédent

- 93/334

Suivant