gpt4 book ai didi

sql-server - 数十亿行表的 Microsoft SQL Server 扩展

转载 作者:搜寻专家 更新时间:2023-10-30 23:26:36 25 4
gpt4 key购买 nike

召集所有 MSSQL 服务器专家!我目前正在从事一个涉及具有以下布局的表格的项目:

[DbNodeClosures]

  • [Id] BIGINT 主键标识不为空,

  • [ParentID] BIGINT NOT NULL,

  • [ChildID] BIGINT NOT NULL,

  • [深度] INT NOT NULL

这是一个用于存储父子关系的闭包表,目前有以下索引:

[IX_DbNodeClosures_ParentID] ON [dbo].[DbNodeClosures] ([ParentID])

[IX_DbNodeClosures_ChildID] ON [dbo].[DbNodeClosures] ([ChildID]) INCLUDE ([Depth], [ParentID])

[IX_DbNodeClosures_ParentID-ChildID] ON [dbo].[DbNodeClosures] ([ParentID], [ChildID]) INCLUDE ([Depth])

对该表的查询通常涉及使用父 ID 查询所有子 ID,反之亦然。此表中的行仅被插入或删除,从不更新。我们目前有这个工作,有 6 亿行,性能仍然非常好,但是我们即将进入一个迁移期,这个数字将超过 12 亿行,并且随着时间的推移,可能会增长到 30+ 十亿行。在 6 亿行时,包含索引的当前表在我们的 SQL 服务器上占用了大约 30 GB 的存储空间。

那么现在真正的问题是:

这个规模有多好?

查询性能会随着行数的增加而降低吗?

插入和删除性能会随着行数的增加而显着降低吗?

我一直在研究表分区(适用于 MSSQL server 2016+ 的所有版本)和 ColumnStore 索引等选项,但没有任何实际经验,也没有扩展 MSSQL 表的实际经验到数十亿行。 (是的,我们正在考虑向 NOSQL 的大规模转换,因为它具有扩展优势,但从开发成本的角度来看,这将非常昂贵)我已经看到其他人(纳斯达克)能够获得 Quintillions 的行,所以我认为这是可能的,我希望在这方面有经验的人可以提供一些见解,说明他们在这些级别上看到的 SQL Server 的性能和扩展性。感谢您的任何想法!

最佳答案

看起来像是 SQL Graph Database 的可能应用

FWIW 我们的一个生产系统中有更宽的表,其中包含数十亿行,并且运行良好。

关于sql-server - 数十亿行表的 Microsoft SQL Server 扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com