を生成します。すべてのものは、作業罰金ですが、テストで、私は次のコマンドでは、多くのデータベースを作成することがわかっアクセス: SignInManager.PasswordSignInAsync:SignInManager.PasswordSignInAsyncは、私はASP.NETのアイデンティティを使用して、自分のアプリケーションでは、多くのデータベース・アクセス
var result = await SignInManager.PasswordSignInAsync(user.UserName, model.Password, model.RememberMe, shouldLockout: true);
を性能試験を使用してアプリケーションをテストするとき、私は、この問題を確認します。テストは、ログイン要求が応答を取得するには膨大な時間が必要であることを示しています。 :次の図は、ログイン要求のための性能試験の結果を示しています。
それから私は、コマンドSignInManager.PasswordSignInAsyncが実行されたときに起こるかどうか確認するために、SQL Serverプロファイラを使用します。これは、データベースアクセスの多くが生成されていることを示しています。以下は、SQL Serverプロファイラから取得されます:
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[UserFullName] AS [UserFullName],
[Extent1].[UserId] AS [UserId],
[Extent1].[Online] AS [Online],
[Extent1].[LastOnlineDate] AS [LastOnlineDate],
[Extent1].[BrithDate] AS [BrithDate],
[Extent1].[Job] AS [Job],
[Extent1].[Gender] AS [Gender],
[Extent1].[CountryId] AS [CountryId],
[Extent1].[LivesIn] AS [LivesIn],
[Extent1].[RelationId] AS [RelationId],
[Extent1].[Religion] AS [Religion],
[Extent1].[FirstSchool] AS [FirstSchool],
[Extent1].[SecondSchool] AS [SecondSchool],
[Extent1].[University] AS [University],
[Extent1].[ContactInfo] AS [ContactInfo],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] AS [SecurityStamp],
[Extent1].[PhoneNumber] AS [PhoneNumber],
[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],
[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],
[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],
[Extent1].[LockoutEnabled] AS [LockoutEnabled],
[Extent1].[AccessFailedCount] AS [AccessFailedCount],
[Extent1].[UserName] AS [UserName]
FROM [dbo].[AspNetUsers] AS [Extent1]
WHERE ((UPPER([Extent1].[UserName])) = (UPPER(@p__linq__0))) OR ((UPPER([Extent1].[UserName]) IS NULL) AND (UPPER(@p__linq__0) IS NULL))',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'[email protected]'
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[LoginProvider] AS [LoginProvider],
[Extent1].[ProviderKey] AS [ProviderKey],
[Extent1].[UserId] AS [UserId]
FROM [dbo].[AspNetUserLogins] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[UserId] AS [UserId],
[Extent1].[RoleId] AS [RoleId]
FROM [dbo].[AspNetUserRoles] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[UserFullName] AS [UserFullName],
[Extent1].[UserId] AS [UserId],
[Extent1].[Online] AS [Online],
[Extent1].[LastOnlineDate] AS [LastOnlineDate],
[Extent1].[BrithDate] AS [BrithDate],
[Extent1].[Job] AS [Job],
[Extent1].[Gender] AS [Gender],
[Extent1].[CountryId] AS [CountryId],
[Extent1].[LivesIn] AS [LivesIn],
[Extent1].[RelationId] AS [RelationId],
[Extent1].[Religion] AS [Religion],
[Extent1].[FirstSchool] AS [FirstSchool],
[Extent1].[SecondSchool] AS [SecondSchool],
[Extent1].[University] AS [University],
[Extent1].[ContactInfo] AS [ContactInfo],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] AS [SecurityStamp],
[Extent1].[PhoneNumber] AS [PhoneNumber],
[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],
[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],
[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],
[Extent1].[LockoutEnabled] AS [LockoutEnabled],
[Extent1].[AccessFailedCount] AS [AccessFailedCount],
[Extent1].[UserName] AS [UserName]
FROM [dbo].[AspNetUsers] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[LoginProvider] AS [LoginProvider],
[Extent1].[ProviderKey] AS [ProviderKey],
[Extent1].[UserId] AS [UserId]
FROM [dbo].[AspNetUserLogins] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[UserId] AS [UserId],
[Extent1].[RoleId] AS [RoleId]
FROM [dbo].[AspNetUserRoles] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[UserFullName] AS [UserFullName],
[Extent1].[UserId] AS [UserId],
[Extent1].[Online] AS [Online],
[Extent1].[LastOnlineDate] AS [LastOnlineDate],
[Extent1].[BrithDate] AS [BrithDate],
[Extent1].[Job] AS [Job],
[Extent1].[Gender] AS [Gender],
[Extent1].[CountryId] AS [CountryId],
[Extent1].[LivesIn] AS [LivesIn],
[Extent1].[RelationId] AS [RelationId],
[Extent1].[Religion] AS [Religion],
[Extent1].[FirstSchool] AS [FirstSchool],
[Extent1].[SecondSchool] AS [SecondSchool],
[Extent1].[University] AS [University],
[Extent1].[ContactInfo] AS [ContactInfo],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] AS [SecurityStamp],
[Extent1].[PhoneNumber] AS [PhoneNumber],
[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],
[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],
[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],
[Extent1].[LockoutEnabled] AS [LockoutEnabled],
[Extent1].[AccessFailedCount] AS [AccessFailedCount],
[Extent1].[UserName] AS [UserName]
FROM [dbo].[AspNetUsers] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[LoginProvider] AS [LoginProvider],
[Extent1].[ProviderKey] AS [ProviderKey],
[Extent1].[UserId] AS [UserId]
FROM [dbo].[AspNetUserLogins] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[UserId] AS [UserId],
[Extent1].[RoleId] AS [RoleId]
FROM [dbo].[AspNetUserRoles] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT TOP (1)
[Extent1].[Id] AS [Id],
[Extent1].[UserFullName] AS [UserFullName],
[Extent1].[UserId] AS [UserId],
[Extent1].[Online] AS [Online],
[Extent1].[LastOnlineDate] AS [LastOnlineDate],
[Extent1].[BrithDate] AS [BrithDate],
[Extent1].[Job] AS [Job],
[Extent1].[Gender] AS [Gender],
[Extent1].[CountryId] AS [CountryId],
[Extent1].[LivesIn] AS [LivesIn],
[Extent1].[RelationId] AS [RelationId],
[Extent1].[Religion] AS [Religion],
[Extent1].[FirstSchool] AS [FirstSchool],
[Extent1].[SecondSchool] AS [SecondSchool],
[Extent1].[University] AS [University],
[Extent1].[ContactInfo] AS [ContactInfo],
[Extent1].[Email] AS [Email],
[Extent1].[EmailConfirmed] AS [EmailConfirmed],
[Extent1].[PasswordHash] AS [PasswordHash],
[Extent1].[SecurityStamp] AS [SecurityStamp],
[Extent1].[PhoneNumber] AS [PhoneNumber],
[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],
[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],
[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],
[Extent1].[LockoutEnabled] AS [LockoutEnabled],
[Extent1].[AccessFailedCount] AS [AccessFailedCount],
[Extent1].[UserName] AS [UserName]
FROM [dbo].[AspNetUsers] AS [Extent1]
WHERE [Extent1].[Id] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
exec sp_executesql N'SELECT
[Extent1].[Id] AS [Id],
[Extent1].[UserId] AS [UserId],
[Extent1].[ClaimType] AS [ClaimType],
[Extent1].[ClaimValue] AS [ClaimValue]
FROM [dbo].[AspNetUserClaims] AS [Extent1]
WHERE [Extent1].[UserId] = @p__linq__0',N'@p__linq__0 int',@p__linq__0=2103
上記のクエリは、結果のほんの一部です。同じクエリを複数回実行されます。これは通常のケースであるかの問題がありますか?
それが解決することができるか、問題がある場合。
クエリは本当に速いですが、私の場合、私はそれがページ要求 –
あたり1秒の遅延を引き起こすことを(ほとんど同じクエリが一度再び繰り返される)ので、それらの多くを持っていますあなたは私達にあなたのC#のコードの多くを示すことができますか?私はあなたのコマンドが使用されている方法を理解することはできません。たぶん、あなたは繰り返し実行中のスレッドを持っているが、それでも私は、私はあなたがより多くのいくつかのコードを記述する必要がありjambonickに同意詳細 – jambonick
を必要としています。 –