问题标签 [compiled-query]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linq-to-sql - 在 Linq to SQL 中,如何防止已编译的查询重新编译
我正在使用编译查询。正如预期的那样,它们第一次编译需要额外的时间,但是我还注意到它们在大约 30 分钟没有被调用后重新编译。
是否可以控制查询何时重新编译或完全阻止它们重新编译?
仅供参考:我注意到的性能差异的一个示例是,我的一个查询在未编译时需要 6 秒,而在编译时则不到 10 秒,因此如果我可以控制或阻止查询重新编译,将会产生巨大的差异。
任何帮助将不胜感激。
asp.net - 实体框架大型查询 - 拆分为已编译的子查询?
我有一个 ASP .NET Web 表单应用程序,它收集信息以最终计算出汽车保险报价的保费。
我有大约 10 个屏幕来填充我们的根 CarRisk 对象,它具有诸如 CarRisk.Proposer、CarRisk.AdditionalDrivers 和 CarRisk.CarRiskehicle 之类的属性。
无论如何,当我进入报价摘要屏幕(总结在前几页中输入的数据)时,我遇到了问题。由于每个驱动程序都可以有索赔/定罪/医疗条件,并且这些条件中的每一个都与 claimType/convictionType 等有另一种关系,因此查询非常大。
我正在设法使用 CompiledQuery 将所有报价屏幕急切加载到摘要中,但是当我到达摘要时,EF 在尝试急切加载 CarRisk 时失败,因为它有 53 个包含。如果我尝试使用编译查询,查询甚至不会编译更不用说运行,它似乎只是导致 IIS 挂起!我有一种感觉,当我上次使用较少的包含(可能是 25 个)执行此操作时,我收到一个关于查询中使用的表过多的 SQL 服务器错误。我尝试将编译查询的结果合并到一个 carRisk 中,但在尝试设置类似 CarRisk.CarRiskVehicle = carRiskCarRiskVehicleCompiledQuery.CarRiskVehicle 的内容时出现错误,但出现错误“EntityCollection 已被初始化。
所以我已经恢复到延迟加载,但是速度慢了很多,而且客户对性能下降感到不满。我试过在 LazyLoading 时关闭 ChangeTracking,但不能说这是一个巨大的改进。
关于我应该做什么的任何建议/想法?
我将向您展示以下包含的内容,以便您查看
ent.CarRisks
.net - Linq2Sql“成员访问类型不合法”异常
我有一个带有编译查询的静态类,我想重用一些子查询。所以我将一个公共部分提取到一个静态属性中,然后在多个查询中引用它:
这编译得很好,但在运行时我得到
System.InvalidOperationException:“UserAccount”的成员访问“System.String IdentityName”在“System.Linq.IQueryable`1[UserAccount] 类型上不合法。
在这种情况下也不例外
为什么?任何解决方法?
c# - LINQ:何时使用编译查询?
我想要一些专家的建议。我以前使用过编译查询,但对于这种特殊情况,我不确定它是否合适。
这是一种搜索表单,其中查询会发生变化,并且取决于正在搜索的内容。
现在,如果有人填写搜索框,我想通过在查询中添加另一个Where
语句来扩展查询:
所以我的问题是,它是否返回所有结果 where LocationID == 123
,然后检查结果是否searchString
匹配?或者它实际上是在扩展已编译的查询?
如果是前者(我怀疑是),是否应该废弃CompiledQuery
并创建一个扩展查询的方法,然后将其作为列表返回?
此外,使用的最佳实践是什么CompiledQuery
,是否有什么时候应该使用它们的指南?
注意:我在带有Linq to SQL的ASP.NET网站中使用上述内容。不确定这是否有任何区别。
谢谢
entity-framework - 删除记录实体框架
我收到一个例外:
无法更新 EntitySet 'Session',因为它有一个 DefiningQuery 并且元素中不存在支持当前操作的元素。
在尝试从数据库表中删除一行时。SaveChanges()
调用存在的行时出现异常。下面是我的代码:
asp.net - Linq 编译查询和性能问题
我遇到了一些 linq 编译查询的性能问题。
我在这里附上了我的整个代码,请检查这是什么问题,它需要很长时间才能响应 20 秒左右。
主要是 foreach 循环耗时超过 17 秒。
请让我知道如何编译此查询。
提前致谢。
c# - 将 Linq2SQL 简单查询转换为 CompiledQueries 以提高应用程序性能
我正在编写适用于 Windows Phone (SDK 7.1) 的 Silverlight 应用程序,并在LongListSelector
适用于 Windows Phone 的 Silverlight 工具包的控件中显示来自 CompactSQL DB 的数据。
一旦列表长到大约 150 个项目,该应用程序真的会减慢加载数据的速度,在页面之间导航和动画无法显示(我知道使用后台线程将有助于释放 UI 线程用于动画)。
我目前有三个经常使用的查询——每次更新 LongListSelector 中的数据或页面为 NavigatedTo 时。我已经转换MoviesByTitle
成 a CompiledQuery
,这有很大帮助,所以我希望对我的其他两个查询(groupedMovies
和LongListSelector.ItemSource
type List<Group<Movie>>
)做同样的事情,但是我似乎无法弄清楚正确的语法。
关于如何使这些查询更有效的任何建议 - 通过使用CompiledQuery
或其他方式?
MoviesByTitle
在另一个名为Queries
MainPage 中的字段
在 MainPage 的 LoadDB() 方法中 - 在更新 DB 时,在 OnNavigatedTo 和其他几个地方调用此方法。
GroupHeader
是数据库中的一个属性Movies
和一个实体
班级Group
如下
c# - LINQ to SQL CompiledQuery 变慢
我正在尝试CompiledQuery
在 LINQ to SQL(WP7、C# 和 SQLCE 3.5 数据库)中使用 a,但在第一次使用后,查询速度会减慢到未编译的速度。我是新手,我确定我错过了一些明显的东西,但我不确定是什么。
作为上下文,我有一个相当大的术语数据库(大约 100,000 条记录),我想搜索这个数据库。在尝试了各种不同的方法和优化之后,我的查询仍然很慢,因此我考虑使用CompileQuery
.
下面是我在 LINQPad 中拼凑的一些代码:
当然,这被过度简化了,但你明白了。现在产生的结果是:
大家说的是第一次查询会比较慢,但是后面的查询会比较快。但是在我的情况下,情况恰恰相反:看起来第一个查询已编译,但后一个查询未编译。
我确定这很明显,但我不确定我错过了什么。任何指针?
提前谢谢了!
c# - 包含在已编译的查询中
我正在尝试识别和改进 WCF 服务中的一些热点。其中一个查询使用了大量的 Include 语句。SQL server 性能是阳光和棒棒糖,但 EF 性能真的很差。
将这个怪物分解为几个较小的查询已经有很大帮助,将一些查询转换为 CompiledQueries 也为整体执行时间创造了奇迹。
可悲的是,EF 似乎无法正确处理 CompiledQuery 中的 Include 语句,抛出异常说:
编译后的查询看起来像这样:
虽然原始看起来像(并且有效):
有小费吗?
c# - 将 Include() 重写为 linq 连接
由于(此时)在编译查询中使用 Include() 是不可能的,我正在尝试将它们重写为连接。但它似乎并不像我想要的那样工作。
说我有这个关系:
现在我用来获取描述如下:
我尝试将其重写为:
但是 OrderState 在我的结果集中仍然为空。我将如何解决这个问题(以编译查询可接受的方式)?