在我的代码中,我曾经使用var myRequire = require.context(
"./template", // search inside this directory
false, // false excludes sub-directories
/\.jade$/ // use this regex to filter files
);
var table = myRequire("./table.jade");
加载相关实体,希望我更符合c#异步指南。
await FindAsync
它运行缓慢,在sql server profiler中速度很慢,查询文本在SSMS中很快。花了5秒钟才拿到这条线。
替代方案:
var activeTemplate = await exec.DbContext
.FormTemplates.FindAsync(exec.Form.ActiveTemplateId);
快得多。 无论如何,问题似乎不是参数嗅探,因为快速和慢速查询中的读取次数是相同的。
一个可能无关紧要的一点是,fetched对象包含一个包含~1MB文本的字符串属性。应用程序是asp.net mvc,在与sql server相同的计算机上运行,使用(local)连接。
观察到的缓慢是什么原因?
编辑:在@ jbl的评论之后,我做了一些实验:
var activeTemplate = exec.Form.ActiveTemplate;
答案 0 :(得分:5)
从服务器读取大型列时,异步方法可能会出现性能问题(例如varbinary(MAX),varchar(MAX),nvarchar(MAX)或XML)。
你可以找到 rducom 的答案来解释异步方法问题here