Recommandation de paramétrage SQL forcé d'Azure

J'utilise la database Azure SQL dans mon projet et dans laquelle un même jeu de requêtes est exécuté très fréquemment. Récemment, j'ai reçu une recommandation de performance indiquant que les Non-Parameterized queries are causing performance issues . et suggèrent d'exécuter l'instruction suivante dans ma database.

ALTER DATABASE [TestDB] SET PARAMETERIZATION FORCED

J'ai appris que le paramétrage forcé peut améliorer les performances de certaines bases de données en réduisant la fréquence des compilations de requêtes et la recompilation. En outre, il est connu que les procédures stockées sont du code exécutable et sont automatiquement mises en cache et partagées entre les users et peuvent empêcher les recompilations.

S'il vous plaît aidez-moi avec des questions ci-dessous.

1) Est-ce que convertir la database en PARAMETERISATION forcée fonctionnerait mieux que de faire des requêtes fréquemment utilisées dans des procédures stockées?

2) Est-ce que l'exécution de l'option Forced Parameterization est sécurisée dans ma database?

Il est difficile de dire si cela fonctionnera mieux ou non sans tests supplémentaires, mais si le conseiller vous dit que l'activation du paramétrage améliorera les performances, alors vous devriez certainement l'essayer. Voici pourquoi:

Vous pouvez appliquer cette recommandation rapidement et facilement en cliquant sur la command Appliquer. Une fois que vous appliquez cette recommandation, il activera le paramétrage forcé en quelques minutes sur votre database et démarrera le process de surveillance qui dure environ 24 heures. Après cette période, vous pourrez voir le rapport de validation qui montre l'utilisation du processeur de votre database 24 heures avant et après l'application de la recommandation. SQL Database Advisor dispose d'un mécanisme de security qui inverse automatiquement la recommandation appliquée au cas où une régression de performance a été détectée.

Plus d'infos ici:

https://docs.microsoft.com/en-us/azuree/sql-database/sql-database-advisor#parameterize-queries-recommendations

1) Est-ce que convertir la database en PARAMETERISATION forcée fonctionnerait mieux que de faire des requêtes fréquemment utilisées dans des procédures stockées?

Non. Le paramétrage forcé est une solution de contournement pour les applications qui ne paramétrent pas correctement les requêtes. Il est préférable d'utiliser des parameters pour les requêtes à exécution fréquente et des valeurs codées en dur dans lesquelles vous souhaitez que le plan soit basé sur une valeur individuelle.

PAR EXEMPLE

 select * from Orders where CustomerId = @customerID and Active = 1