-
SQLServer误区30日谈第2天DBCCCHECKDB会导致阻塞
误区#2:DBCCCHECKDB会引起阻塞,因为这个命令默认会加锁这是错误的! 在SQLServer7.0以及之前的版本中,DBCCCHECKDB命令的本质是C语言实现的一个不断嵌套循环的代码并对表加表锁(循环嵌套算法时间复杂度是嵌套次数的N次方,作为程序员的你懂得),这种方式并不和谐,并且….. 在SQLServer2000时代,一个叫SteveLindell的哥们(现在仍然在SQLServerTeam)使用分析事务日志的方法来检查数据库的一致性的方式重写了DBCCCHECKDB命令。DBCCCHECKDB会阻止截断日志...
数据库操作教程 2022-09-23 17:04:37 -
SqlServer扩展属性的介绍
SqlServer帮助中对扩展属性的描述是:TheExtendedPropertiespropertysetsorretrievesprovider-specificconnectioninformationthatcannotbeexplicitlydescribedthroughthepropertymechanism.对于扩展属性有如下操作:复制代码代码如下:execsp_addextendedpropertyN'MS_Description',N'字段描述',N'user',N'dbo',N'table',N'表名',N'column',N'字段名'GO例如:EXECsp_addextendedpropertyN'MS_Description',N'地址',N'user',dbo,N'table',复制代码代码如下:N'a',N'column',a_addGO--我的表是a,要给字段a_add加上字段描述:地址其他相关:删除:复制代码代码如下:EXECsp_dropextendedpropertyN'MS_Description',N'user',dbo,N'table',N'...
数据库操作教程 2022-09-23 17:04:27 -
SQLServer误区30日谈第17天有关页校验和的误区
其实我之前已经有文章详细解释了页校验和:HowtotelliftheIOsubsystemiscausingcorruptions?误区#17:几个有关页校验和的误区坊间流传的基本是错误的 17a)页校验和(PageCheckSum)在从SQLServer2000或7.0升级上来之后自动开启 其实不是,从旧的实例升级上来的数据库不会自动开启页校验和,除非你显式使用ALTERDATABASEdatabasenameSETPAGE_VERIFYCHECKSUM进行开启。而在SQLServer2005或2008新建的数据库页校验和是默认开启的...
数据库操作教程 2022-09-23 17:04:11 -
SQLServer误区30日谈第22天资源调控器可以调控IO
误区#22:资源调控器可以调控IO错误 资源调控器无法调控IO,希望下一个版本的SQLServer支持调控IO,调控IO对于对于减少对于大表的scan操作带来的性能影响很有帮助。 下面列表中的功能资源调控器同样也无法完成:调控BufferPool的内存,内存调控器仅仅可以调控执行计划所占的内存,但对于BufferPool中缓存的数据页是无法调控的可以对多个实例进行当作一个逻辑实体进行资源调控...
数据库操作教程 2022-09-23 17:04:02 -
SQLServer误区30日谈第11天镜像在检测到故障后瞬间就能故障转移
误区#11:镜像在检测到故障后瞬间就能故障转移错误 数据库镜像的故障转移既可以自动发起,也可以手动发起。 在自动发起的情况下,是由镜像服务器执行故障转移操作(你没有看错,并不是由见证服务器来做故障转移的决定),在见证服务器和镜像服务器都发现无法和主体服务器交换信息(这个过程被称为”形成仲裁”,译者注:也就是通过程序对集群进行监管,集群可用的依据来自监管程序的算法,比如根据:每个节点的配置,文件共享情况,磁盘访问情况,每个节点的可用性等来确定集群是否可用)并且镜像方式是同步时,可以进行故障转移...
数据库操作教程 2022-09-23 17:03:54 -
SQLServer误区30日谈第24天26个有关还原(Restore)的误区
本系列文章一直所没有触及的就是有关”还原(Restore)”的话题,因为一旦牵扯到这个话题就会涉及大量的误区,多到我无法通过一篇文章说完的地步。事实上,我希望用字母表的顺序为每一个误区进行编号,希望你看了不要昏昏欲睡...
数据库操作教程 2022-09-23 17:03:52 -
SQLServer误区30日谈第20天破坏日志备份链之后,需要一个完整备份来重新开始日志链
误区#20:在破坏日志备份链之后,需要一个完整备份来重新开始日志链错误事务日志备份会备份自上次事务日志备份以来所有的事务日志(如果从来没有过日志备份的话,那就从上一次完整备份开始)。有好几种类型的操作会中断事务日志的连续性,也就是说除非重新开始新的日志链,SQLServer无法再进行日志备份...
数据库操作教程 2022-09-23 17:03:48 -
sqlserver索引的原理及索引建立的注意事项小结
聚集索引,数据实际上是按顺序存储的,数据页就在索引页上。就好像参考手册将所有主题按顺序编排一样...
数据库操作教程 2022-09-23 17:03:35 -
SQLServer误区30日谈第23天有关锁升级的误区
误区#23:锁升级的过程是由行锁升级到页锁,再由页锁升级到表锁错误 实际不是,在SQLServer2005和之前的版本,页锁会直接升级到表锁。 在SQLServer2005或SQLServer2008,你可以通过如下跟踪标志改变锁升级的行为:标志1211-完全禁止锁升级,但锁使用的内存会被限制在动态分配内存的60%,当超过这个值时,更多的锁将会伴随着内存溢出错误而失败...
数据库操作教程 2022-09-23 17:03:27 -
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
MSSQLServer获取十二个月份的英文缩写
如果使用DATENAME()函数是取得月份的英文全称,但报表需要,只需显示月份名称缩写即可。十二个月份的英文缩写,只有五月份是全称与缩写一样,其它月份的缩写仅是取前三位字母...
数据库操作教程 2022-09-23 17:03:11 -
SQLServer高可用的常见问题分析
每次谈到SQLServer的高可用,很多的DBA,特别是SQLServerDBA心里一痛:因为大家都认为SQLServer无法或者很难实现SQLServer。也有很多的DBA朋友脑袋一拍,给出答案“高可用不就是微软的那几个技术吗,如Replication,FailoverClustering”…1.难道SQLServer在高可用上面就显得这么的无力吗?回答:不是的,其实SQLServer很给力...
数据库操作教程 2022-09-23 17:03:06