Accélérer les requêtes de recherche de points grâce à l’optimisation de la recherche

Les requêtes de recherche de points sont des requêtes dont on s’attend à ce qu’elles renvoient un petit nombre de lignes. Le service d’optimisation de la recherche peut améliorer les performances des requêtes de recherche de points qui utilisent les éléments suivants :

  • Prédicats d’égalité (par exemple, column_name = constant).

  • Prédicats qui utilisent IN (voir exemple).

Les sections suivantes fournissent de plus amples informations sur la prise en charge de l’optimisation de la recherche pour les requêtes de recherche de point :

Permettre l’optimisation de la recherche pour les requêtes de recherche de point

Les requêtes de recherche de point ne sont pas améliorées si vous n’activez pas l’optimisation de la recherche pour les colonnes référencées par le prédicat de la requête. Pour améliorer les performances des requêtes de recherche de point sur une table, utilisez la commande ALTER TABLE … ADD SEARCH OPTIMIZATION pour :

  • Activer l’optimisation de la recherche pour des colonnes spécifiques.

  • Activer l’optimisation de la recherche pour toutes les colonnes de la table.

En général, la meilleure pratique consiste à n’activer l’optimisation de la recherche que pour des colonnes spécifiques. Utilisez la clause ON EQUALITY pour spécifier les colonnes. Cet exemple active l’optimisation de la recherche pour une colonne spécifique :

ALTER TABLE mytable ADD SEARCH OPTIMIZATION ON EQUALITY(mycol);
Copy

Pour spécifier EQUALITY pour toutes les colonnes des types de données pris en charge (à l’exception de semi-structurées et GEOGRAPHY) :

ALTER TABLE mytable ADD SEARCH OPTIMIZATION;
Copy

Pour plus d’informations, voir Activation et désactivation de l’optimisation de la recherche.

Exemples de requêtes de recherche de point prises en charge

Le service d’optimisation de la recherche peut améliorer les performances de la requête suivante qui utilise un prédicat d’égalité :

SELECT * FROM test_table WHERE id = 3;
Copy

Une clause IN est prise en charge par le service d’optimisation de la recherche :

SELECT id, c1, c2, c3
  FROM test_table
  WHERE id IN (2, 3)
  ORDER BY id;
Copy