Question

J'ai le texte SQL "SELECT * FROM TABLE1 avec (Nolock)".

Deux questions:

  1. Comment faire en sorte que mon tadoquière utilise l'indice Nolock sans avoir à inclure cela dans le texte SQL? J'ai littéralement des milliers de Tadoquery avec leur SQL construit dynamiquement, et il serait difficile d'ajouter avec (Nolock) à chacun d'eux, sans oublier que j'utilise avec des plates-formes de base de données autres que MSSQL. Y a-t-il une propriété Tadoquery?

  2. Comment réaliser la même chose avec un tadotable? Les tadotables n'ont pas de SQL, alors comment puis-je lui dire d'utiliser l'indice Nolock?

Merci

Était-ce utile?

La solution

Si vous utilisez MS SQL, exécutez une instruction ci-dessous une fois sur la connexion

Définir le niveau d'isolement des transactions Lire non engagée

Applaudir AP

Autres conseils

Les conseils sont spécifiques à la base de données, vous devez donc émettre celui approprié pour chaque base de données pris en charge. Dans certaines bases de données, il n'y a pas non plus d'équivalent, par exemple Oracle n'autorise rien (les lecteurs ne bloquent jamais les écrivains et les écrivains ne bloquent jamais les lecteurs, donc pas besoin).

À mon humble avis, vous ne devriez pas du tout utiliser des composants tadotables - de toute façon, vous n'avez aucun moyen de spécifier un indice pour la requête générée - ce qui est beaucoup trop générique de toute façon.

Tu devrais aussi être TRÈS Attention à utiliser Nolock. Cela signifie lire non engagé, aka lectures sales. Vous contournez la protection des transactions, et à moins que vous n'ayez une très bonne raison de le contourner, vous ne devriez pas - le gain de performances peut ne pas valoir la perte d'intégrité des données et de cohérence.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top