暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何在没有统计信息和查询存储的情况下复制数据库

原创 Pinal Dave 2019-12-24
607

image.png

当我们使用DBCC CLONEDATABASE克隆数据库时,数据库也在处理统计信息并查询存储数据。有什么办法只能复制架构而没有其他信息。老实说,我认为没有办法执行此任务,因为您生成的数据库将是只读的,而没有与之相关的任何有意义的统计信息。

这是可用于在没有统计信息和查询存储的情况下创建数据库副本的脚本。

DBCC CLONEDATABASE (WideWorldImporters,CloneWideWorldImporters) 
WITH NO_STATISTICS, NO_QUERYSTORE;
GO

请注意,将通过上述方法创建的数据库为只读数据库,不包含任何统计信息或查询存储数据。

当您对此数据库运行查询时,执行计划也将与原始数据库不同,并且还会抱怨没有正确的统计信息。

现在,如果您想使用该数据库存储新数据或其他任何数据,则有一个非常简单的技巧。您始终可以通过运行以下脚本来使数据库读写。

USE [master]
GO
ALTER DATABASE [CloneWideWorldImporters] SET READ_WRITE WITH NO_WAIT
GO

一旦运行了上述脚本,就可以重新填充数据库,并可以进行进一步的修改。我发现这个技巧很有帮助。您也可以在SQL Server Management Studio的帮助下进行相同的操作,这是数据库属性的图像。

image.png

当我遇到无法访问原始数据库且必须调整T-SQL脚本的情况时,我发现此技巧非常有用。

来源:https://blog.sqlauthority.com/2019/12/17/sql-server-copy-database-without-statistics-query-store/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论