本地数据库中Excel的SQL SELECT太慢

时间:2014-02-17 21:47:58

标签: sql sql-server excel select

我有一个Excel文件,在一列中我有数千个SELECT COUNT(*)语句要在SQL Server上执行。我想在A列中执行所有SELECT语句,并在B列中填充结果

A                                                      B
-------------------------------------------------------------------------
SELECT COUNT(*) FROM MYTABLE WHERE <condition 1>       5
SELECT COUNT(*) FROM MYTABLE WHERE <condition 2>       0
SELECT COUNT(*) FROM MYTABLE WHERE <condition 3>       2

我设法编写了以下代码(对ADO来说是新手)并且它可以正常运行,但是在2.5秒内执行每个SELECT COUNT(*)非常慢! SQL数据库是本地的。我有什么办法可以显着提高速度,因为我有超过500,000个这样的查询要运行。或者,我正在考虑将查询从Excel导入到SQL表并运行SQL脚本来执行类似的任务,但我没有SQL脚本的经验,因此希望修复我的VBA脚本。谢谢!

Set rsPubs = New ADODB.Recordset
With rsPubs
    .ActiveConnection = cnPubs
    Dim rng As Range
    Set rng = ActiveSheet.Range("A100:A500")
    For Each cell In rng
        sqlstmt = cell.Value
        .Open sqlstmt
        cell.Offset(0, 1).Value = .Fields(0).Value
        .Close
    Next
End With

0 个答案:

没有答案