SQL Server的镜像是基于物理块变化的复制 镜像Failover之后数据的预热问题 基于物理块变化的复制,没有并行也是很快的. 逻辑复制的日志是按事务结束的时间排序的,而物理复制是与事务无关的,只要发生了改变,就可以立即传送到备库,而且不需要中继 而逻辑复制必须等事务结束才能应用,而且需要中继,例如MySQL的relay log 和SQL Server的分发库,所以会慢. 所以说SQL Server的物理镜像库没有并行也是很快的,只是有了并行会更快. 关于Failover之后,数据库缓存的…
SQL Server 按某一字段分组 取 最大 (小)值所在行的数据 -- 按某一字段分组 取 最大 (小)值所在行的数据 -- (爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 2007-10-23于浙江杭州) /* 数据如下: name val memo a    2   a2(a的第二个值) a    1   a1--a的第一个值 a    3   a3:a的第三个值 b    1   b1--b的第一个值 b    3   b3:b的第三个值 b    2   b2b2b2b2 b   …
原文:SQL Server 可更新订阅中有行筛选的同步复制移除项目而不重新初始化所有订阅! 在可更新订阅的同步复制中,有行筛选的项目表,移除的时候会提示重新初始化所有的快照并且应用此快照,这将导致所有的订阅数据库被重新初始化. 如下图,移除项目的时候提示: 此时如果取消则则取消操作 如果点击[标志为要重新初始化(M)],勾选[立即生成新快照],则立即生成新快照并初始化所有!--千万别操作! 如果点击[标志为要重新初始化(M)],不勾选[立即生成新快照],则下次启动快照时立即生成新快照并初始化所有…
转移前将原来的文件备份一下   将 tempdb 从其在磁盘上的当前位置移动到其他磁盘位置.由于每次启动 MSSQLSERVER 服务时都会重新创建 tempdb,因此不需要从物理意义上移动数据和日志文件.   1 确定 tempdb 数据库的逻辑文件名称以及在磁盘上的当前位置. SELECT name, physical_name FROM sys.master_files WHERE database_id = DB_ID('tempdb'); GO   2 使用 ALTER DATABAS…
 提到sql server,想必最让人头疼的当属锁机制了.在默认的read committed隔离模式下,连最基本的select操作都要申请各种粒度的锁,而且在读取数据过程中会不断有锁升级.转化.在非未提交读的隔离级别中,一个select操作会对每一条读到的记录或键值加S锁(何时释放还要视记录是否返回以及隔离级别而定),对每一条用到的Index上的键值加S锁,对读过的每个page和table上加IS锁...update.insert.delete操作申请锁的量和复杂度就更大了. 死锁和阻塞都是s…
上个月,有个朋友问我说Sql Sever向Mysql迁移有什么好的经验分享,他们公司客户明确提出不再提供Windows服务器,现在计划Mysql迁移.我说Mysql迁移成本太高了,不妨可以了解一下SQL Server On Linux再做决定.于是,我把之前给运维分享的Word文档发给了他,告诉他,如果可以接受一些不支持的功能,选择成本,风险小的,如果项目中用到的技术知识刚好避开了那些不支持的功能,3~5个小时可以完成一个项目的迁移.我们公司也有案例,在Linux平台上,同时安装了Sqlserv…
数据库优化包含以下三部分,数据库自身的优化,数据库表优化,程序操作优化.此文为第一部分 数据库性能优化一:数据库自身优化 优化①:增加次数据文件,设置文件自动增长(粗略数据分区) 1.1:增加次数据文件 从SQL SERVER 2005开始,数据库不默认生成NDF数据文件,一般情况下有一个主数据文件(MDF)就够了,但是有些大型的数据库,由于信息很多,而且查询频繁,所以为了提高查询速度,可以把一些表或者一些表中的部分记录分开存储在不同的数据文件里由于CPU和内存的速度远大于硬盘的读写速度,所以可…
在使用SQL Server导入导出向导导入数据的时候,我们经常会碰到某个单元格的数据超长而被截断报错的情况.本文针对这种场景给出相应的解决方案.   环境描述:SQL Server 2012,文件源:文本文件(UTF-8编码)   问题描述:如下图所示,由于SQL Server 对字符长度的限制,当我们选择Unicode 字符串(DT_WSTR)时,最长的长队为4000.这个DataType对应着数据库中的nvarchar.这时如果文本文件中的列过长就会报出截断错误.   但其实SQL Serv…
SQL SERVER两个结构相同(或不同)的表,互相导入数据,方法有两种: 1.使用SQL SERVER 自带的导出.导入功能,在库名上右击,“任务”,导出数据.导入数据,这个操作具体不就不多讲了. 2.使用语句直接复制,从XXX表复制数据到YYY表 步骤1.首先,需要设置下插入允许自增ID. SET IDENTITY_INSERT 表名YYY ON 如果提示 表 'XXX' 的 IDENTITY_INSERT 已经为 ON.无法为表 'YYY' 执行 SET 操作. 那么需要先将XXX表设置为…
subString(): SUBSTRING ( expression , start , length ) 参数expression 是字符串.二进制字符串.text.image.列或包含列的表达式.不要使用包含聚合函数的表达式. start 是一个整数,指定子串的开始位置. length 是一个整数,指定子串的长度(要返回的字符数或字节数). charIndex(): SQL CHARINDEX函数返回字符或者字符串在另一个字符串中的起始位置. CHARINDEX函数调用方法如下: CHAR…