【问题标题】:About Data Import, Post-Process and Data Present. System Process Improvement [closed]关于数据导入、后处理和数据呈现。系统流程改进[关闭]
【发布时间】:2012-07-03 18:45:19
【问题描述】:

我有一个 ASP.Net 3.5 Web 应用程序。网站和 SQL-Server 都托管在 same server

整个系统是基于Numbers/Data的,用户需要import海量数据到系统(例如使用excel电子表格),系统需要显示on screen的计算数字以及生成reports用户。

目前,此服务器上运行着一个导入服务器应用程序,将数据插入/更新到raw data tables,然后计算数据并将其插入/更新到post-processed 表中。所有这些过程都在one thread 中涉及(可以在一个存储过程中)。

这种设计的缺点是:导入appcosts会占用大量系统资源并占用long time运行。它locked 表(例如 TRANSACTION)并影响了用户在网站上的操作。而且计算出来的数据难以追踪,容易计算错误。

我尝试在系统中创建一个临时表 (View) 来按需处理数据,而不是将其后处理到计算表中。但是我发现处理时间(查看和 SQL 存储过程execution time)太长而无法被接受(5 分钟或更长时间,一些查询例如join...betweenapportion 每年的数据到每天需要最多的处理时间)。

希望有经验的人能给我一些建议(或一般策略),如何从各个方面改进系统的设计/实现,谢谢。

所有方面包括:多服务器、DBMS、服务器应用程序、Web Service、SQL Server 优化、SQL 组件、整个系统设计和架构等。

【问题讨论】:

  • 你的架构和使用的逻辑是什么?西斯?或其他或特定程序
  • @Aghilas Yakoub 这是一个 n 层应用程序,在 Data-Access-Layer 中使用 ADO.net。所有数据读/写都依赖于 StoredProcedures。它使用的是 SQL Server 2008。我们不擅长数据库优化。
  • 尝试使用 SSIS。速度快,适合数据导入

标签: asp.net .net sql-server performance import


【解决方案1】:

所以如果我没看错的话,你以前是这样的:

  • 具有原始数据导入 + 后处理的系统。两组表格。
  • Web 应用程序在性能方面受到影响,因为原始数据的后处理非常耗时,并且在 Web 应用程序读取数据的后处理表中引入了锁。

因此,您现在正在尝试以下设置:

  • 原始数据被导入到一组表中。
  • 您在视图中“按需”进行后处理,而不是后处理和存储处理后的数据。
  • 这也没有提供令人满意的性能

尝试使用原始设置的替代版本怎么样?您可以尝试这样的解决方案:

  • 制作三组组表格
  • 一套用于原始数据导入
  • 一组用于存储原始数据后处理的结果
  • 还有一组用于存储已处理数据的副本。

最后一组表格将用于生成报告。使用此设置,“数据导入”将包括三个步骤:

  • 原始数据导入
  • 后处理
  • 将处理后的数据更新为“实时”表。

据推测,将处理后的数据从一组表复制到另一组表可以合理地提高性能。因此,数据导入对 Web 应用程序的影响可以得到控制,因为后处理不会直接接触“实时”表。

【讨论】:

  • 嗨伙计,你遇到过这个问题吗?这是您真正的解决方案吗?谢谢。
【解决方案2】:

你可以试试下面的方法

1st直接将数据导入原始数据表。

然后在代码后面而不是在存储过程中进行计算,这需要大量时间在代码后面执行此操作将节省数据库资源。

完成计算后,将计算值插入计算表中。

尽量使用后台代码而不是数据库,只有在后台代码无法完成的情况下才使用数据库。

【讨论】:

  • 您的意思是一个单独的应用程序会进行计算并插入到计算表中,还是我当前的导入服务器应用程序会这样做。如果代码隐藏进程由我当前的当前服务器应用程序处理,它可能比在 StoredProc 中运行慢 5~10 倍。不确定你的机制。
  • 好的,如果你不能在后面的代码中进行计算,那么唯一的方法就是存储过程优化。或者让我知道更多关于事情是如何完成的。
【解决方案3】:

我看到加入需要一段时间你能确认你有外键吗?另外,如果您向我展示 SQL,我可能会有所帮助。

【讨论】:

  • 是的,表索引和foreign都设置好了。它不是纯连接,select 中涉及大量计算。我认为重写存储过程不会有太大帮助,是否可以将任何高级机制或组件引入SQL Server以提高view的加载速度?
猜你喜欢
  • 2011-02-19
  • 2012-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多