我必须在 .NET 中创建一个自定义工具来迁移数据并清理现有系统。它还做一些其他的事情。
我实际上有一个大约 2000 个用户的表,然后对于每个用户,他们可以拥有从 0 到 9,000 个“客户帐户”的任何内容
然后对于这些用户中的每一个及其帐户,他们将需要将菜单系统插入到该用户和帐户的另一个表中。
所以我必须遍历应用程序中创建的所有这些对象,并执行插入语句。问题是,性能很糟糕。完成插入需要 3.5 小时,每个插入需要大约 3 秒才能完成......非常慢!
通过插入,我确保我不插入重复数据/确保没有任何现有的重复数据,因此我的插入语句:
IF NOT EXISTS (SELECT ID FROM UserWebAccessLevel WHERE UserID = '{0}' AND CustomerID = '{1}' AND MenuID = {2}) BEGIN INSERT INTO [WebAccessLevel] (UserID, CustomerID, MenuID) VALUES ('{0}', '{1}', {2}) END
为每个用户、他们的客户以及在应用程序逻辑中找到的每个菜单项执行此操作....是的,需要很长时间。
我想知道如何更好地提高插入语句的性能?
谢谢