-
drop,truncate与delete的区别
注意:这里说的delete是指不带where子句的delete语句相同点truncate和不带where子句的delete,以及drop都会删除表内的数据不同点:1.truncate和delete只删除数据不删除表的结构(定义)drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index);依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是dml,这个操作会放到rollbacksegement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发.truncate,drop是ddl,操作立即生效,原数据不放到rollbacksegment中,不能回滚.操作不触发trigger.3.delete语句不影响表所占用的extent,高水线(highwatermark)保持原位置不动显然drop语句将表所占用的空间全部释放truncate语句缺省情况下将空间释放到minextents个extent,除非使用reusestorage;truncate会将高水线复位(回到最开始).4.速度,一般来说:dr...
数据库操作教程 2022-09-23 16:54:06 -
sqlserverexists,notexists的用法
学生表:createtablestudent( idnumber(8)primarykey, namevarchar2(10),deptmentnumber(8))选课表:createtableselect_course( ID NUMBER(8)primarykey, STUDENT_IDNUMBER(8)foreignkey(COURSE_ID)referencescourse(ID), COURSE_ID NUMBER(8)foreignkey(STUDENT_ID)referencesstudent(ID))课程表:createtableCOURSE( ID NUMBER(8)notnull, C_NAMEVARCHAR2(20), C_NO VARCHAR2(10))student表的数据: &...
数据库操作教程 2022-09-23 16:52:55 -
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 -
sqlserver中with(nolock)深入分析
在查询语句中使用NOLOCK和READPAST处理一个数据库死锁的异常时候,其中一个建议就是使用NOLOCK或者READPAST。有关NOLOCK和READPAST的一些技术知识点:对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题...
数据库操作教程 2022-09-23 16:49:22 -
deletefrom表名与truncatetable表名区别
1.delete不能使自动编号返回为起始值。但是truncate能使自动增长的列的值返回为默认的种子2.truncate只能一次清空,不能按条件删除...
数据库操作教程 2022-09-23 16:49:22 -
SQL中Group分组获取TopN方法实现可首选row_number
有产品表,包含id,name,city,addtime四个字段,因报表需要按城市分组,统计每个城市的最新10个产品,便向该表中插入了100万数据,做了如下系列测试:复制代码代码如下:CREATETABLE[dbo].[products]([id][int]IDENTITY(1,1)NOTNULL,[name][nvarchar](50)NULL,[addtime][datetime]NULL,[city][nvarchar](10)NULL,CONSTRAINT[PK_products]PRIMARYKEYCLUSTERED([id]ASC)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DUP_KEY=OFF,ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY])ON[PRIMARY]1、采用row_number方法,执行5次,平均下来8秒左右,速度最快。复制代码代码如下:selectno,id,name,cityfrom(selectno=row_number()over(pa...
数据库操作教程 2022-09-23 16:47:47 -
安装sqlserver2000时出现wowexec.exe无反应的解决方法
wowexec.exe是操作系统相关程序,用于支持16位进程。 出品者:MicrosoftCorp. 属于:MicrosoftWindowsOnWindowsExecutionProcess 系统进程:是 后台程序:否 使用网络:否 硬件相关:否 常见错误:未知N/A 内存使用:未知N/A 安全等级(0-5):0 间谍软件:否 Adware:否 病毒:否 木马:否 ※解释: 一直以来大家认为这是WINDOWS的自动更新程序,只要关闭自动更新就不会再出现...
数据库操作教程 2022-09-23 16:47:18 -
Windows下使用性能监视器监控SqlServer的常见指标
上边文章中提到win的性能监视器是监控数据库性能必备的工具,接下来我就给大家介绍一些常见的监控指标,其实无非就是磁盘,cpu,内存等硬件的运行指标还有数据库自身的像锁啊、用户连接数啊、还有就是根据自身业务决定的需要注意的参数指标。1.SQLServerBuffer:BufferCacheHitRatio 这是一个很重要查看内存是否不足的参数...
数据库操作教程 2022-09-23 16:45:42 -
Selectcount(*)、Count(1)和Count(列)的区别及执行方式
在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的...
数据库操作教程 2022-09-23 16:45:13 -
SQL语句之Union和UnionAll的用法
SQL中Union和Join语句非常类似,但是Union有一个限制条件:两个SQL语句所产生的栏位需要是同样的资料种类,最后的结果会看到不同的资料值。格式:[SQL语句1]UNION[SQL语句2]例如:表store_info和表internet_sales使用Union语句:复制代码代码如下:SELECTDateFROMStore_InfoUNIONSELECTDateFROMInternet_Sales结果:或:复制代码代码如下:SELECTDate,SalesFROMStore_InfoUNIONSELECTDate,SalesFROMInternet_Sales结果:最后,UnionAll和Union基本一样,区别在于它的结果是含有重复数据的如:复制代码代码如下:SELECTDateFROMStore_InfoUNIONALLSELECTDateFROMInternet_Sales结果:以上就是SQL语句之Union和UnionAll的用法的全部内容,希望能给大家一个参考,也希望大家多多支持脚本之家...
数据库操作教程 2022-09-23 16:44:03 -
SQLServer正确删除Windows认证用户的方法
前言在SQLServer数据库中,有时候会建立一些Windows认证的账号(域账号),例如,我们公司习惯给开发人员和Support同事开通NT账号权限,如果有离职或负责事宜变更的话,那么要如何正确的删除这些Windows认证账号呢?这篇文章就是来探讨一下如何正确的删除Windows认证账号。如下所示:下面这种方式,仅仅是删除登录名(login),然而并没有删除用户(User)USE[master]GODROPLOGIN[xxxxxxx]GO你删除登录名的时候,就会遇到类似下面的告警信息:Deletingserverloginsdoesnotdeletethedatabaseusersassociatedwiththelogins.Tocompletetheprocess,deletetheusersineachdatabase.Itmaybenecessarytofirsttransfertheownershipofschemastonewusers.也就是说,虽然你删除了登录名,但是对应用户数据库或系统数据库相关的User权限并没有清理,在SQLServer中登录名(ServerLo...
数据库操作教程 2022-09-23 16:42:18 -
SQLServer中row_number函数的常见用法示例详解
一.SQLServerRow_number函数简介ROW_NUMBER()是一个Window函数,它为结果集的分区中的每一行分配一个连续的整数。行号以每个分区中第一行的行号开头...
数据库操作教程 2022-09-23 16:42:08