mises à jour de table Direct:
Je ne suis pas d'accord avec Jake que toutes les mises à jour doivent passer par l'API. La déclaration correcte est que le passage par l'API est le seul supporté façon de faire des mises à jour. Il existe en fait plusieurs cas où la modification directe des tables est l'option la plus raisonnable:
-Une fois l'importation de gros volumes de données alors que le système n'est pas en cours d'utilisation.
-Modification de champs spécifiques sur de grands volumes de données.
Je suis d'accord que ce genre de modification directe ne devrait être un dernier recours lorsque la performance de l'API est inacceptable. Cependant, si vous souhaitez modifier un champ booléen sur des milliers d'enregistrements, une mise à jour SQL directe vers la table est une excellente option.
Vitesse relative Je suis d'accord avec XVargas en ce qui concerne la vitesse relative.
Vues Unfiltered vs tableaux: Je n'ai pas trouvé l'avantage de performance pour être en valeur la dispute de se joindre manuellement les tables de base et d'extension.
vues Unfiltered vs vues Filtré: Je travaillais récemment avec une requête complexe qui a pris environ 15 minutes pour exécuter en utilisant les vues filtrées. Après avoir basculé vers les vues non filtrées, cette requête a été exécutée en 10 secondes environ. En regardant les plans de requête respectifs, la requête brute avait 8 opérations alors que la requête sur les vues filtrées avait plus de 80 opérations.
Vues Unfiltered vs API: Je ne l'ai jamais comparé l'interrogation via l'API contre des vues d'interrogation, mais j'ai comparé le coût d'écriture des données via l'API vs insertion directement via SQL. L'importation de millions d'enregistrements via l'API peut prendre plusieurs jours, alors que la même opération utilisant des instructions d'insertion peut prendre plusieurs minutes. Je suppose que la différence n'est pas aussi grande pendant les lectures mais elle est probablement encore grande.
Soyez prudent en allant directement contre les tables. Les vues imposent la sécurité qui n'arrivera pas directement aux tables. Aussi, faire des mises à jour directement contre les tables est une super mauvaise idée. Toutes les mises à jour doivent passer par l'API. Sucksville si vous avez beaucoup de données, mais l'échec de le faire peut avoir des résultats imprévisibles. – Jake
Je ne recommanderais jamais de faire des mises à jour directes ou des insertions via des tables ou des vues. Cependant, pour les applications à grande échelle (sur des centaines d'utilisateurs et des millions de lignes), l'API ne le coupera pas à des fins d'interrogation. Si vous avez besoin que les rôles de sécurité soient appliqués, alors oui vous devrez aller contre l'API ou les vues filtrées. Les deux sont plutôt lents lors de l'extraction de grandes quantités de données. – XVargas