我的项目中有以下查询,它消耗大量时间来执行。我正在尝试对其进行优化,但无法成功实现。任何建议将不胜感激。
const result = yield client.mutate({
/* tslint:disable:max-line-length */
mutation: gql`
mutation licensemutation($distributor: String, $licenseType: String, $duration: String, $userId: String) {
addLicenseCode(distributor: $distributor, licenseType: $licenseType, duration: $duration, userId: $userId) {
code,
distributor,
duration,
oneTimeUsage,
validFrom,
validTo
}
}
`,
/* tslint:enable */
variables: {
userId: username,
distributor: distributor,
licenseType: 'Premium',
},
});
答案 0 :(得分:1)
Include()
得到翻译后的联接,而您在代码中使用了太多的联接。您可以借助数据库引擎执行计划来优化索引。
我建议您不要一次使用全部Include
。相反,您中断查询并逐个应用Include
。我的意思是您应用Include, get the result and then apply the
包含again and so..By having more than two
包含`会影响性能。
答案 1 :(得分:0)
我在查询中没有发现任何性能问题。
由于您具有singleOrDefault,因此我将着眼于优化数据库调用。如果您有可用的分析工具,则在SQL Server Management Studio中选择工具> Sql Server Profiler。获取对SQL Server Management Studio的查询,标记查询并选择“在数据库引擎优化顾问中分析查询”