KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have to record web service calling in database. At beginning, I used code first EF to define Entity class and generate database script. The database part is very simple, just only one table. There is a primary key: Id, and other columns are string ,datetime and float. 16 columns totally. Then I ran the performance analysis of VS2012. the report shows RecordUsageEF consume half time of whole calling, that is ridiculous. I tried MergeOption.NoTracking option and Pre-Generate Views( How to: Pre-Generate Views to Improve Query Performance ). But they didn't help to much. Then I tried Ado.net. I put sql script in source code just for testing. calling 2 methods together to compare the performance. public static void RecordUsage(HttpContext httpContext, XmlWDCRecipe processedRecipe, string orgRecipe, string userName, ActionEnum action, bool trueview, string pageId) { RecordUsageEF(httpContext, processedRecipe, orgRecipe, userName, action, trueview, pageId); RecordUsageADO(httpContext, processedRecipe, orgRecipe, userName, action, trueview, pageId); } The result surprised me: Updated using static EF context improves some: Inside RecordUsageEF: Updated Inside RecordUsageEF -- static context Updated Just realized the default Performance is CPU sampling, here is the result when choosing Instrumentation <
Tags (comma-separated)
Save Edits
Cancel