Si le nombre de lignes analysées ou la taille des données analysées dans la table de données dépasse la limite supérieure lors d'une requête SQL, créez un index secondaire ou un index de recherche basé sur les conditions de requête afin d'améliorer les performances.
Description du problème
Lorsque vous utilisez SQL pour interroger des données, le message d'erreur suivant s'affiche :
[Message]:The sql scanned rows of main table exceeds the quota, main table rows quota is 100000
Cause possible
Si vous utilisez une clé autre que la clé de partition comme condition de requête lors de l'interrogation des données via SQL, l'intégralité de la table est analysée. Le nombre de lignes analysées ou la taille des données analysées risque alors de dépasser la limite supérieure.
Les limites sont fixées à 100 000 lignes analysées, 128 Mo de données analysées et 30 secondes de durée d'analyse pour une seule opération d'analyse effectuée par l'exécution d'une instruction SQL.
Solution
Lorsque vous utilisez SQL pour interroger des données, assurez-vous que les conditions de requête incluent les colonnes de clé primaire et respectent le principe de correspondance la plus à gauche. Veillez également à utiliser le paramètre limit dans l'instruction SQL pour spécifier le nombre maximal de lignes à renvoyer.
Si les conditions de requête n'incluent pas les colonnes de clé primaire ou ne respectent pas le principe de correspondance la plus à gauche, accélérez l'interrogation en utilisant l'une des méthodes suivantes. Pour plus d'informations, consultez la rubrique Politique de sélection des index.
Si vous pouvez créer un index secondaire de manière à inclure les colonnes de clé primaire de l'index secondaire dans les conditions de requête et si ces conditions respectent le principe de correspondance la plus à gauche, créez un index secondaire pour accélérer l'interrogation. Pour plus d'informations, consultez la rubrique Présentation.
-
Si vous spécifiez une fonction d'agrégation (telle que COUNT, SUM ou AVG) ou si vous définissez des conditions de filtrage basées sur des colonnes autres que les clés primaires, créez un index de recherche pour accélérer l'interrogation. Pour plus d'informations, consultez la rubrique Présentation.
Si vous créez un index de recherche pour la table de données et que l'erreur persiste, vérifiez si l'index de recherche inclut les champs utilisés pour la requête.