Sql性能更多列或更多表用于报告

时间:2013-08-31 18:26:02

标签: sql-server performance multiple-columns

我有一个传递给我的sql数据库,它作为一个访问应用程序启动。从那以后它进化了很多。以前的开发人员在表上存储了额外的列而不是拆分表,我们开始报告这些数据(超过1米的行)并且性能开始拖累一些查询。

一张表适用于公司,包含姓名,参考,地址详情,财务详情,保险等。

我认为我们应该将表格分开,并tblcompanytbladdresstblfinance等。因为我们的报告允许用户报告他们想要的任何字段。我认为如果用户想要报告地址详细信息,内部加入tbladdress会更好,对于财务,保险等也是如此。此外,一些公司可能没有任何财务细节,因此有很多空的要点字段?

此外,它不仅仅是这个表,而且其他表连接到此表,其他表也采用相同的格式。刚给这一张表作为例子

所以我的问题是它会提高性能吗?我认为设计明智是要做的事情,但想要每个人的提示,技巧和意见。

1 个答案:

答案 0 :(得分:0)

不确定您想要提高性能。当然,规范化可能会改善收集和维护数据。但非规范化倾向于改善报告。因此,诀窍是拥有两个数据库,每个数据库对应一个需求,并通过挖掘操作数据库来填充报告。如果您不想承担设置报告数据库的成本,则所有这些都取决于数据库上的负载以及您希望获取命中的位置。

您可以说,报告会减慢运营交易,反之亦然。

如果您希望获得两种要求的最佳性能,那么就可以使用两个数据库,或者您有所妥协...