SQL Server Transactional Replication 中的 CommitBatchSize 和 CommitBatchThreshold 属性

最近遇到一个在SQL Server transactional replication 里关于CommitBatchSize 和CommitBatchThreshold设置的问题,BOL里面的解释很含糊:

  • CommitBatchSize “Is the number of transactions to be issued to the Subscriber before a COMMIT statement is issued. The default is 100.”
  • CommitBatchThreshold “Is the number of replication commands to be issued to the Subscriber before a COMMIT statement is issued. The default is 1000.”
有一个老外做了详细的测试结果总结了关于这两个属性的作用,详情见:
http://kendalvandyke.blogspot.com/2008/11/how-commitbatchsize-and.html

根据我自己的分析,这两个属性的作用如下:

  1. Distrabution Agent 将所有单条命令作为一个单位,CommitBatchThreshold和CommitBatchSize 是以单条命令数为标准
  2. 如果一个语句更新N条记录,这条语句视为在一个transaction中。但是命令数为N。
  3. 如果命令在一个transaction中,不考虑CommitBatchSize ,只考虑CommitBatchThreshold。
  4. 单个transaction不会被拆分成多个,就算单个transaction中的命令数超过CommitBatchThreshold。
  5. 如果提交多个transaction,第一个transaction 的命令数没有超出CommitBatchThreshold,则第二个transaction 会被合并如第一个。如果合并后的命令数超出CommitBatchThreshold,则不继续合并,但是前两个transactions照样提交。
  6. 如果命令不在一个transaction中,按照CommitBatchSize的设定将一定数量的命令合并成一个transaction。
  7. 如果CommitBatchSize的值大于CommitBatchThreshold,一个CommitBatchSize的transaction会被进一步拆分成两个,比如CommitBatchSize=5,CommitBatchThreshold=3,总命令数为10,会如下打包 4,1,4,1。为什么会出现4,请参见第5条,因为第一个包的命令数在向后合并中到第四个命令才超过CommitBatchThreshold。于是一个CommitBatchSize的transaction 被分成两个 4,1。

转载于:https://www.cnblogs.com/coldwine/archive/2009/08/11/1543635.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462053.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JqueryMobile学习之二---对话框

对话框 通过在链接中添加data-rel”dialog”的属性&#xff0c;可以使链接页面的显示方式变为对话框。给显示的对话框加入切换的效果也是一个不错的选择 例如我们将about的链接变成一个对话框并加入相应的切换效果。代码如下 <p><a href"#about" data-rel&q…

“leave the world behind”十一快乐出行

这个十一你打算怎么过&#xff1f;每天睡到自然醒&#xff0c;然后闷在家里埋头上网&#xff1f;选择晴朗好天气出去逛街&#xff0c;四处淘宝贝&#xff0c;淘美食&#xff1f;还是选择一个好的路线出去玩一周&#xff1f;其实行无论宅着还是选择出行&#xff0c;一定要让自己…

my_atio()代码出错原因,完全代码

1、//不明白这么简单的代码为什么会出错#includeint my_atoi(char *str);int main(void){char a[]" 12345";int b0;b my_atoi(a);printf("%d", b);getchar();return 0;}int my_atoi(char *str){char* p str;//char *p; p str;int inter_symbol 1;int …

分享一个文件上传工具类

文件上传状态枚举类&#xff1a; View Code 1 package com.hoo.enums;2 3 4 5 /**6 7 * <b>function:</b> 文件上传状态8 9 * package com.hoo.enums 10 11 * fileName UploadState.java 12 13 * createDate 2010-10-11 下午1…

静态库和动态库的区别

库是写好的&#xff0c;现有的&#xff0c;成熟的&#xff0c;可以复用的代码。现实中每个程序都要依赖很多基础的底层库&#xff0c;不可能每个人的代码都从零开始&#xff0c;因此库的存在意义非同寻常。 本质上来说&#xff0c;库是一种可执行代码的二进制形式&#xff0c;可…

257. Binary Tree Paths

1、问题描述 2、代码&#xff08;非本人所写&#xff0c;十分精彩的C代码&#xff09; int pathsNum(struct TreeNode* root); void Traverse(struct TreeNode* root, char** array, char* spre, int* pindex); char* stringAdd(char* s, int val);char** binaryTreePaths(stru…

项目中获取系统的用例的基本步骤

1、绘制关联图&#xff0c;用于定义系统与系统外部实体间的边界和接口的简单模型&#xff1b; 2、创建开发原型&#xff0c;当开发人员或用户不能明确某些需求时&#xff0c;开发一个系统原型&#xff0c;这样使得许多概念和可能发生的事更为直观明了&#xff1b; 3、分析可行性…

UE 查找和替换

