【发布时间】:2013-07-05 09:48:44
【问题描述】:
我们使用SQL Server 并拥有Winforms 应用程序。在我们的产品中,有时单笔交易记录超过 50000 条,我们会遇到性能问题。
当我们有大量数据时,我们通常会在多个数据库调用中这样做。因此,在我们的一个导入功能中,我们更新了 1000 行中的服务器。因此,如果我们有 5000 条记录,那么在处理它们时(在 for 循环中)我们更新前 1000 行,然后继续处理,直到我们得到新的 1000 行要更新。这表现更好,但老实说,就性能而言,这并不是我感觉最好的。
但是我们在其他导入/导出功能中看到,与 1000 行相比,每 5000 行更新数据库会产生良好的结果。因此,我们面临很多困惑,而且代码看起来也不相同应用程序。
谁能告诉我是什么导致了这种情况发生。您没有示例数据、数据库架构等,是的,我同意。但是在使用数据库时是否应该注意/考虑任何场景?为什么不同数量的记录会给我们带来好的结果,有什么我们忽略的吗?我不是数据库方面的冠军,更多的是.Net 中的编程人员。很高兴听到您的建议。
不确定这是否有帮助,我们的数据通常包含员工详细信息,例如工资单信息、个人详细信息、应计福利、薪酬等。数据来自 Excel,而且我们在内部流程中生成大量数据。如果您需要更多信息,请与我们联系。谢谢!!
【问题讨论】:
-
您必须添加更多信息。您是执行 1000 次单次更新还是使用一条语句更新 1000 行?还是在临时表中插入 1000 行,然后更新另一个表?总体而言,为了提高性能,请避免查询中的子选择和多个 OR,改进键和索引,禁用触发器,或者尽可能进行批量插入
标签: sql sql-server database performance records