J'utilise JMeter pour tester mon application Web. et mon cas de test est d'ajouter un enregistrement dans la base de données. puis j'ai mis le "nombre de thread utilisateur" à 20, cela signifie qu'il va simuler 20 utilisateurs travaillent en même temps. puis je lance le scénario de test. Mais finalement, j'ai trouvé que le système ne créait pas 20 enregistrements dans la base de données, mais créait simplement 13 enregistrements dans la base de données.Pourquoi n'a pas vu 10 enregistrements dans la base de données?
Je veux savoir pourquoi cela est arrivé? Est-ce possible parce que dans mon application web je n'ai pas ajouté de "synchronisé" devant la méthode d'ajout d'enregistrements? J'ai utilisé linq, Si deux utilisateurs postent une requête pour créer un enregistrement au serveur en même temps, que se passera-t-il? Juste créer un enregistrement ou peut créer avec succès deux enregistrements, ou inconnu?
Voici le code exemple pour créer un enregistrement dans la base de données:
public int SaveEventGroup(int id, Models.Entities.EventGroup e, Nullable<int> setpublish)
{
try
{
Entities.EventGroup db;
if (id == 0)
{
db = new Entities.EventGroup();
db.CreatedBy = e.CreatedBy;
db.CreateDatetime = DateTime.Now;
db.Status = true;
}
else
{
db = this.GetEventGroup(id);
}
db.NameCN = e.NameCN;
db.NameEN = e.NameEN;
db.NameZH = e.NameZH;
db.NamePT = e.NamePT;
db.DisplayOrder = GetGroupMaxDisplayOrder() + 1;
if (setpublish == null)
{
db.PublishStatus = false;
db.PublishDatetime = null;
db.UpdateDatetime = DateTime.Now;
db.UpdatedBy = e.UpdatedBy;
}
if (id == 0)
dataContext.AddToEventGroupSet(db);
dataContext.SaveChanges();
return db.Id;
}
catch (Exception ex)
{
log.Error(ex.Message, ex);
throw ex;
}
}
Pouvez-vous publier les instructions SQL exécutées lorsque les données sont insérées dans la base de données. –
Un autre message d'attente. Helloooo, MemoryLeak. Postez votre SQL! –
Non, je viens d'utiliser Linq, il n'y a pas de SQL! – MemoryLeak