今天07/06/2005 昨天07/05/2005 明天07/08/2005 查找内容&#xff1a;^([0-9][0-9]^)/^([0-9][0-9]^)/^(200[0-9]^) 替换为: ^3^1^2 今天20050706昨天20050705明天20050708 ParamByName(C_AGENCYNO).AsString:Trim(copy(s,42,3)); 查找内容&#xff1a;^(Trim(co…

服务器最小化安装后的优化脚本

服务器最小化安装后的优化脚本&#xff0c;此脚本在CentOS[5.5-5.8] x86_64系统下测试均顺利通过&#xff0c; 由于现在Linux服务器系统都是采用Kickstart批量安装的方式&#xff0c;此脚本可以由Puppet服务器推送执行&#xff0c;脚本内容如下所示&#xff1a;#!/bin/bash #添…

字符指针、字符串、字符数组、字符串数组

字符指针 比如代码char* pNULL&#xff1b;定义了一个字符指针p。 字符指针一般用来指向一个字符&#xff0c;或者指向一个字符串。 刚开始学习时&#xff0c;我以为有“字符串指针”的概念&#xff0c;也就是指向字符串的指针。其实没有这个概念&#xff0c;字符指针与字符串指…

static函数的申明

static 声明的变量在C语言中有两方面的特征&#xff1a; 1)、变量会被放在程序的全局存储区中&#xff0c;这样可以在下一次调用的时候还可以保持原来的赋值。这一点是它与堆栈变量和堆变量的区别。 2)、变量用static告知编译器&#xff0c;自己仅仅在变量的作…

HDOJ树形DP专题之Centroid

题目链接 这题跟Balance Act那题差不多&#xff0c;求图的质点。我直接将那题改了一下提交&#xff0c;结果PE了一次&#xff0c;又WA了一次&#xff0c;最后发现是单case&#xff0c;多case的提交为什么WA呢&#xff1f; View Code 1 #include <stdio.h>2 #include <…

LAMP平台--部署Discuz论坛

环境&#xff1a;为了推广公司的产品并为客户服务提供一个交流平台&#xff0c;公司购买了一套Discuz论坛系统&#xff0c;要求安装到现有的LAMP服务器中&#xff0c;并简单划分论坛版块。需求&#xff1a;部署论坛服务器&#xff0c;安装Discuz论坛系统添加新区和版块产品发布…

C语言面试题大汇总

static有什么用途&#xff1f;&#xff08;请至少说明两种&#xff09; 1.限制变量的作用域 2.设置变量的存储域 7. 引用与指针有什么区别&#xff1f; 1) 引用必须被初始化&#xff0c;指针不必。 2) 引用初始化以后不能被改变&#xff0c;指针可以改变所指的对象。 2) 不存在…

链表创建为什么需要使用内存分配?

我们知道&#xff0c;在全局定义的结构体变量&#xff0c;存储全局数据区&#xff1b;在函数内定义的结构体变量&#xff0c;存储在栈区&#xff1b;使用malloc函数申请空间来存放结构体变量&#xff0c;则该结构体变量存储在堆空间中。 我们说的链表&#xff0c;其节点数据一…

我国三大坐标系的区别(西安80、北京54、WGS-84)

1、北京54坐标系(BJZ54) 北京54坐标系为参心大地坐标系&#xff0c;大地上的一点可用经度L54、纬度M54和大地高H54定位&#xff0c;它是以克拉索夫斯基椭球为基础&#xff0c;经局部平差后产生的坐标系。 1954年北京坐标系的历史&#xff1a; 新中国成立以后&#xff0c;我国大…

springside 4 web-init 启动

我初始化h2数据库&#xff0c; 然后把jar 放到 springside-4.0.0.RC2\examples\mini-web 中 &#xff0c;最后配置启动tomcat。 就出现这个错。 最开始我用 quick-start.bat &#xff0c;但总是执行到一半就 挂掉了。 提示spy 包没找到 。 这个是在装载 xml&#xff0c;解析成b…

ACM中java快速入门

2019独角兽企业重金招聘Python工程师标准>>> ACM中java快速入门 附&#xff1a; Chapter I. Java的优缺点各种书上都有&#xff0c;这里只说说用Java做ACM-ICPC的特点&#xff1a; (1) 最明显的好处是&#xff0c;学会Java&#xff0c;可以参加Java Challenge …

空分复用的概念

定义&#xff1a;让同一个频段在不同的空间内得到重复利用&#xff0c;称之为空分复用。一般使用自适应天线阵列技术实现&#xff0c;在不同的用户方向上形成不同的波束。也叫SDM。 另&#xff1a; 如果把空间的分割来区别不同的用户&#xff0c;就叫做SDMA。每个波束可提供一…

OV7725的帧率和PCLK寄存器设置

一、OV7725的PCLK的改变和以下几个寄存器有关&#xff1a; 1&#xff1a;OX0D&#xff08;COM4&#xff09;&#xff1b; ------------------------------------------------------------------------------------------------------------------ 0X0D COM4 41 …