我正在对一个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是否使用索引?我希望使用索引查找和密钥查找可以更快地运行它吗?
任何人都可以推荐任何性能改进吗?
答案 0 :(得分:0)
我无法回答“BCP查询输出使用索引”的问题 - 表面上似乎确实如此,但是它是否创建了最佳执行计划我没有找到答案。
但是,我确实通过改变我的方法找到了性能提升:
在不到2分钟内完成。