我有一个 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 组件、整个系统设计和架构等。