BCP查询使用索引吗?

时间:2015-03-13 08:47:58

标签: sql-server bcp

我正在对一个112米行的表运行BCP以选择大约1.6米

表定义有25 x nvarchar(10),20 x INT列和2 Bit列。它还有一个非持久计算列,它是nvarch(14)将2个int列转换为字符串。它在计算列上有一个聚簇索引,在INT列上有一个其他索引(在where子句中使用)

bcp "select * from db.dbo.table where src = 1002" queryout F:/path/1002_1638762.dat -n -U ausername -P *********

通过性能判断 - 20分钟 - 看起来查询正在运行扫描,这个结论也得到以下事实的支持:当输出文件达到其最终大小时,读取会持续一段时间。

bcp是否使用索引?我希望使用索引查找和密钥查找可以更快地运行它吗?

任何人都可以推荐任何性能改进吗?

1 个答案:

答案 0 :(得分:0)

我无法回答“BCP查询输出使用索引”的问题 - 表面上似乎确实如此,但是它是否创建了最佳执行计划我没有找到答案。

但是,我确实通过改变我的方法找到了性能提升:

  • 将行选入新表
  • bcp out the new table
  • 删除新表

在不到2分钟内完成。

相关问题