我正在处理三件式数据路径:客户端应用程序,主机集成服务器,数据库服务器。客户端应用程序(MS Mashup Engine)生成的查询通过MS SQL Server传递到旧的IBM iSeries DB后端。
我遇到客户端正在生成
等查询的问题select * from x where numericValue = 1.46510+003
我在SQL Server上检查这些执行计划,它们会导致完整的数据加载,并在SQL Server(充当主机集成服务器)上进行比较。
相比之下,人类生成的查询
select * from x where numericValue = 1465.1
导致无扫描和性能提高两个数量级。
我尝试过使用客户端应用程序强制它生成类似人工生成的查询,但我没有运气。
我不确定是否可以通过播放列数据类型来按照SQL Server中生成查询计划的方式。即使用显式定义的数据类型公开后端DB上的视图。或以其他方式强制生成查询计划?
有什么想法吗?
答案 0 :(得分:1)
我不确定是否可以通过处理列数据类型来完善SQL Server中查询计划的生成方式。即在后端数据库上公开具有明确定义的数据类型的视图。还是以其他方式强制生成查询计划?
否,使用以下所有选项均不能回答问题:
TBH,随着后端性能的提高和可用的前端缓存,这已成为越来越少的问题。
希望有帮助, -亚历克斯T。