Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我是否应将合并金额保留在单独的表中?_C#_Sql Server_Database - Fatal编程技术网

C# 我是否应将合并金额保留在单独的表中?

C# 我是否应将合并金额保留在单独的表中?,c#,sql-server,database,C#,Sql Server,Database,我正在开发一个C应用程序,处理从关系数据库SQL Server检索的数百万条记录。我的主表位置包含以下列: PositionID、PortfolioCode、SecurityAccount、保管人、数量 用户必须能够检索一些预定义的列集合合并的数量,例如{PortfolioCode,SecurityAccount},{Porfolio,保管人} 首先,我只是在应用程序代码中使用了动态查询,但随着数据库的增长,查询速度变慢了 我想知道添加另一个包含合并数量的表格是否是一个好主意。我想这取决于这些群

我正在开发一个C应用程序,处理从关系数据库SQL Server检索的数百万条记录。我的主表位置包含以下列:

PositionID、PortfolioCode、SecurityAccount、保管人、数量

用户必须能够检索一些预定义的列集合合并的数量,例如{PortfolioCode,SecurityAccount},{Porfolio,保管人}

首先,我只是在应用程序代码中使用了动态查询,但随着数据库的增长,查询速度变慢了

我想知道添加另一个包含合并数量的表格是否是一个好主意。我想这取决于这些群体的分布


此外,如何将源表与合并表同步?

在SQL Server中,您可以使用索引视图来执行此操作,它会使聚合与基础表保持同步,但会降低对基础表的插入速度:

如果只是一个表中分组行的计数,那么标准索引在这里就不够了吗?关于你的结构的更多信息会很有用


编辑:而且,听起来有点像您正在使用OLTP服务器作为报告服务器?如果是这样,您是否考虑过数据仓库和ETL流程是否合适?

在SQL Server中,您可以使用索引视图来实现这一点,这样可以使聚合与基础表保持同步,但会降低对基础表的插入速度:

如果只是一个表中分组行的计数,那么标准索引在这里就不够了吗?关于你的结构的更多信息会很有用


编辑:而且,听起来有点像您正在使用OLTP服务器作为报告服务器?如果是这样的话,您是否考虑过数据仓库和ETL流程是否合适?

在项目的这一点上,我不能介绍其他技术。索引视图应该可以做到这一点。谢谢还有一件事:如果我需要索引视图与其他表关联,该怎么办?@rlesias,不确定您所说的与其他表关联是什么意思-但如果您指的是跨表连接并为其结果编制索引,那么您可以这样做。次要的困难是:您无法在线构建索引,因此在创建表时可能会阻塞表。部署可能需要停机,索引视图是绑定到模式的,因此如果需要更改基础表的结构,您需要删除它并重新创建它。我有一个Comments表,它在单个位置的上下文中没有意义,但应该与GroupedPositions相关。如果GroupedPositions是一个视图,我无法在注释和GroupedPositions之间创建关系,可以吗?不能为视图创建引用完整性。对于普通视图和索引视图都是如此。如果你是这个意思的话,你可以加入这个观点?从MyTable中选择列作为T内部连接MyView作为T上的V。GroupId=V。Id将起作用。让我知道你想实现什么目标吗我不能在这个项目中引入其他技术。索引视图应该可以做到这一点。谢谢还有一件事:如果我需要索引视图与其他表关联,该怎么办?@rlesias,不确定您所说的与其他表关联是什么意思-但如果您指的是跨表连接并为其结果编制索引,那么您可以这样做。次要的困难是:您无法在线构建索引,因此在创建表时可能会阻塞表。部署可能需要停机,索引视图是绑定到模式的,因此如果需要更改基础表的结构,您需要删除它并重新创建它。我有一个Comments表,它在单个位置的上下文中没有意义,但应该与GroupedPositions相关。如果GroupedPositions是一个视图,我无法在注释和GroupedPositions之间创建关系,可以吗?不能为视图创建引用完整性。对于普通视图和索引视图都是如此。如果你是这个意思的话,你可以加入这个观点?从MyTable中选择列作为T内部连接MyView作为T上的V。GroupId=V。Id将起作用。让我知道你想实现什么目标吗