Sql server Power BI和SQL Server索引

Sql server Power BI和SQL Server索引,sql-server,indexing,powerbi,Sql Server,Indexing,Powerbi,我做了一些研究,但没有得到关于我的问题的有价值的信息 我正在从事一个数据仓库项目,我客户的一个要求是使用power bi pro进行数据可视化 我不清楚的是,power bi在其数据模型中获取数据时,是否会受益于SQL Server中开发的索引结构 提前感谢您提供有关此主题的建议/提示。这在某种程度上取决于您是否使用实时连接 在数据源为视图、查询或存储过程的导入模式下使用PowerBI时,现有索引可能会加快数据加载速度 当连接到上述源时,它们还将在实时模式下使用,并且在直接连接到多个表时可能会使

我做了一些研究,但没有得到关于我的问题的有价值的信息

我正在从事一个数据仓库项目,我客户的一个要求是使用power bi pro进行数据可视化

我不清楚的是,power bi在其数据模型中获取数据时,是否会受益于SQL Server中开发的索引结构


提前感谢您提供有关此主题的建议/提示。

这在某种程度上取决于您是否使用实时连接

在数据源为视图、查询或存储过程的导入模式下使用PowerBI时,现有索引可能会加快数据加载速度

当连接到上述源时,它们还将在实时模式下使用,并且在直接连接到多个表时可能会使用

正如注释所述,如果您使用导入模式将整个表引入PowerBI,那么现有索引将不会对您带来好处,PBI使用的内部SSAS实例是完全不同的


需要注意的是,在处理此处所述的网关时,可以使用columnstore索引来绕过某些数据大小限制,但这与您的问题没有直接关系。

索引有助于提高服务器端的检索速度。答案取决于你的具体情况。如果您在Power BI查询编辑器中执行大量数据转换和mashup,那么索引只在需要从SQL Server中选择行的步骤时才有帮助。在Power BI端上进行处理的步骤(例如与Excel文件中的数据合并或添加自定义列或某些形式的替换值)中,它没有帮助。然而,由于您提到的是数据仓库而不是简单的数据库,我将假设您几乎没有在Power BI端上进行任何转换,而是依赖服务器端来完成繁重的工作。在这种情况下,如果从战略角度考虑,索引肯定会有助于加快速度

导入模式和连接实时模式之间存在一些差异

导入模式:

数据导入可以针对任何数据源类型使用,它可以组合来自不同源的数据。当前Power BI服务限制发布的文件大小为1 GB

使用导入时,数据存储在Power BI文件/服务中。因此,不需要在数据源端设置权限(加载的服务帐户就足够了),您可以公开或与组织外的人共享数据。另一方面,所有数据都存储在Power BI上。支持实现完整的DAX表达式和完整的Power查询转换

连接实时模式:

现场连接存在更多限制。它并不适用于所有数据源。可以看到当前列表,但它不能合并来自多个源的数据

您也只能选择一个数据源/数据库。您不能再合并来自多个数据源的数据了。若您连接到SQL数据库,则仍然可以在该数据库中的对象以及度量值和计算列之间创建逻辑关系。当您连接到SQL Server Analysis Services时,您仅限于报表布局,甚至无法生成计算列,而当前只能创建度量值。使用实时连接时,用户必须能够访问基础数据源。这意味着您不能在组织外或公开共享。不支持实现完整的DAX表达式,只支持报告级度量,要了解更多关于报告级度量的信息,请观看Patrick的这段精彩视频,并且没有Power Query转换


您可以了解更多信息:

如果您使用PowerBI导入整个表,那么表上的索引是不相关的。如果要使用自定义查询或视图导入转换或筛选的数据,则将一如既往地使用索引。一旦数据导入PowerBI(即不使用DirectQuery),源的索引就不再相关;它将完全以自己处理的数据形式工作。我对PowerBI只是稍微熟悉一点,所以并没有提交真正的答案。但是,如果您不只是拉入完整的表,那么在拉入数据时,它肯定会受益于SQL索引。如果从视图或其他结构化查询导入,则索引将提供好处。PowerBI导入数据后,SQL Server索引就不存在了。这还取决于通常通过查询从表中读取的数据量;如果查询通常提取表中很大一部分数据,SQL的查询优化器将忽略索引,并执行完整表(或聚集索引)扫描。