我有一个庞大的数据库,例如:
我的客户每天在称为“销售”的缓冲事实表中加载5亿条记录用于销售。我必须以追加/更新方式将此销售处理到我的多维数据集,但是即使有186 GB的RAM,这也会破坏性能。
我已经尝试过在维度表上创建索引,这虽然有所帮助,但并不过分。
我的客户说他们希望每6个月增加15%的销售数据...
有一种聪明的方法可以加载这些数据而无需等待太多我们的时间?
我正在使用SQL-Server 2016。
谢谢!
答案 0 :(得分:0)
您可以调整sql server 2016的列存储索引功能。 列存储索引是用于存储和查询大型数据仓库事实表的标准。该索引使用基于列的数据存储和查询处理,从而使数据仓库中的查询性能比传统的面向行的存储高出10倍。在未压缩的数据大小上,您还可以获得高达数据压缩10倍的增益。从SQL Server 2016(13.x)开始,列存储索引可启用运营分析:在事务性工作负载上运行高性能实时分析的功能。
答案 1 :(得分:0)
如果您使用SAN存储数据库。您可能希望研究诸如Condusiv V-locity之类的软件,以消除许多发送到数据库引擎和从数据库引擎接收的I / O。
我可能建议创建一个单独的数据库引擎,将事务日志发送到单独的服务器,并每15分钟将事务日志应用于数据库一次,以便您创建分析而不使用实时数据。同样,对生产数据库的大量写入操作也不会影响您创建复杂的查询的能力,该查询会不时地在报表服务器上锁定表或行。