You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OPENROWSET读取Excel文件异常:查询无限运行无响应

问题描述

执行以下OPENROWSET读取Excel文件的SQL语句时,出现无限期执行的情况——文件数据量极小(正常应耗时不到1秒),但查询一直无法完成,取消操作也需要很长时间:

SELECT *
INTO #TempRawData
FROM OPENROWSET
(
'Microsoft.ACE.OLEDB.16.0',
--'Excel 12.0; Database={LOOP(CurrentValueXArray|0)}; HDR=NO; IMEX=1',
'Excel 12.0; Database=C:\root\DATA\Filename.xlsx; HDR=NO; IMEX=1',
'SELECT * FROM [Housekeeping$]'
)

已尝试重启机器、重启SQL Server服务、更换文件及存储路径,均无效。通过sp_who2查看会话状态为RUNNABLE,命令为EXECUTE。此前在其他服务器也出现过该问题,改为本地执行后今早再次复现。

解决思路
  • 检查ACE驱动与SQL Server的位数匹配:确保安装的Microsoft.ACE.OLEDB.16.0驱动位数(32/64位)和SQL Server实例的位数完全一致。64位SQL必须搭配64位ACE驱动,32位同理,混合位数会导致驱动调用异常,引发无响应。
  • 排查文件锁定或权限问题:
    • 确认Excel文件没有被其他进程(比如Excel客户端、杀毒软件、备份工具)锁定,可通过资源监视器的「关联的句柄」搜索文件名,查看是否有进程占用。
    • 检查SQL Server服务账户是否对文件所在路径(C:\root\DATA\)有读取权限——即使本地执行,SQL服务账户可能不是当前登录用户,权限不足会导致驱动无限等待资源。
  • 调整连接字符串参数:
    • 尝试移除IMEX=1参数,或改为IMEX=0,IMEX模式在某些特殊数据格式下可能引发驱动内部循环。
    • 替换Excel 12.0为Excel 12.0 Xml,明确指定处理xlsx格式,避免驱动格式识别混淆。
    • 添加ReadOnly=1参数,强制驱动以只读模式打开文件,减少资源竞争:
      'Excel 12.0 Xml; Database=C:\root\DATA\Filename.xlsx; HDR=NO; IMEX=1; ReadOnly=1'
      
  • 检查OLEDB驱动的健康状态:
    • 卸载并重新安装最新版的Microsoft Access Database Engine(包含ACE驱动),避免驱动文件损坏或版本兼容问题。
    • 执行以下语句,确保Ad Hoc Distributed Queries配置正确(该选项禁用会导致OPENROWSET异常):
      sp_configure 'show advanced options', 1; 
      RECONFIGURE; 
      sp_configure 'Ad Hoc Distributed Queries', 1; 
      RECONFIGURE;
      
  • 排查SQL Server的线程调度问题:
    • 会话状态为RUNNABLE说明线程正在等待CPU资源,检查服务器当前CPU负载,是否有其他高负载进程抢占资源;若CPU正常,尝试执行DBCC FREEPROCCACHE和DBCC DROPCLEANBUFFERS清理缓存后重试。
  • 尝试替代导入方案:
    • 若ACE驱动问题无法快速解决,改用SSIS包导入Excel数据——SSIS对Excel的处理更稳定,且有更详细的错误日志。
    • 使用PowerShell脚本读取Excel文件后插入到临时表,绕开OLEDB驱动的问题:
      $excelPath = "C:\root\DATA\Filename.xlsx"
      $sqlServer = "."
      $dbName = "YourDatabase"
      $data = Import-Excel -Path $excelPath -WorksheetName "Housekeeping" -NoHeader
      $data | Write-SqlTableData -ServerInstance $sqlServer -DatabaseName $dbName -SchemaName dbo -TableName #TempRawData -Force
      

内容的提问来源于stack exchange,提问作者Femmer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 22:34:59