我一直在使用Windows-Native sqlcmd
在我本地的SQL Server数据库上运行脚本.我有一组脚本文件,将创建数据库,添加表格和索引,填充域数据,添加存储过程等.运行脚本是完成执行单个sqlcmd -i <file>.sql
每个文件.这样做效果很好,而且速度足够快.
在切换到新的GO实现sqlcmd
之后,数据库构建时间慢了好几倍.
我找不到任何方法从sqlcmd
获取计时类型的统计信息,以确定是连接问题、连接池问题还是其他问题.如果我将多个文件作为额外的-i <file.sql>
个选项传递,我可以看到什么看起来像是改进,这对我来说是GO命令的启动或初始数据库连接建立的问题.
我做了一个测试,我把我的10个SQL文件,我运行他们作为10个单独的sqlcmd
次执行,也作为一个sqlcmd
次执行,10个文件作为单独的-i
个输入文件.单独的命令花了20秒,多功能一体机花了4秒.因此,这似乎是一个启动开销或连接开销的问题.
正如@siggeannen所建议的,我使用我的AD凭据和一个直接数据库用户测试了连接.AD凭据比直接数据库连接慢得多,这意味着这是我在场景中看到的慢的根源.
我正在寻找任何建议或 idea ,无论是解决问题还是进一步排除故障.是否可以采取任何措施来加快AD身份验证?