原文:SqlServer 复制中将大事务分成小事务分发 在sql server 复制中,当在发布数据库执行1个大事务时,如一次性操作 十万或百万以上的数据.当操作数据在发布数据库执行完成后 ,日志读取器代理将扫描事务日志,一次性传递到分发数据库中.若上个事务未传递完成,连续执行多个事务,日志读取器代理将扫描日志中多个事务同时传递到分发数据库中,默认最大扫描500个事务.如果执行多次上百万或千万的数据将堵塞很久. 日志读取器代理可配置将大事务划分为多个小事务进行传递到分发数据库中,分发队列则按照小…
一.孤立账号 SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个SQL Server服务器(开启跟踪,修改 Sql Server 安全配置,备份所有数据库等). 在数据库一层,叫数据库账户(SQL Server:数据库角色),可以设置它对这个特定的数据库有读写.修改表结构.存储过程定义等权限. 登录帐号对于服务器而言的,数据库用户是针对特定数据库来讲的.就相当于一…
DBCC是SQL Server提供的一组控制台命令,功能很强大,掌握一些必要的语句,对操作数据库有不少帮助,所以决定整理一下,发现已有不少类似的整理,减少了不少工作,归类如下: 一.DBCC 帮助类命令 * DBCC HELP('?') 查询所有的DBCC命令 * DBCC HELP('checktable') 查询指定的DBCC命令的语法说明 * DBCC USEROPTIONS 返回当前连接的活动(设置)的SET选项 二.DBCC 检查验证类命令 * DBCC CHECKALLOC ('数据…
摘录些许sqlserver 常用到的一些函数,便于日常学习使用 一.字符转换函数1.ASCII()返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来,但含其它字符的字符串必须用‘’括起来使用,否则会出错.2.CHAR()将ASCII 码转换为字符.如果没有输入0 ~ 255 之间的ASCII 码值,CHAR() 返回NULL .3.LOWER()和UPPER()LOWER()将字符串全部转为小写:UPPER()将字符串全部转为大写.4.STR()把…
在SQLSERVER,简单的组合sp_spaceused和sp_MSforeachtable这两个存储过程,可以方便的统计出用户数据表的大小,包括记录总数和空间占用情况,非常实用,在SqlServer2K和SqlServer2005中都测试通过.另外还有sp_MSforeachdb可以遍历所有数据库,使用方法详见SQL帮助. /* 1. exec sp_spaceused '表名' (SQL统计数据,大量事务操作后可能不准) 2. exec sp_spaceused '表名', true (更新…
说明 以下操作都是基于SQLServer登陆验证方式登陆.而且操作员都是 sa. 一.添加登陆账号 use master go ' 第一个(xu)是登陆名,第二个(123456)是登陆密码. 执行语句,就可以在安全性\登陆名里看到新创建的账号了. 二.创建数据库用户 use StudentManageDB go exec sp_grantdbaccess 'xu', 'xuUser01' 第一个(xu)是登陆名,第二个(xuUser01)是指定数据库用户. 执行语句,就可以在指定数据库安全性\登…
王巍的博客:王巍目前在日本横滨任职于LINE.工作内容主要进行Unity3D开发,8小时之外经常进行iOS/Mac开发.他的陈列柜中已有多款应用,其中番茄工作法工具非常棒.http://onevcat.com池建强的博客: 池建强,70后程序员,Blogger.98年毕业,先后就职于洪恩软件.RocketSofeware和用友软件工程公司(后更名为瑞友科技),现任瑞友科技IT应用研究院副院长.该博客最初每天发送一条Mac技巧,不过目前已经形成了一种技术和人文结合的风格,时而随笔,时而技术.htt…
前言:任何的优化和修改都是以业务情况为前提,可能有的写的有误或者不准确的地方,欢迎各位来拍砖. 1.在创建db的时候自增长建议设置成按MB(M)增长,步长根据业务量来设置,一般情况建议设置100-200M(见图片),还有就是尽量别改初始大小,这个默认就好. 如果按照数据文件(mdf)按照默认的1m增长,同时db的业务写入比较频繁,那数据库就会频繁的向磁盘请求空间,会造成不必要的io消耗,也会因为申请空间造成资源等待等问题. 如果把日志文件(ldf)按照默认的百分比10%增长,同样当db业务量很大…
有时需要将内存中的表与数据库中的表比较,比如Datatable中有100行数据,需要判断在数据库中是否存在,这个时候我们就可以使用sqlserver中的[用户 定义表类型] 这里最最最重要的思路是把[用户 定义表类型]当作一张虚拟的正常表去处理 需求:现在内存中有个Datatable,数据库中有张表[TempUser],需要在内存中取出 Datatable和[TempUser]相同ID的TempUser的信息 实现: 1.新建表 CREATE TABLE TempUser( ID ,) PRIM…
alter login sa with password = '123'  unlock, check_policy = off, check_expiration = off    一切搞定.. 1.如果短时间内不停连接,就会被SQL SERVER误认为是这是攻击,会将此账号 锁定. 要用windows方式登录,在查询分析器里输入: ALTER LOGIN sa ENABLE ; GO ALTER LOGIN sa WITH PASSWORD = '' unlock, check_policy…