J'essaie de comprendre ce que sont les curseurs et à quoi ils servent en tant que développeur.Que sont les curseurs SQL et comment puis-je les appliquer à une table de base de données simple?
Veuillez expliquer ce qu'ils sont et quel avantage ils apportent en utilisant dire Entity Framework avec une collection IQueryable<T>
.
Aussi, imaginez que j'ai une table appelée Personne. Comment appliquer des curseurs à cette table?
create table Person
(
ID int primary key,
Name nvarchar,
LastName nvarchar
);
En général, les curseurs dans la base de données SQL Server sont des ** Bad Idea ™ **. Vous utilisez une logique et des processus ligne par ligne dans un système conçu pour le traitement basé sur un ensemble. Toute logique ligne par ligne est normalement mieux gérée dans l'application appelante. – JNK
@JNK - Le traitement ligne par ligne est (en règle générale) pire que le traitement à tout niveau. Si ** vous devez ** utiliser une logique rangée par ligne, vous serez peut-être mieux de l'utiliser au niveau du serveur (en termes de ressources totales). La distribution du traitement aux clients est en effet le plus souvent souhaitable, mais il s'agit d'une décision de stratégie générale qui n'a rien à voir avec les curseurs et dépend de la façon dont les clients se connectent à la base de données. ils doivent faire et quel genre de verrouillage ils exigent. – Unreason
@Unreason - Comme la plupart des choses cela dépend de l'application, mais je ne peux pas penser à de nombreux scénarios où il est préférable de verrouiller une table pour tous les clients pendant qu'un curseur s'exécute plutôt que de fournir des données à une application. reste des clients. – JNK