-
SQLServer误区30日谈第27天使用BACKUPWITHCHECKSUM可以替代DBCCCheckDB
误区#27:使用BACKUP...WITHCHECKSUM可以替代DBCCCheckDB错误 乍一看,由于BACKUPWITHCHECKSUM会检测所有分配出去的页的校验和的值,这个误区貌似是这么回事,但实际上并不是这么回事,原因如下: 由SQLServer2000或是更早版本升上来的数据库pagechecksums必须开启,在开启后,并不是数据库中所有的页都会被叫上页校验和,当页损坏发生时,IO系统可不会区分损坏的页是有页校验和还是没有校验和的。所以使用BACKUP...WITHCHECKSUM就有可能导致一些损坏页不被发现,造成的后果…… 除此之外,还有一个问题是完整备份的时间间隔相对比较长,假如说一个月,而相对于DBCCCheckDB的最佳实践是一个礼拜,这导致WITHCHECKSUM不能替代CHECKDB...
数据库操作教程 2022-09-23 17:03:22 -
SQLJoin的一些总结(实例)
1.1.1摘要Join是关系型数据库系统的重要操作之一,SQLServer中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合:1.1.2正文首先我们在tempdb中分别定义三个表College、Student和Apply,具体SQL代码如下:复制代码代码如下:USEtempdb----Ifdatabaseexiststhesamenamedatatabledeletesit.IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_NAME='College')DROPTABLECollege;IFEXISTS(SELECTTABLE_NAMEFROMINFORMATION_SCHEMA.TABLESWHERETABLE_NAME='Student')DROPTABLEStudent;IFEXISTS(SE...
数据库操作教程 2022-09-23 17:02:20 -
关于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 -
sqlserver多表关联时在where语句中慎用trim()方法
类似如下:selectA.key,B.key,C.keyfromA,B,Cwheretrim(A.key)=trim(B.fk)andtrim(A.col)=trim(C.pk)。在主表A(200多条记录)关联附表B(4万多条记录)时用了1秒钟时间,该值在不同机器执行可能有所差异,但比不加trim速度稍微慢一些,但是不是特别明显...
数据库操作教程 2022-09-23 16:55:42 -
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 -
SQLSubstring提取部分字符串
功能:返回字符、二进制、文本或图像表达式的一部分语法:SUBSTRING(expression,start,length) SQL中的substring函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:参数:expression字符串、二进制字符串、文本、图像、列或包含列的表达式...
数据库操作教程 2022-09-23 16:54:35 -
sqlserversubstring函数使用方法小结
在操作sqlserver时候用到了substring函数SUBSTRING(expression,start,length)参数expression字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式...
数据库操作教程 2022-09-23 16:54:03 -
GridView自定义分页的四种存储过程
1.为什么不使用GridView的默认分页功能首先要说说为什么不用GridView的默认的分页功能,GridView控件并非真正知道如何获得一个新页面,它只是请求绑定的数据源控件返回适合规定页面的行,分页最终是由数据源控件完成。当我们使用SqlDataSource或使用以上的代码处理分页时...
数据库操作教程 2022-09-23 16:53:49 -
Cont()与Where().Count()有时性能差别如此之大!
想起我之前在此列表中加入了一个字段,用于方便提示管理员公司的产品列表是否有修改之类的状态字段,于是可以断定是加了此字段的原因。首先,先看看我之前是如何写这个提示状态字段的,实体中加入ContentStatus,然后直接在Linq语句中Select实体对象中加入ContentStatus=Product_Maintain.Count(C=>C.CompanyID==company.ID&&C.IsDeleted==0&&(C.AuditStatus==0||C.AuditStatus==4))>0?"产品有更新":""...
数据库操作教程 2022-09-23 16:52:48 -
编写SQL需要注意的细节Checklist总结
复制代码代码如下:/*--注意:准备数据(可略过,非常耗时)CREATETABLECHECK1_T1(IDINT,C1CHAR(8000))CREATETABLECHECK1_T2(IDINT,C1CHAR(8000))DECLARE@IINTSET@I=1WHILE@I<=10000BEGININSERTINTOCHECK1_T1SELECT@I,'C1'INSERTINTOCHECK1_T2SELECT10000+@I,'C1'SET@I=@I+1ENDCREATETABLECHECK2_T1(IDINT,C1CHAR(8000))DECLARE@IINTSET@I=1WHILE@I<=10000BEGININSERTINTOCHECK2_T1SELECT@I,'C1'SET@I=@I+1ENDINSERTINTOCHECK2_T1VALUES(10001,'C2')INSERTINTOCHECK2_T1VALUES(10002,'C1')CREATETABLECHECK3_T1(IDINT,C1CHAR(7000))CREATETABLECHECK3_T2(IDINT...
数据库操作教程 2022-09-23 16:48:48 -
SQL中having和where的区别分析
在select语句中可以使用groupby子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果...
数据库操作教程 2022-09-23 16:48:12