sql-server – 如果数据库只有一个插入,那么索引每个可能的列组合是不是很糟糕?

我正在开发一个需要大量选择查询的报告系统,但它基于一个只填充一次的数据库.数据库管理系统是Microsoft sql Server 2017.可能有更好的方法来设计这样的系统,但让我们理论上接近这个.

从理论上讲:

>如果我们有一个非常大的数据库(几个表上150M行)
>我们可以假设数据库只会填充一次.

可以为每个可能的列组合编制索引会对选择查询产生负面的性能影响吗?

解决方法

是的,它将影响初始计划编译时间,因为优化器将有许多额外的访问路径来考虑数据.

由于您使用的是sql Server 2017,加载一次并运行报告,为什么不使用聚簇列存储索引呢?

这似乎是您需要索引每个可能的列组合的理想解决方案.

Columnstore indexes – Overview

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...