Clé de tri entrelacée - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Clé de tri entrelacée

Un tri entrelacé confère un poids égal à chaque colonne, ou sous-ensemble de colonnes, de la clé de tri. Si plusieurs requêtes utilisent des colonnes différentes pour les filtres, vous pouvez souvent améliorer les performances de ces requêtes en utilisant un style de tri entrelacé. Quand une requête utilise des prédicats restrictifs sur les colonnes de tri secondaires, le tri entrelacé améliore considérablement les performances des requêtes par rapport à un tri composé.

Important

N’utilisez pas de clé de tri entrelacée sur les colonnes qui contiennent des attributs qui augmentent de façon monotone, tels que les colonnes d’identité, les dates ou les horodatages.

L’amélioration des performances que vous obtenez en mettant en œuvre une clé de tri entrelacée doit être comparée aux temps de charge et de vidage.

Les tris entrelacés sont particulièrement efficaces avec des requêtes très sélectives qui filtrent sur une ou plusieurs colonnes clés de tri de la WHERE clause, par exemple. select c_name from customer where c_region = 'ASIA' Les avantages du tri entrelacé augmentent avec le nombre de colonnes triées restreintes.

Un tri entrelacé est plus efficace avec des tables volumineuses. Le tri est appliqué sur chaque tranche. Ainsi, un tri entrelacé est plus efficace lorsqu’une table est suffisamment volumineuse pour nécessiter plusieurs blocs de 1 Mo par tranche. Ici, le processeur de requêtes peut ignorer une proportion significative des blocs en utilisant des prédicats restrictifs. Pour afficher le nombre de blocs utilisés par une table, interrogez la vue système STV_BLOCKLIST.

Lorsque vous effectuez un tri sur une seule colonne, un tri entrelacé peut offrir de meilleures performances qu’un tri composé si les valeurs de la colonne ont un préfixe de commun. Par exemple, commencez URLs généralement par « http://www ». Les clés de tri composées utilisent un nombre limité de caractères après le préfixe, ce qui se traduit par un grand nombre de duplications de clés. Les tris entrelacés utilisent un schéma de compression interne pour les valeurs de la carte de zone qui leur permet de mieux distinguer les valeurs de la colonne ayant un préfixe commun long.

Lors de la migration de clusters provisionnés Amazon Redshift vers Amazon Redshift Serverless, Redshift convertit les tables contenant des clés de tri entrelacées en clés de tri composées. DISTSTYLE KEY DISTSTYLECela ne change pas. Pour en savoir plus sur les styles de distribution, consultez Utilisation des styles de distribution de données.

VACUUM REINDEX

Lorsque vous ajoutez des lignes à une table triée contenant déjà des données, les performances peuvent se détériorer au fil du temps. Cette détérioration se produit pour les tris composés et entrelacés, mais elle a des conséquences plus graves sur les tables. A VACUUM rétablit l'ordre de tri, mais l'opération peut prendre plus de temps pour les tables entrelacées, car la fusion de nouvelles données entrelacées peut impliquer la modification de chaque bloc de données.

Lorsque les tables sont initialement chargées, Amazon Redshift analyse la distribution des valeurs dans les colonnes de clés de tri et utilise ces informations pour un entrelacement optimal des colonnes de clés. A mesure qu’une table se développe, la distribution des valeurs dans les colonnes de clé de tri peut changer, ou se décaler, en particulier avec les colonnes de date ou d’horodatage. Si l’asymétrie devient trop grande, les performances peuvent en être affectées. Pour réanalyser les clés de tri et rétablir les performances, exécutez la VACUUM commande avec le mot REINDEX clé. Comme il faut une étape d'analyse supplémentaire sur les données, cela VACUUM REINDEX peut prendre plus de temps qu'une norme VACUUM pour les tables entrelacées. Pour afficher des informations sur l’asymétrie de la distribution de clés et la durée de la dernière réindexation, interrogez la vue système SVV_INTERLEAVED_COLUMNS.

Pour plus d'informations sur la façon de déterminer à quelle fréquence VACUUM et à quel moment exécuter un VACUUMREINDEX, consultezDécidez s'il faut réindexer.