在没有索引视图的情况下,在 SQL Server 中创建复杂视图的最佳方法是什么?



我有一个简单的客户、设置和客户设置结构。

大约有 60 个设置,全部使用 UNIQUEIDENTIFIER 作为键,因为这些设置可以在多个系统之间共享并且可以按任何顺序创建,因此 Id 不能保证相同(

每个客户都可以具有这些设置,但不一定是任何或全部设置。

我正在尝试找到列出所有客户和所有设置的最快(性能明智(方法。

我尝试使用函数、表值函数、连接、交叉应用...而且它只是非常慢。 仅对于下面的示例,在我的本地 SQL 服务器上列出 2,000 个用户及其设置需要 35 秒。 在现实生活中,我有超过2.5Mn。

FN和TVF对于单个用户来说非常快 - 但是一旦达到多行,它就会停止。

有没有技巧可以写一个快速版本?

注意:我很高兴在视图中对设置 GUID 进行硬编码,因为它们很少更改。

注意:数据可能会非常频繁地更改,因此索引视图(我认为(已退出。

示例数据库表、索引、视图、数据和选择 * 我正在努力实现

重要说明- 这是显示结构的数据示例,而不是完整的数据库。

真正的结构有索引吗?而不是 20 个关节,您只需将 SettingValue 行透视到列中即可

最新更新