草庐IT

非常规

全部标签

c# - EF6 SQLQuery 非常慢,但数据库非常快

我遇到了一个性能问题,我们已经做了很多分析,但还是卡住了。希望你们中的一个人以前见过这个。我正在调用DbContext.Database.SqlQuery数据库部分需要3毫秒,但完整执行需要9秒。我们使用EFProfiler发现了这一点,我们还在SQLServerManagementStudio中直接运行SQL,它是即时的。我们还使用了glimpse,但无法深入了解该过程。结果类型不是模型中的实体,因此我们确信不涉及跟踪。我们还知道这不是针对上下文执行的第一个查询,因此我们不会为此查询支付EF启动成本。我们尝试了.net分析器,但在运行时遇到了很多问题,因此我们决定只问一下。关于如何深

c# - Base Controller ASP.NET MVC 3 中的这个 Custom Principal 是不是非常低效?

尽管我已经在这里待了一段时间,但这是我关于SO的第一个问题,所以请多多包涵。我正在使用ASP.NETMVC3并且我想创建一个自定义的Principal这样我就可以存储比标准更多的关于当前用户的信息因此不必经常去数据库。这是我追求的相当标准的东西。我们先说电子邮件地址和用户ID。我决定将对象存储在缓存中,因为我知道不建议将其存储在session中。我也不想一直转换User对象,所以我想覆盖Controller中的User对象。所以我可以直接访问User.UserId并得到一些保证。所以我创建了一个这样的自定义主体:publicclassMyPrincipal:IPrincipal{pub

c# - SQLDataReader 如何处理非常大的查询?

实际上我不确定标题是否准确描述了问题,但我希望它足够接近。我有一些代码从数据库表中执行SELECT,我知道这将导致大约150万行被选中。每行中的数据都不大——每行可能20个字节。但这仍然是30MB的数据。每行包含一个客户编号,我需要对每个客户做一些事情。我的代码看起来像这样:SqlConnectionconn=newSqlConnection(connString);SqlCommandcommand=newSqlCommand("SELECT...myselectgoeshere",conn);using(conn){conn.Open();using(SqlDataReaderre

c# - 如何在 C# 中解析非常大的 XML 文件?

这个问题在这里已经有了答案:ReadingXmlwithXmlReaderinC#(7个答案)关闭6年前。我正在处理dblpXML文件。我实际上想解析dblp.xml文件,并想提取有用的信息以供我在某些项目中进一步处理。那个XML文件非常大(1.1GB),我什至无法打开这个文件。如果您有用于dblp.xml的C#解析器,请指导我,或者您可以就此或我们如何解析巨大的xml文件指导我。

C# Regex 性能非常慢

我是正则表达式主题的新手。我想用以下正则表达式解析日志文件:(?(.*?))[|](?(.*?))[|](?(.*?))[|](?[1-3])[|](?(.*?))[|][|][|](?(.*?))[|][|](?(.*?))[|](?(.*))日志行如下所示:2001.07.1309:40:20|1|SomeSection|3|======Somelogmessage::Type:test=sdfsdf|||.\SomeFile.cpp||60|-1带有appr的日志文件。3000行需要很长时间来解析它。你有一些加快性能的提示吗?谢谢...更新:我使用正则表达式是因为我使用了不同的日

c# - 没有行开始和结束终止符的 Regex.Replace 有一些非常奇怪的效果......这里发生了什么?

在回答这个问题时C#RegexReplaceand*有人提出问题存在的原因。播放时我产生了以下代码:strings=Regex.Replace(".A.","\w*","B");Console.Write(s);这有输出:B.BB.B我知道0长度字符串在.字符前后匹配,但为什么A被2Bs替换。我可以将B.BBB.B理解为替换A或B.B.B任一侧的零长度字符串但实际结果让我感到困惑-任何帮助表示赞赏。或者正如AakashM所说:为什么Regex.Matches("A","\w*").Count等于2,而不是1或3? 最佳答案 \w后面

c# - System.Timers.Timer 非常不准确

我编写了一个程序,它通过Parallel.ForEach使用所有可用的核心。ForEach的列表包含约1000个对象,每个对象的计算需要一些时间(约10秒)。在这种情况下,我设置了一个这样的计时器:timer=newSystem.Timers.Timer();timer.Elapsed+=TimerHandler;timer.Interval=15000;timer.Enabled=true;privatevoidTimerHandler(objectsource,ElapsedEventArgse){Console.WriteLine(DateTime.Now+":Timerfire

MyBatisPlus之条件查询(常规查询、范围查询、模糊查询、null值处理等)

MyBatisPlus之条件查询MyBatisPlus之条件查询1、设置查询条件1.1常规格式1.2链式编程格式1.3lambda格式11.4lambda格式22、组合查询条件2.1并且2.2或者3、条件查询null值判定3.1封装User模型的查询条件3.2测试类3.3null值处理3.3.1条件参数控制3.3.2条件参数控制(链式编程)4、查询投影4.1查询结果中包含模型类中部分属性4.2查询结果包含模型类中未定义的属性4.3原生mysql查询4.4完整测试样例5、查询条件设置(范围匹配、模糊匹配等)MyBatisPlus之条件查询1、设置查询条件1.1常规格式@Testpublicvoi

c# - 在我的应用程序中,EF 4.1 代码优先执行查询比常规 EF 慢 3 倍

我有一个宠物项目(一个简单的论坛应用程序),我用它来测试所有最新的.NET技术,最近我开始玩弄EntityFrameworkCode-First。这个应用程序已经有一个现有的EF解决方案,其中一个EDMX文件映射到一个现有的数据库,我的所有实体都是自动生成的。到目前为止,该解决方案效果很好。注意:请记住,对EF4.1的这一更改纯粹是为了学习。如果你想知道我的需求是什么导致我升级,没有任何需求。我只是想好玩。我复制了该项目并进行了升级,因此我将拥有相同的项目但具有不同的EntityFramework实现。在新项目中,我使用了一个名为EntityFrameworkPowerTools的Vi

c# - 确定一个类是否实现了一个非常具体的接口(interface)

关于这个主题有很多问题,但我有一个稍微修改过的版本。我们有以下代码:interfaceIFoo{}interfaceIBar:IFoo{}classFoo:IFoo{}classBar:IBar{}boolImplements_IFoo(Typetype){/*???*/}现在,故事的转折点是:Implements_IFoo方法应该只在Type仅实现IFoo而不是从IFoo派生的任何接口(interface)时返回true。为了说明这里是这种方法的一些例子:Implements_IFoo(typeof(Foo));//ShouldreturntrueImplements_IFoo(ty