Si vous utilisez Azure SQL DB Premium tiers ou Azure SQL Managed Instance (Business Critical Tiers), vous aurez tout à gagner à utiliser le nœud en lecture seule fourni pour alléger le workload sur votre base en lecture écriture et éviter les locks indésirables.
Quelques mots pour vous expliquer comment faire sur Power BI et Azure Analysis Services (pour les connexions de type Power Query et pas legacy mode).
Power BI
C’est la partie facile, lors de l’import de données depuis SQL Server, il suffit de cocher « Activer la prise en charge du basculement SQL Server ». Et si un read replica est disponible, il sera utilisé.
Afin de vérifier si cela a fonctionné, on peut utiliser la requête suivante :
CREATE VIEW dbo.Properties AS
SELECT DATABASEPROPERTYEX(DB_NAME(), 'Updateability') AS Readability
En l’ajoutant dans une vue, je peux l’ajouter comme mes autres tables à mon modèle et vérifier une fois la table chargée que celui-ci est bien en READ_ONLY.
Azure Analysis Services
En ce qui concerne Analysis Services, ce n’est pas beaucoup plus compliqué, en effet on retrouve cette même option d’activation de la prise en charge du basculement dans les options de connexion. Plus compliqué lorsque vous souhaitez le définir via code (pour votre ci/cd par exemple) il faudra bien faire attention à la casse et s’assurer que votre JSON de connexion ressemble à :
"dataSources": [
{
"type": "structured",
"name": "AdventureWorks",
"connectionDetails": {
"protocol": "tds",
"address": {
"server": "lab-file.database.windows.net",
"database": "blog"
},
"authentication": null,
"query": null
},
"options": {
"commandTimeout": "P5D",
"MultiSubnetFailover": "true"
},
"credential": {
"AuthenticationKind": "OAuth2",
"PrivacySetting": "Private"
}
}
]
Vous pouvez retrouver l’option avec SSMS sur les détails de la connexion :
La seule propriété nécessaire est l’option :
"MultiSubnetFailover": "true"
Pas besoin de spécifier le read intent contrairement à ce que peuvent laisser penser certains vieux articles présents sur Internet.
Vous pouvez tester que cela est effectif avec la même méthode exposée pour Power BI.
Conclusion
Si vous utilisez Azure SQL Premium ou Azure SQL Managed Instance (Business Critical Tiers) faites cette configuration ! Cela permet d’alléger votre workload et vous payez pour cela alors utilisez-le !