我有一个 ASP.Net 3.5 Web 应用程序。网站和 SQL-Server 都托管在same server
.
整个系统以Numbers/Data为基础,用户需要将import
海量数据(如使用excel电子表格)输入系统,系统需要显示计算出来的数字on screen
并reports
为用户生成。
目前,在此服务器上运行一个 Import Server 应用程序,将数据插入/更新到raw data tables
,然后计算数据并将其插入/更新到post-processed
表中。所有这些过程都涉及one thread
(可能在一个存储过程中)。
这种设计的缺点是:导入appcosts
占用大量系统资源,需要一个long time
运行。它locked
是表格(例如 TRANSACTION)并影响了用户在网站上的操作。此外,计算出的数据难以追踪,容易误算。
我试图View
在系统中创建一个临时表()来按需处理数据,而不是将其后处理到计算表中。但我发现处理时间(查看和 SQL 存储过程execution time
)太长而无法接受(5 分钟或更长时间,某些查询,例如每天join...between
的apportion
年度数据需要最多的处理时间)。
希望有经验的人能给我一些建议(或一般策略),关于如何在各个方面改进系统的设计/实现,谢谢。
所有方面包括:多服务器、DBMS、服务器应用程序、Web 服务、SQL Server 优化、SQL 组件、整个系统设计和架构等。