三度网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

SQL Server 2016快照代理过程详细说明

时间:2022-10-7作者:未知来源:三度网教程人气:


SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
本文给大家详细分析了SQL Server 2016 快照代理过程,并实例分析了其中需要注意的地方,跟着小编一下学习下吧。我们将通过SQL Server 2016一个实例数据表,给大家详细分析了快照代理过程遇到的问题和解决办法,并对快照生成过程做了详细说明,以下是全部内容:

概述

快照代理准备已发布表的架构和初始数据文件以及其他对象、存储快照文件并记录分发数据库中的同步信息。 快照代理在分发服务器上运行;SQLServer2016版本对快照代理做了一些比较好的优化,接下来详细了解一下快照的执行过程。

一、快照代理文件

在执行快照作业是会在指定的快照目录生成4种类型的文件。

BCP文件:发布对象的数据文件。

IDX文件:索引创建脚本文件

PRE文件:复制快照脚本文件。

SCH文件:架构创建脚本文件

二、默认快照代理配置文件

SQL Server 2016快照代理过程详解

-BcpBachSize:每一次执行bcp操作copy的最大记录行数,默认是10万行。

-HistoryVerboseLevel:指定在快照操作过程中记录的历史记录大小。

-LoginTimeout:登录超时前等待的秒数。 默认值为 15 秒。

-QueryTimeOut:查询超时前等待的秒数。默认值为 1800 秒

备注:通过右键快照代理-快照代理配置文件;可以配置快照代理。

三、对比不同版本快照代理

接下来测试对比2亿的记录表生成快照

1.bcp文件数量对比

2008R2

SQL Server 2016快照代理过程详解

2016SP1

SQL Server 2016快照代理过程详解

这里重点说一下BCP文件,因为应用快照到订阅服务器是以BCP文件为基本单位,也就是说不管你的BCP文件有多大都是一次性bulk到订阅服务器,所以BCP文件越大每次应用的时间就会越长。如果一个BCP文件太大可能会导致插入到订阅端失败。

从上图可以看到同样是2亿的记录,2008R2总共有8个BCP文件,而且最大的BCP文件大小将近1G其它的都才几兆;2016有16个BCP文件,并且前15个都是50M左右数据比较均匀。接下来看下图的每个BCP文件的记录对比。

2.快照生成详细过程对比

2008r2

SQL Server 2016快照代理过程详解

SQL Server 2016快照代理过程详解

2016SP1

SQL Server 2016快照代理过程详解

从生成的BCP文件记录对比来看:

2008R2:前7个文件每个文件记录数大概70万左右,最后一个文件记录1.1亿。

2016:前15个文件每个文件记录700万左右,最后一个文件78万。

说明:

2008R2前7个文件每个文件大概存储的记录量是70万剩下的记录都会存储到最后一个文件,所以2008R2比较适合的表记录数是600万左右。

2016前15个文件每个文件大概存储的记录量是700万剩下的记录都会存储到最后一个文件,2016适合的表记录数1.2亿左右。

SQL Server 2016快照代理过程详解

共同缺点:表记录超过“适合的复制表记录数”后剩下数据会全部存储到最后个bcp文件中。

3.分发对比

接下来看一下分发的详细过程

SQL Server 2016快照代理过程详解

从2008R2分发记录过程中可以看到每次BULK都是以bcp文件为单位,复制最后一个bcp文件花费了大概22分钟,而前面的每个文件都是十几秒;还是由于我当前的表只有三个字段而且除了主键没有索引否则的时间就更长了。

四、快照生成过程

复制快照代理是一个可执行文件,用于准备快照文件(其中包含已发布表和数据库对象的架构及数据),然后将这些文件存储在快照文件夹中,并在分发数据库中记录同步作业。

SQL Server 2016快照代理过程详解

从上图可以了解整个快照的生成过程。

五、语法

snapshot [ -?] -Publisher server_name[\instance_name] -Publication publication_name [-70Subscribers] [-BcpBatchSize bcp_batch_size] [-DefinitionFile def_path_and_file_name] [-Distributor server_name[\instance_name]] [-DistributorDeadlockPriority [-1

关键词:  SQL  Server  2016快照代理过程详细说明





Copyright © 2012-2018 三度网教程(http://www.3du8.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版