Conception de partitions pour améliorer les performances des requêtes
Suivant les types de requêtes fréquemment exécutées et la configuration matérielle, le partitionnement d'une table ou d'un index peut améliorer les performances des requêtes.
Partitionnement pour les requêtes de jointure
Si vous exécutez fréquemment des requêtes qui impliquent une équi-jointure entre au moins deux tables partitionnées, leurs colonnes de partitionnement doivent être les mêmes que celles par lesquelles les tables sont jointes. En outre, les tables, ou leurs index, doivent subir une colocation. Cela signifie qu'ils utilisent la même fonction de partition nommée ou des fonctions de partition nommée différentes mais fondamentalement similaires en ce sens qu'elles :
possèdent le même nombre de paramètres utilisés pour le partitionnement et que les types de données des paramètres correspondants sont les mêmes ;
définissent le même nombre de partitions ;
définissent les mêmes valeurs limites pour les partitions.
Ainsi, l'optimiseur de requête SQL Server peut traiter la jointure plus rapidement car les partitions elles-mêmes peuvent être jointes. Si une requête joint deux tables qui n'ont pas subi de colocation ou qui ne sont pas partitionnées sur le champ de jointure, la présence de partitions peut réellement ralentir le traitement des requêtes au lieu de l'accélérer.
Utilisation avantageuse de plusieurs lecteurs de disque
Pour améliorer les performances d'E/S, il peut être tentant de mapper les partitions avec des groupes de fichiers, chacun accédant à un lecteur de disque physique différent. Lorsque SQL Server trie des données pour des opérations d'entrée/sortie, il trie d'abord les données par partition. Dans ce scénario, SQL Server accède à un lecteur en même temps, ce qui peut réduire les performances. Une meilleure solution en termes de performances consiste à distribuer les fichiers de données des partitions sur plusieurs disques en définissant un volume RAID. Ainsi, bien que SQL Server trie toujours les données par partition, il peut accéder à tous les lecteurs de chaque partition au même moment. Vous pouvez concevoir cette configuration, que l'ensemble des partitions se trouve dans un ou plusieurs groupes de fichiers. Pour plus d'informations sur la façon dont SQL Server utilise différents niveaux RAID, consultez Niveaux de RAID et SQL Server.
Contrôle du comportement d'escalade de verrous
Il est possible d'améliorer les performances des tables de partitionnement en activant l'escalade de verrous à une partition unique au lieu d'une table entière. Pour réduire les conflits de verrou en autorisant l'escalade de verrous à la partition, utilisez l'option LOCK_ESCALATION de l'instruction ALTER TABLE.