-
SQLServer误区30日谈第9天数据库文件收缩不会影响性能
误区#9:数据库文件收缩不会影响性能错误! 收缩数据库文件唯一不影响性能的情况是文件末尾有剩余空间的情况下,收缩文件指定了TruncateOnly选项。 收缩文件的过程非常影响性能,这个过程需要移动大量数据从而造成大量IO,这个过程会被记录到日志从而造成日志暴涨,相应的,还会占去大量的CPU资源...
数据库操作教程 2022-09-23 17:07:25 -
SQLServer误区30日谈第12天TempDB的文件数和需要和CPU数目保持一致
误区#12:TempDB的文件数和需要和CPU数目保持一致错误 哎,由于上述误区是微软“官方”的建议,并且还有大量博文坚持这个观点,这个误区已经是老生常谈。 但让人困惑的是SQLCAT团队给出的建议就是1:1,但这个建议是源自扩展方面的原理来说,而不是一个通用法则...
数据库操作教程 2022-09-23 17:07:06 -
SQLServer中减小Log文件尺寸的方法分享
首先use[数据库名称];execsp_helpfile;使用sp_helpfile查询可知道log文件的逻辑名称,然后就可以利用DBCC来减小LOG文件BACKUPLOG[数据库名]WITHTRUNCATE_ONLYdbccshrinkfile([log文件的逻辑名称],1)这个方法在MSSQLServer2008以及MSSQLServer2008R2中不再适用,会提示:TRUNCATE_ONLYisnotavalidBACKUPoption.应当采取这样的操作方法:复制代码代码如下:--首先把数据库的恢复模式改为SimpleALTERDATABASE[数据库名]SETRECOVERYSIMPLE;GO--缩小log文件至1M,逻辑名称可以通过sp_helpfile拿到DBCCSHRINKFILE([log文件逻辑名称],1);GO--重置数据库的恢复模式ALTERDATABASE[数据库名]SETRECOVERYFULL;GO...
数据库操作教程 2022-09-23 17:06:55 -
SQLServer利用bcp命令把SQL语句结果生成文本文件
在SQLServer里可以调用DOS下的命令行工具bcp来实现把表里的数据或者SQL语句结果生成文本文件。BCP命令的参数格式:复制代码代码如下:BCP{dbtable|query}{in|out|queryout|format}datafile[-mmaxerrors] [-fformatfile] [-eerrfile][-Ffirstrow] [-Llastrow] [-bbatchsize][-nnativetype] [-ccharactertype] [-wwidecharactertype][-Nkeepnon-textnative][-Vfileformatversion][-qquotedidentifier][-Ccodepagespecifier] [-tfieldterminator] [-rrowterminator][-iinputfile] [-ooutfile] [-apacketsize][-Sservername] [-Uusername] [-Ppasswor...
数据库操作教程 2022-09-23 17:06:43 -
SQLServer误区30日谈第21天数据损坏可以通过重启SQLServer来修复
误区#21:数据库损坏可以通过重启SQLServer或是Windows,或是附加和分离数据库解决错误SQLServer中没有任何一项操作可以修复数据损坏。损坏的页当然需要通过某种机制进行修复或是恢复-但绝不是通过重启动SQLServer,Windows亦或是分离附加数据库...
数据库操作教程 2022-09-23 17:05:18 -
SQLSERVER收集语句运行的统计信息并进行分析
对于语句的运行,除了执行计划本身,还有一些其他因素要考虑,例如语句的编译时间、执行时间、做了多少次磁盘读等。如果DBA能够把问题语句单独测试运行,可以在运行前打开下面这三个开关,收集语句运行的统计信息...
数据库操作教程 2022-09-23 17:04:47 -
SQLServer误区30日谈第2天DBCCCHECKDB会导致阻塞
误区#2:DBCCCHECKDB会引起阻塞,因为这个命令默认会加锁这是错误的! 在SQLServer7.0以及之前的版本中,DBCCCHECKDB命令的本质是C语言实现的一个不断嵌套循环的代码并对表加表锁(循环嵌套算法时间复杂度是嵌套次数的N次方,作为程序员的你懂得),这种方式并不和谐,并且….. 在SQLServer2000时代,一个叫SteveLindell的哥们(现在仍然在SQLServerTeam)使用分析事务日志的方法来检查数据库的一致性的方式重写了DBCCCHECKDB命令。DBCCCHECKDB会阻止截断日志...
数据库操作教程 2022-09-23 17:04:37 -
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
SQLServer误区30日谈第1天正在运行的事务在服务器故障转移后继续执行
误区#1:在服务器故障转移后,正在运行的事务继续执行这当然是错误的!每次故障转移都伴随着某种形式的恢复。但是如果当正在执行的事务没有Commit时,由于服务器或实例崩溃导致连接断开,SQLServer可没有办法在故障转移后的服务器重新建立事务的上下文并继续执行事务-无论你使用的故障转移方式是集群,镜像,日志传送或是SAN复制...
数据库操作教程 2022-09-23 17:01:50 -
SQLServer误区30日谈第3天即时文件初始化特性可以在SQLServer中开启和关闭
本系列文章是我在sqlskill.com的PAUL的博客看到的,很多误区都比较具有典型性和代表性,原文来自T-SQLTuesday#11:Misconceptionsabout....EVERYTHING!!,经过我们团队的翻译和整理发布在AgileSharp和博客园上。希望对大家有所帮助...
数据库操作教程 2022-09-23 17:01:25 -
SQLServer误区30日谈第15天CheckPoint只会将已提交的事务写入磁盘
误区#15:CheckPoint只会将已提交的事务写入磁盘错误这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入磁盘...
数据库操作教程 2022-09-23 17:00:27 -
SQLServer误区30日谈第16天数据的损坏和修复
误区#16:多个关于数据的损坏和修复误区坊间流传的很多版本都不正确我已经听过很多关于数据修复可以做什么、不可以做什么、什么会导致数据损坏以及损坏是否可以自行消失。其实我已经针对这类问题写过多篇博文,因此本篇博文可以作为“流言终结者”来做一个总结,希望你能有收获...
数据库操作教程 2022-09-23 17:00:10