首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQLCMD执行MS SQL Server (*.sql)脚本备份还原操作有什么问题?

使用SQLCMD执行MS SQL Server (*.sql)脚本备份还原操作有什么问题?
EN

Stack Overflow用户
提问于 2021-11-10 06:29:41
回答 1查看 51关注 0票数 0

我有一个6 6GB的*.sql脚本备份文件,当我加载到数据库时:

代码语言:javascript
复制
sqlcmd -S .\SQLEXPRESS -U SA -d testdbb -i whole_DB_backup.sql -o result.log

完成这个脚本需要几天的时间。相反,对于同一数据库的*.bak备份文件,从SQL Server Management Studio内部加载到数据库服务器只需要5分钟。幕后有什么问题吗?如何加快sqlcmd恢复操作?

EN

回答 1

Stack Overflow用户

发布于 2021-11-11 14:35:48

原因是您不是在加载6G备份,而是在运行6G SQL脚本。每个INSERT、每个CREATE TABLEUPDATESELECT等等都必须由SQL Server解析,为每个语句生成一个查询计划,并且几乎可以肯定的是,几乎每个SQL语句都不会被缓存--这不会进入事务开销和运行SQL时需要做的其他事情。

另一方面,除了从.bak创建一个完整的数据库所需的开销之外,在大多数情况下,执行RESTORE并不需要处理任何这些问题。

基本上,这个过程会很慢,唯一的解决方法是编写一个脚本来解析.SQL文件,并将其转换为您可以在BCP或其他地方使用的文件。只需运行脚本并咬紧牙关。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69908753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档