我们有一个Web服务,可将数据泵入3个数据库表和一个Web应用程序,该应用程序在SQL Server + ASP.Net环境中以聚合格式读取该数据。
有很多数据到达数据库表,并且从这些表中读取了大量数据并且速度很快,系统开始出现故障。
表格上有索引,其中一个是唯一的。其中一个表有数十亿条记录,占用几百GB的磁盘空间;另一个表是较小的表,只有几百万条记录。它每天都被清空。
我有哪些选项可以消除同时读取和写入多个数据库表的明显问题?
我对每一个优化技巧感兴趣,虽然我们已经尝试过我们遇到的每一个技巧。
我们无法安装SQL Server Enterprise版本以便能够使用分区和in-memory-optimized tables。
编辑: 该系统用于从成千上万的设备中收集健身追踪器数据,并在其仪表板上实时显示数千个数据。
答案 0 :(得分:3)
过于宽泛的要求和细节给出具体答案。但建议是设置第二个数据库并将日志传送到它。因此原始数据库将是“写入”,新数据库将是“读取”数据库。
缺点
临 - 可以删除“write”db上的一些索引,这会/可能会提高性能 - 然后,您可以在“读取”数据库中汇总表以提高查询性能
答案 1 :(得分:2)
这里有一些想法,有些想法比其他想法更复杂,它们的用处在很大程度上取决于问题中未完全描述的用法。免责声明:我不是DBA,但我在数据库项目上与一些优秀的人合作过。
这是我过去在我所参与的各种数据库项目中所做的事情的通用列表。数据库优化往往高度针对您的情况......这就是DBA有工作的原因。如果您的架构已经支持,那么一些“复杂”的答案可能很简单。