用于CPU利用率和代码重构的查询优化器制造技术

技术编号:20290123 阅读:27 留言:0更新日期:2019-02-10 20:32
提供了一种用于提高程序代码中的查询效率的方法、系统、设备和计算机程序产品。在程序代码中检测到多个查询。通过其评估程序代码中的查询的惰性被扩展。查询被分解为多个查询部件。包括多个规则的规则集被应用于查询部件,以生成对多个查询的功能上等效的查询集,该功能上等效的查询集相对于多个查询更高效地评估。

【技术实现步骤摘要】
【国外来华专利技术】用于CPU利用率和代码重构的查询优化器
技术介绍
存在各种类型的软件开发应用以供软件开发者使用来开发软件。集成开发环境(IDE)是一种在一个套装中包含多个开发工具的软件开发应用。IDE可以包括诸如源代码编辑器(“代码编辑器”)、建立自动化工具、以及调试器等工具。IDE的示例包括由加拿大渥太华的Eclipse基金会开发的EclipseTM、由加拿大温哥华的ActiveState开发的ActiveStateKomodoTM、由捷克共和国的JetBrains开发的IntelliJIDEA、由加利福尼亚州红木城的甲骨文公司开发的OracleJDeveloperTM、由甲骨文公司开发的NetBeans、由加利福尼亚州旧金山的Codenvy开发的CodenvyTM、由加利福尼亚州库比蒂诺的苹果公司开发的以及由华盛顿州雷德蒙的微软公司开发的许多现代编程语言本身支持对数据的查询。例如,由微软公司开发的Microsoft.NETFramework支持LINQ(语言集成查询)形式的查询,而由加利福尼亚州红木城的甲骨文公司开发的支持流形式的查询。编程语言中对查询的本机支持使开发者能够专注于其程序代码的逻辑部分,本文档来自技高网...

【技术保护点】
1.一种在包括至少一个处理器的计算设备中使用的方法,包括:检测程序代码中的多个查询;扩展在所述程序代码中评估所述查询所使用的惰性;以及将包括多个规则的规则集应用于检测到的所述查询,以生成功能上等效的查询集,所述功能上等效的查询集相对于检测到的所述查询更高效地评估。

【技术特征摘要】
【国外来华专利技术】2016.06.06 US 15/174,6881.一种在包括至少一个处理器的计算设备中使用的方法,包括:检测程序代码中的多个查询;扩展在所述程序代码中评估所述查询所使用的惰性;以及将包括多个规则的规则集应用于检测到的所述查询,以生成功能上等效的查询集,所述功能上等效的查询集相对于检测到的所述查询更高效地评估。2.根据权利要求1的方法,其中所述检测包括:在代码编辑器中检测所述程序代码中的所述查询;并且所述方法进一步包括:为所述代码编辑器呈现选项,以自动重构所述程序代码,以使用所述功能上等效的查询集替换所述多个查询。3.根据权利要求1所述的方法,其中所述检测包括:在编译期间检测所述程序代码中的所述查询;并且所述方法进一步包括:基于所述程序代码的版本在所述编译器中生成编译代码,其中所述多个查询被所述功能上等效的查询集替换。4.根据权利要求1所述的方法,其中所述扩展在所述程序代码中评估所述查询所使用的惰性包括:检测所述查询中评估可扩展的一个或多个查询;以及形成包括所述评估可扩展的一个或多个查询的单个查询表达式。5.根据权利要求1所述的方法,其中应用规则集包括:确定多个查询组件之间的公共逻辑上下文;以及将所述规则集中对应于所述公共逻辑上下文的规则应用于所述多个查询组件。6.根据权利要求1所述的方法,其中生成的所述功能上等效的查询集通过以下中的至少一项来相对于所述多个查询更高效地评估:与所述多个查询的查询结果相比,生成消耗更少的存储空间的查询结果;与所述多个查询相比,花费更少的时间来执行;与所述多个查询相比,消耗更少的网络带宽;或与所述多个查询相比,消耗更少的处理功率。7.根据权利要求1所述的方法,其中所述应用规则集包括:评估所述规则集中的多个规则组合到查询组件的应用,以生成多个候选的功能上等效的查询集;以及选择所述多个候选的功能上等效的查询集中的具有最大效率增益的候选的功能上等效的查询集,作为生成的所述功能上等效的查询集...

【专利技术属性】
技术研发人员:E·艾瓦尼G·塔米尔A·埃鲁克E·科勒
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1