【问题标题】:SQL statement in Access is causing speed issues on Windows 10Access 中的 SQL 语句导致 Windows 10 出现速度问题
【发布时间】:2022-01-08 06:30:22
【问题描述】:

我有一个调用 vb.net 程序来打印 DevExpress 报告的 vb6 程序。这些程序多年来一直运行良好,直到去年在某些电脑(这些是全新的电脑)上升级到 Windows 10 时。通常打印报告大约需要 2 秒,但在某些新电脑(不是全部)上,当尝试用 dataAdapter 填充数据表/数据读取器时,程序会挂起。其他人认为这是 sql 语句中的内容,即使我们在所有 Windows 7 电脑和大约 5 台 Windows 10 电脑上的问题为零。这只发生在某些 Windows 10 电脑上。

这个 sql 语句完全可以清理吗? SwatKey 是最后唯一的变量:

              "SELECT WeightCert, [SwatLog].[SwatDate], TareDate, SaleCode, " &
                "Species, Qual, SaleDesc, Trucker, TruckNo, TruckState, " &
                "TruckLic, TrlState, TrlLic, TruckType, Comments, TareLoad, " &
                "ScaleLoad, LoadNo, Logger, LogMethod, Block, Val(Gross) as GrossWt, " &
                "Val(Tare) as TareWt, Weight, PrintAvg, Brand, Commodity, SortCode, " &
                "Deck, UserInfo1, UserInfo2, EmergencyLevel, ReprintCount, " &
                "Reason, LocationName, Addr1, Addr2, OwnerName, LoggerName," &
                "Contract, Weighmaster, TT, Reprint, TareoutBarcode, PrintTare, TruckName, " &
                "ManualWeight, DeputyName, CertStatus, ReplacedCert  " &
          "FROM Swatlog INNER JOIN tblTempCert " &
            "ON [SwatLog].[SwatDate] = [tblTempCert].[SwatDate] " &
         "WHERE [tblTempCert].[SwatDate] = #" & SwatKey & "#"

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    首先,确保您在字段SwatDate 上有索引。

    接下来,尝试过滤另一个表:

    "WHERE [swatLog].[SwatDate] = #" & SwatKey & "#"
    

    或两者兼有:

    "WHERE [tblTempCert].[SwatDate] = #" & SwatKey & "# And [swatLog].[SwatDate] = #" & SwatKey & "#"
    

    【讨论】:

    • 谢谢。更改第一个建议中的 Where 语句似乎已经成功了。仍然不确定为什么?但它再次快速运行。
    • Gustav,你能帮忙解释一下为什么这似乎有效吗?谢谢
    • 好问题。我说不出来。这取决于您的数据。这个建议纯粹是凭直觉和丰富的经验:当某事(突然)不起作用或工作异常时,尝试做“某事”。有时,只是来回改变事物就会产生影响。
    • 古斯塔夫,很高兴知道。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2016-02-06
    相关资源
    最近更新 更多