SQL计划方差科学记数法

问题描述 投票:2回答:1

我正在处理一个三件式数据路径:客户端应用程序,主机集成服务器,数据库服务器。客户端应用程序(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服务器中生成查询计划的方式。即使用显式定义的数据类型公开后端DB上的视图。或以其他方式强制生成查询计划?

有什么想法吗?

sql-server powerbi powerquery db2-400
1个回答
1
投票

我不确定是否可以通过播放列数据类型来按照SQL服务器中生成查询计划的方式。即使用显式定义的数据类型公开后端DB上的视图。或以其他方式强制生成查询计划?

不,答案是否使用以下所有内容:

  • 在传递到电源查询/电源bi之前的投射类型没有任何改变
  • 为DB2OLEDB或IBMDASQL设置的适配器属性(f.ex.十进制为数字= True;派生参数= True;等等...)无效
  • 在数据上创建存储过程需要在幂查询中进行参数化,这很好,但不与ui集成。即 - 使用参数字段而不是列过滤器不干净。

TBH,随着后端性能的提高和前端缓存的推出,这已成为越来越少的问题。

希望它有所帮助,-Alex T.

© www.soinside.com 2019 - 2024. All rights reserved.