我正在开发一个C#应用程序,它使用从关系数据库(SQL Server)检索的数百万条记录。我的主表“职位”包含以下列:
PositionID,PortfolioCode,SecurityAccount,Custodian,Quantity
用户必须能够检索由某些预定义列集合合并的数量,例如{PortfolioCode,SecurityAccount},{Porfolio,Custodian}
首先,我只是在我的应用程序代码中使用了动态查询,但随着数据库的增长,查询变慢了。
我想知道添加另一个包含合并数量的表是否是个好主意。我想这取决于这些群体的分布情况?
此外,如何将源表与统一表同步?
答案 0 :(得分:5)
在SQL Server中,您可以使用索引视图来执行此操作,它会使聚合与基础表保持同步,但会降低对基础表的插入速度:
http://technet.microsoft.com/en-us/library/ms191432.aspx
如果它纯粹是单个表中分组行的计数,那么标准索引是不够的呢?有关您的结构的更多信息将非常有用。
编辑:此外,它听起来有点像您使用OLTP服务器作为报告服务器?如果是这样,您是否考虑过数据仓库和ETL过程是否合适?