【发布时间】:2013-04-24 20:45:56
【问题描述】:
我支持在 SQL Server 上运行并在 .net c# 上开发的应用程序。该应用程序从本地系统 (ERP) 获取其信息,并在白天分几批处理(大多数情况下,它只会分批处理)。然后它以图表和报告的形式呈现给用户(该应用程序基本上是一个报告的应用程序;几乎没有在其上进行数据输入,而是在公司的本地系统上)。
在实施该应用程序的几家大公司中,随着一些重要表中的历史记录开始堆积,处理时间开始大幅增长,从每个批处理过程的 30 分钟增加到 6 或 7 小时。软件中的其他一些任务也遭受了性能下降。
每天处理的记录数量(在批处理中)或多或少保持不变(每天在 500.000 到 1'000.000 条记录之间,分布在多个表中)。
这是在 SQL Server 上运行的系统所期望的吗?使用 Oracle 作为数据库是否会消除或至少减少此类问题?或者您认为我们应该专注于数据库和应用程序设计,而不考虑使用的数据库?
【问题讨论】:
-
"这是运行在 SQL Server 上的系统所期望的吗?"不会。“使用 Oracle 作为数据库是否会消除或至少减少此类问题?”没有。
-
SQL Server 是为这种类型的数据结构而构建的。我愿意花钱说明您的 .NET 应用程序在没有过滤子句的情况下获得了太多信息。使用分析器找出您正在运行的查询类型。
-
首先要关注的是准确找出为什么进程运行缓慢;在您知道这一点之前,您无法决定如何解决问题,并且讨论“解决方案”只是猜测。
-
你需要先弄清楚问题出在哪里,然后解决它。使用分析器找出瓶颈所在。如果您的应用程序代码有问题,那么调整您的数据库将无济于事。同样,如果您的数据库设计不好,重新构建您的应用程序就是浪费时间。
-
这只是表述与your other question 不同,因此是一个值得商榷的问题。
标签: .net sql-server oracle