-
sqlserver中with(nolock)深入分析
在查询语句中使用NOLOCK和READPAST处理一个数据库死锁的异常时候,其中一个建议就是使用NOLOCK或者READPAST。有关NOLOCK和READPAST的一些技术知识点:对于非银行等严格要求事务的行业,搜索记录中出现或者不出现某条记录,都是在可容忍范围内,所以碰到死锁,应该首先考虑,我们业务逻辑是否能容忍出现或者不出现某些记录,而不是寻求对双方都加锁条件下如何解锁的问题...
数据库操作教程 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 -
一个删选数据的例子,使用GROUP、DISTINCT实例解析
需求描述:一个表MyImage,列有:号码ID,路径PATH如:ID PATH1 C:/1 C:/1 D:/2 C:/2 C:/3 A:/3 C:/4 D:/写个SQL语句,返回这样的记录的ID号:相同ID存在不同PATH。如上例子,正确的结果应是:ID13(ID2没有不同PATH,ID4只有一条记录不存在不同PATH) 这是我的SQL语句:复制代码代码如下:selectIDfrom[MyImage]asA groupbyID having ( selectCOUNT(distinct(Path))from[MyImage]asBwhereB.ID=A.ID ) >1...
数据库操作教程 2022-09-23 16:46:43 -
sum(casewhenthen)(判断男女生的个数)
判断类似一个班级的男生和女生的人数,用sum(cesewhenthen)复制代码代码如下:selectcount(er.execute_result),sum(caseer...
数据库操作教程 2022-09-23 16:46:40 -
Selectcount(*)、Count(1)和Count(列)的区别及执行方式
在SQLServer中Count(*)或者Count(1)或者Count([列])或许是最常用的聚合函数。很多人其实对这三者之间是区分不清的...
数据库操作教程 2022-09-23 16:45:13 -
SQLServer2012身份验证(Authentication)
在保密你的服务器和数据,防备当前复杂的攻击,SQLServer有你需要的一切。但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念...
数据库操作教程 2022-09-23 16:44:30 -
SQLServer2016里的sys.dm_exec_input_buffer的问题
我们都知道DBCC命令有点尴尬,因为你不能在T-SQL查询里调用它们,你也不能关联它们的输出到其它DMV/DMF。例如你想为每个用户会话返回最后一个执行的SQL语句....sys.dm_exec_input_buffer在SQLServer2016里,事情就变得简单多,因为微软为你提供了一个新DMFsys.dm_exec_input_buffer,它和DBCCINPUTBUFFER一样做同样的工作...
数据库操作教程 2022-09-23 16:44:14 -
基于Python的SQLServer数据库实现对象同步轻量级
缘由日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话,就会会存在相当一部分反复的手工操作...
数据库操作教程 2022-09-23 16:43:44 -
SQLserver数据库创建代码filegroup文件组修改的示例代码
数据库的操作:1.对数据文件的操作(添加,删除,修改文件的初始大小,最大大小,步长)2.数据库文件的收缩3.数据库的只读/读写 read_only只读 read_write可读写 read_only表示只读 read_write表示可读可写4.数据库的限制访问(单用户,多用户,限制用户模式)5.数据库脱机/联机 offline 脱机alterdatabaselovesetoffline online联机 alterdatabaselovesetonline 6.数据库附加/分离。 sp_attach_db 附加 SP_detach_db分离 附加sp_attach_db分离sp_detach_db offline脱机online联机本文重点给大家介绍SQLserver数据库创建代码filegroup文件组修改,实例代码...
数据库操作教程 2022-09-23 16:43:03 -
SQLServer通过withas方法查询树型结构
一、withas公用表表达式 类似VIEW,但是不并没有创建对象,WITHAS公用表表达式不创建对象,只能被后随的SELECT语句,其作用: 1.实现递归查询(树形结构) 2.可以在一个语句中多次引用公用表表达式,使其更加简洁二、非递归的公共表达式 可以是定义列或自动列和selectinto效果差不多--指定列withwithTmp1(code,cName)as(selectid,NamefromClassUnis)select*fromwithTmp1--自动列withwithTmp2as(select*fromClassUniswhereAuthor='system')select*fromwithTmp2三、递归的方式 通过UNIONALL连接部分。通过连接自身whitas创建的表达式,它的连接条件就是递归的条件...
数据库操作教程 2022-09-23 16:43:03 -
SQLyog连接MySQL8.0报2058错误的完美解决方法
引言用SQLyog连接MySQL8.0(社区版:mysql-installer-community-8.0.15.0.msi),出现错误2058(Plugincaching_sha2_passwordcouldnotbeloaded:xxxx),通过查询资料了解了该错误的原因并在本文中提出了该问题的方案。原因该错误提示如下图所示:具体原因:新的MySQL8.0安装,在初始化数据目录时,将‘root'@'localhost'创建帐户,并且该帐户caching_sha2_password默认使用,密码的加密方法发生了改变,因此SQLyog不能正常解析,才报出如上错误...
数据库操作教程 2022-09-23 16:42:56