-
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误区30日谈第2天DBCCCHECKDB会导致阻塞
误区#2:DBCCCHECKDB会引起阻塞,因为这个命令默认会加锁这是错误的! 在SQLServer7.0以及之前的版本中,DBCCCHECKDB命令的本质是C语言实现的一个不断嵌套循环的代码并对表加表锁(循环嵌套算法时间复杂度是嵌套次数的N次方,作为程序员的你懂得),这种方式并不和谐,并且….. 在SQLServer2000时代,一个叫SteveLindell的哥们(现在仍然在SQLServerTeam)使用分析事务日志的方法来检查数据库的一致性的方式重写了DBCCCHECKDB命令。DBCCCHECKDB会阻止截断日志...
数据库操作教程 2022-09-23 17:04:37 -
判断字段是否被更新新旧数据写入AuditLog表中
Insus.NET解决这个问题,只有创建另外一个表,将存储用户决定要跟踪的表,以及这个表中需要跟踪的字段。还要创建另外一个表[Audit],就是存储跟踪记录的表:复制代码代码如下:AuditSETANSI_NULLSONGOSETQUOTED_IDENTIFIERONGOSETANSI_PADDINGONGOCREATETABLE[dbo].[Audit]([Audit_nbr][int]IDENTITY(1,1)NOTNULL,[AuditType][char](1)NOTNULL,[TableName][nvarchar](128)NOTNULL,[FieldName][nvarchar](128)NULL,[OldValue][nvarchar](4000)NULL,[NewValue][nvarchar](4000)NULL,[UserName][nvarchar](128)NULL,[CreateDate][datetime]NOTNULL,PRIMARYKEYCLUSTERED([Audit_nbr]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NOR...
数据库操作教程 2022-09-23 17:04:17 -
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
关于SQL中CTE(公用表表达式)(CommonTableExpression)的总结
一.WITHAS的含义WITHAS短语,也叫做子查询部分(subqueryfactoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNIONALL的不同部分,作为提供数据的部分...
数据库操作教程 2022-09-23 17:01:44 -
SQLServer误区30日谈第15天CheckPoint只会将已提交的事务写入磁盘
误区#15:CheckPoint只会将已提交的事务写入磁盘错误这个误区是由于太多人对日志和恢复系统缺少全面的了解而存在已久。CheckPoint会将自上次CheckPoint以来所有在内存中改变的页写回磁盘(译者注:也就是脏页),或是在上一个CheckPoint读入内存的脏页写入磁盘...
数据库操作教程 2022-09-23 17:00:27 -
SQLServerCONVERT函数测试结果
复制代码代码如下:SELECTCONVERT(varchar(100),GETDATE(),0):0516200610:57AMSELECTCONVERT(varchar(100),GETDATE(),1):05/16/06SELECTCONVERT(varchar(100),GETDATE(),2):06.05...
数据库操作教程 2022-09-23 16:58:39 -
系统存储过程sp_MSforeachtable和sp_MSforeachdb使用说明
1.简介:作为DBA会经常需要检查所有的数据库或用户表,比如:检查所有数据库的容量;看看指定数据库所有用户表的容量,所有表的记录数...,我们一般处理这样的问题都是用游标分别处理处理,比如:在数据库检索效率非常慢时,我们想检查数据库所有的用户表,我们就必须通过写游标来达到要求;如果我们用sp_MSforeachtable就可以非常方便的达到相同的目的:EXECsp_MSforeachtable@command1="print'?'DBCCCHECKTABLE('?')"系统存储过程sp_MSforeachtable和sp_MSforeachdb,是微软提供的两个不公开的存储过程,从mssql6.5开始。存放在SQLServer的MASTER数据库中...
数据库操作教程 2022-09-23 16:54:56 -
DBCCCHECKIDENT重置数据库标识列从某一数值开始
DBCCCHECKIDENT(N'dbo.Orders',RESEED,0);DBCCCHECKIDENT语法DBCCCHECKIDENT(table_name[,{NORESEED|{RESEED[,new_reseed_value]}}])[WITHNO_INFOMSGS]参数table_name是要对其当前标识值进行检查的表名。指定的表必须包含标识列...
数据库操作教程 2022-09-23 16:54:38 -
sqlserverCONVERT()函数用法小结
CONVERT的使用方法:格式:CONVERT(data_type,expression[,style])说明:此样式一般在时间类型(datetime,smalldatetime)与字符串类型(nchar,nvarchar,char,varchar)相互转换的时候才用到.例子:SELECTCONVERT(varchar(30),getdate(),101)now结果为now---------------------------------------09/15/2001style数字在转换时间时的含义如下-------------------------------------------------------------------------------------------------Style(2位表示年份)|Style(4位表示年份)|输入输出格式--------------------------------------------------------------------------------------------------|0or100|monddyyy...
数据库操作教程 2022-09-23 16:50:30 -
SQLServer的FileStream和FileTable深入剖析
互联网时代数据是爆炸式增长,我们常常需要把结构化数据和非结构化数据(如文档,演示文稿,视频,音频,图像)存储在一起。通常有几种方案:1...
数据库操作教程 2022-09-23 16:49:44 -
sqlserver中with(nolock)深入分析
在查询语句中使用NOLOCK和READPAST处理一个数据库死锁的异常时候,其中一个建议就是使用NOLOCK或者READPAST。有关NOLOCK和READPAST的一些技术知识点:对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题...
数据库操作教程 2022-09-23 16:49:22