SQL 服务器更适合内存密集型操作还是 CPU 密集型操作?

SQL 服务器更适合内存密集型操作还是 CPU 密集型操作?

我的数据库里没有太多数据,但这些数据的呈现方式可能非常多。目前,这是通过基于不同表中的配置的“巨大视图”来实现的,因此您基本上会得到一个巨大的结果(与源数据相比),涵盖所有可能的输出,并且从这个视图中会进行过滤(类似于select * from myHugeView where customerId = @p1 and orderDate = @p2

即使使用正确的索引,其性能也不够好。我猜这是因为每次选择视图时它都必须创建所有可能的组合。

所以问题是,如果所有这些可能性都存储在表中,并且每个插入/更新/删除语句上都有触发器,而这些触发器可能会影响 myHugeView 的结果,那么 SQL Server 的性能是否会更好?或者保持现在的状态是否会有更好的性能?

总的来说,sql server 更适合内存密集型操作还是 CPU 密集型操作?

这是在 ms sql server 2014 上,但到今年年底它将升级到 2017。

答案1

这听起来像是获取数据的错误方法。

毕竟,视图只不过是发出一些底层查询而创建的临时表。这意味着您应该能够直接向原始表发出查询,而不会引发“巨大”视图的性能问题。

另一种方法是创建多个特定但较小的视图,每个视图都包含适合您查询的数据。

无论如何,回答你的问题,你需要收集一些性能指标并进行分析。

相关内容