【发布时间】:2015-05-14 20:52:56
【问题描述】:
对于我们的一个应用程序,我们在多个表中有大量数据,每次用户执行某项操作时,都会将新记录插入这些表中。有一个报告屏幕,我们必须从这些表格中进行计算并显示这些表格的总数
例如:假设有两个父表Employee和Attendance 员工表有 100,000 条记录,而出勤表有每天员工进出大楼时的数据。出勤表中的记录为一年多 200 万。我需要计算每个员工的出勤率(总计)并将其显示在屏幕上以显示所有 100,000 条记录,并根据员工姓名进行分页。计算需要太多时间,并且会导致数据库 CPU 峰值。
为了避免运行时计算总数,我计划有一个单独的表,其中包含每个员工的总计算值,只需查询该表并在需要时显示它。但问题是前几年的数据不会改变,但对于本年度,只要员工每天记录出勤,就会生成数据。每当记录本年度的新出勤率时,对于我来说,让每个员工的 Total 实时更新表格的最佳选择是什么。
我曾想过使用触发器,但触发器是同步的,当我查询时它会影响我的报告应用程序的性能,否则会影响插入父表的性能。
如果有更好的方法来实时更新我的总值表而不影响插入或更新父表的性能,请告诉我
【问题讨论】:
标签: sql sql-server database sql-server-2008