.net 在流程之间划分资源-站点获取';将csv文件大量上载到sql server时速度较慢

.net 在流程之间划分资源-站点获取';将csv文件大量上载到sql server时速度较慢,.net,sql-server,server,hosting,database-performance,.net,Sql Server,Server,Hosting,Database Performance,我知道这不是一个非常具体的问题,但我还是希望问,因为这是我不太了解的问题 我们有一个.net桌面应用程序,它每天在服务器上作为schedules服务运行,从csv文件上传大约8000万条记录。当然,在上传数据之后,我们有很多算法。整个过程大约需要7小时 作为服务器设置,我们有一个带有sql server 2008 R2的专用窗口服务器。因此,我们有我们的网站和我们的应用程序(数据上传)在那里运行但当应用程序运行时,我们的网站会变慢,有时会失去响应能力我完全理解原因。但我不知道出路 更清楚地说,我

我知道这不是一个非常具体的问题,但我还是希望问,因为这是我不太了解的问题

我们有一个.net桌面应用程序,它每天在服务器上作为schedules服务运行,从csv文件上传大约8000万条记录。当然,在上传数据之后,我们有很多算法。整个过程大约需要7小时

作为服务器设置,我们有一个带有sql server 2008 R2的专用窗口服务器。因此,我们有我们的网站和我们的应用程序(数据上传)在那里运行但当应用程序运行时,我们的网站会变慢,有时会失去响应能力我完全理解原因。但我不知道出路

更清楚地说,我们有两个数据库。在上传过程中,站点正在使用第二个数据库。。上传后,切换数据库,以便应用程序使用最新数据

在我心目中,我能想到以下几点。。只是想法,我甚至不知道是否可能

  • 也许会有两台机器。一个用于数据上传,一个用于服务站点。但不知何故,两者都可以使用相同的sql server。我希望通过这种结构,桌面应用程序使用的资源不会减慢网站的速度,因为它有自己的资源可供使用
  • 2.)也许我可以限制应用程序可以使用的cpu/内存

    注意:很少有查询会变得非常复杂并且运行时间很长。有时长达30分钟。
    使用IIS作为web服务器。

    我将尝试逐一解决您的两点:

    两台机器选项

    这可能是一个可行的解决方案,但您需要记住,您需要一个额外的windows和一个额外的SQL Server许可证,可能还需要额外的硬件,我不确定这是否是最划算的选择

    限制资源

    如果您有SQLServerEnterpriseEdition,也可以这样做,请查看有关如何设置该版本的更多信息

    SQL Server资源调控器是一项无法用于管理的功能 SQL Server工作负载和系统资源消耗。资源管理器 允许您指定CPU、物理IO和内存的数量限制 传入的应用程序请求可以使用的内存

    如果您没有企业版,那么这不是一个选项

    可能还有第三个选项,标准版也有

    多个实例

    您可以在同一个框上安装两个SQL实例,并为它们分配不同的内存限制


    如果IO是您的瓶颈,您也可以为每个实例选择不同的数据/日志驱动器。

    我将尝试逐一解决您的两点:

    两台机器选项

    这可能是一个可行的解决方案,但您需要记住,您需要一个额外的windows和一个额外的SQL Server许可证,可能还需要额外的硬件,我不确定这是否是最划算的选择

    限制资源

    如果您有SQLServerEnterpriseEdition,也可以这样做,请查看有关如何设置该版本的更多信息

    SQL Server资源调控器是一项无法用于管理的功能 SQL Server工作负载和系统资源消耗。资源管理器 允许您指定CPU、物理IO和内存的数量限制 传入的应用程序请求可以使用的内存

    如果您没有企业版,那么这不是一个选项

    可能还有第三个选项,标准版也有

    多个实例

    您可以在同一个框上安装两个SQL实例,并为它们分配不同的内存限制


    如果IO是您的瓶颈,您还可以为每个实例选择不同的数据/日志驱动器。

    我肯定会选择双机解决方案。三台机器就更好了。将SQL Server与web服务器放在同一个物理机箱上远非最佳做法。@TabAlleman如果可以的话,我想了解更多。这是怎么回事。在不同的计算机上安装sql server是否会减慢数据上载过程?已经7个小时了。你在用什么版本?我肯定会用两台机器的解决方案。三台机器就更好了。将SQL Server与web服务器放在同一个物理机箱上远非最佳做法。@TabAlleman如果可以的话,我想了解更多。这是怎么回事。在不同的计算机上安装sql server是否会减慢数据上载过程?已经7个小时了。你在看什么版本?我们有标准版。我不明白为什么在第一个选项中我们需要两个许可证?我的桌面应用程序和网站使用同一个数据库,所以我不应该将它们保存在一个sql server实例中吗?事实上,我一直在想,我们只能在一台机器上安装sql server(带有数据上传应用程序),在另一台机器上安装网站。假设在不同的机器上连接到sql server不会使站点速度降低很多。在您的问题中,您明确表示“为了更清楚,我们有两个数据库。在上载过程中,站点使用的是第二个数据库”,我们有标准版。我不明白为什么在第一个选项中我们需要两个许可证?我的桌面应用程序和网站使用同一个数据库,所以我不应该将它们保存在一个sql server实例中吗?事实上,我一直在想,我们只能在一台机器上安装sql server(带有数据上传应用程序),在另一台机器上安装网站。假设在不同的机器上连接到sql server不会使站点速度降低很多。在您的问题中,您明确表示“为了更清楚,我们有两个数据库。在上载过程中,站点使用的是第二个数据库”