【问题标题】:Invalid object name 'TableName' exception appears randomly无效的对象名称'TableName'异常随机出现
【发布时间】:2016-09-01 06:43:08
【问题描述】:

我有一个导入 CSV 文件的 Windows 服务应用程序。在导入过程中,应用程序对数据库运行一系列查询。在压力测试期间,我们尝试导入包含 40k 条记录的 CSV。这意味着对数据库至少有 40k 次查询。通常查询运行良好,但有时应用程序会随机从 db“Invalid object name 'TableName'”中获取错误。

知道什么可能导致错误吗?我知道它不在查询中,因为查询大部分时间都成功执行。

这是我使用文本可视化器捕获的实际查询。这在 SSMS 中成功运行

SELECT c.MemberInternalKey, 
       c.ClubCardId, 
       c.RestrictionId, 
       c.ExpirationDate, 
       m.ExternalMemberKey, 
       m.BuyingUnitInternalKey, 
       b.ExternalBuyingUnit,  
       b.PostalCode, 
       b.Country, 
       b.Street1, 
       b.City, 
       b.HomePhone, 
       b.EmailAddress, 
       b.SendEmail, 
       m2.ExternalMemberKey as OldestExternalMemberKey, 
       m2.BirthDate, 
       m2.MobilePhoneNumber, 
       m2.WorkPhoneNumber, 
       m2.Gender 
FROM dbo.CRM_Clubcard c 
INNER JOIN dbo.CRM_Member m ON c.MemberInternalKey = m.MemberInternalKey 
INNER JOIN dbo.CRM_BuyingUnit b ON m.BuyingUnitInternalKey = b.BuyingUnitInternalKey 
INNER JOIN dbo.CRM_Member m2 ON m2.BuyingUnitInternalKey = m.BuyingUnitInternalKey 
WHERE c.ClubInternalKey = 2 
AND c.ClubCardId  = '1004303119' 
AND m2.IsMainMember = 1

【问题讨论】:

  • 执行这 40k 查询的时间范围是多少?
  • 你好丹尼尔。大约 2 分钟
  • 您是每次尝试导入相同的 40k 记录时都会出错,还是有时会出错?
  • 只是有时。当我们再次尝试导入相同的 40k 记录时,我们没有收到任何错误。它只是随机发生
  • 您是否尝试运行 Profiler 并查看发生了什么?

标签: c# sql-server invalid-object-name


【解决方案1】:

我已通过重新初始化数据库的每个方法调用/查询的连接字符串来解决此问题。运行分析器有很大帮助。

【讨论】:

  • 知道问题的根本原因是什么。
猜你喜欢
  • 2021-12-03
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
  • 2015-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多