sql server
HOLD ON!
莫见长安行乐处,空令岁月易蹉跎。
展开
-
设置SQLServer的行版本控制隔离级别
设置SQLServer的行版本控制隔离级别1.--查询数据库状态select name,user_access,user_access_desc,snapshot_isolation_state,snapshot_isolation_state_desc,is_read_committed_snapshot_on from sys.databases2. 查看当前数据库的隔离级别 DBCC Useroptions-- isolation level 这项的值就代表当前的隔离级别2。 更.转载 2020-10-22 15:06:00 · 1106 阅读 · 0 评论 -
SQL Server: 将截断字符串或二进制数据,快速判断哪个字段超长
SQL Server: 将截断字符串或二进制数据,快速判断哪个字段超长吉普赛的歌上面的出错, 用 SQL Server 的人基本上都遇到过。如果某个表的字段少还好, 有几十甚至更多字段就抓瞎了,如何快速判断哪个字段超长呢?先创建一个存储过程: IF OBJECT_ID('Proc_Util_GetLenOverflowColumns') IS NOT NULL DROP PROC Proc_Util_GetLenOverflowColumns GO .转载 2020-10-20 21:53:58 · 6861 阅读 · 0 评论 -
SQL Server: 索引禁用、启用状态对比测试
SQL Server: 索引禁用、启用状态对比测试吉普赛的歌索引禁用备注:1. 索引禁用会释放空间, 所以索引禁用只是保留了逻辑结构, 禁用再启用与新建索引都是申请新空间, 时间上差别不会太大(稍快一点);2. 聚集索引不能禁用, 否则select, insert 之类的操作都无法完成。提示:查询处理器无法生成计划,因为表或视图 'xxx' 的索引 'PK_xxx' 被禁用。脚本: --创建新表 dbo.Person , 不影响原来的表 Person.Pe...转载 2020-10-12 20:28:47 · 996 阅读 · 0 评论 -
sql server-索引类型
索引 可用的索引类型 下表列出了SQL Server中可用的索引类型,并提供了指向其他信息的链接。 可用的索引类型 索引类型 描述 其他信息 哈希 借助于哈希索引,可通过内存中的哈希表来访问数据。哈希索引的内存用量固定不变,是存储桶数量的函数。 在内存优化表上使用索引的准则哈希索引设计指南 内存优化非聚集索引 对于内存优化的非聚集索引,内存使用量依赖于行计数以及索引键列的大小 在内存优化表上使用索...转载 2020-10-12 20:25:41 · 538 阅读 · 0 评论 -
聚集和非聚集索引
聚集和非聚集索引聚集和非聚集索引简单概括:聚集索引就是以主键创建的索引 非聚集索引就是以非主键创建的索引区别:聚集索引在叶子节点存储的是表中的数据 非聚集索引在叶子节点存储的是主键和索引列 使用非聚集索引查询出数据时,拿到叶子上的主键再去查到想要查找的数据。(拿到主键再查找这个过程叫做回表)非聚集索引也叫做二级索引,不用纠结那么多名词,将其等价就行了~非聚集索引在建立的时候也未必是单列的,可以多个列来创建索引。此时就涉及到了哪个列会走索引,哪个列不走索引的问题了(最左匹配.转载 2020-10-12 20:23:20 · 328 阅读 · 0 评论 -
SqlServer中查看索引的使用情况
SqlServer中查看索引的使用情况 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 --查看数据库索引的使用情况 selectdb_name(database_id)asN'TOPK_TO_DEV',--库名 object_name(a.object_id...转载 2020-09-27 14:27:50 · 1027 阅读 · 1 评论 -
SQLSERVER 数据类型int、bigint、smallint 和 tinyint范围
SQLSERVER 数据类型int、bigint、smallint 和 tinyint范围【bigint】从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。【int】从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。转载 2020-09-24 08:33:34 · 6305 阅读 · 0 评论 -
SQL Server AlwaysOn读写分离配置
SQL Server AlwaysOn读写分离配置pursuer.chen 备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 概述Alwayson相对于数据库镜像最大的优势就是可读副本,带来可读副本的同时还添加了一个新的功能就是配置只读路由实现读写分离;当然这里的读写分离稍微夸张了一点,只能称之为半读...转载 2020-09-21 17:06:18 · 1652 阅读 · 0 评论 -
sqlserver 字符串是否相等
sqlserver 字符串是否相等要用CHARINDEX() 来判断,并且2113需要判断长度比如5261如下 1 select*fromtablewherecharindex(字段41021,字段2)>0andlen(字段1)=len(字段2) 简单解释就是字段1与字段2长度一致,并且包含1653在其中,那么这样就可以判断两个字符串相等了...转载 2020-09-14 20:08:45 · 6770 阅读 · 0 评论 -
SQL SERVER 视图优化经历
SQL SERVER 视图优化经历系统中要求对HIS数据进行效益统计,因为HIS数据是需要[欢迎转载听雨的人博客cnblogs.com/GoCircle]第三方提供接口导入的,不清楚数据量大小,所以视图以业务为主未对其做性能优化(当时编写试图时就是几条简单的测试数据)如今在项目接口实施完成后查看视图执行效率,发现执行了很久很久,具体执行时间忘记了,书写不规范,[欢迎转载听雨的人博客cnblogs.com/GoCircle]性能两行泪(HIS系统就提供了近三千万条数据)发现不仅仅浪费了大量时间转载 2020-09-09 08:15:24 · 510 阅读 · 0 评论 -
SQLServer之UNIQUE约束
UNIQUE约束添加规则1、唯一约束确保表中的一列数据没有相同的值。2、与主键约束类似,唯一约束也强制唯一性,但唯一约束用于非主键的一列或者多列的组合,且一个表可以定义多个唯一约束。使用SSMS数据库管理工具添加UNIQUE约束1、连接数据库,选择数据库,选择数据表-》右键点击-》选择设计。2、在表设计窗口中-》选择要添加约束的数据列-》右键点击-》选择索引/键。3、在索引/键窗口中-》点击添加。4、选择新增的索引/键-》在常规窗口中-》类型选择唯一键。5、在转载 2020-08-27 11:15:22 · 2652 阅读 · 0 评论 -
SQL Server 事务日志传输
SQL Server 事务日志传输2014-04-17 16:56pursuer.chen 阅读(4657) 评论(0)编辑收藏概述 可以使用日志传送将事务日志不间断地从一个数据库(主数据库)发送到另一个数据库(辅助数据库)。不间断地备份主数据库中的事务日志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。目标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到一个或多个只读的辅助服务器。日志传送可与使用完整或大容量日志恢复模式的数据库...转载 2020-08-26 15:10:44 · 347 阅读 · 0 评论 -
CREATE TABLE 语句后的 ON [PRIMARY] 起什么作用
CREATE TABLE 语句后的 ON [PRIMARY] 起什么作用CREATE TABLE [dbo].[table1] ([gh] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL PRIMARY KEY ,[gh2] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ) ON [PRIMARY]比如以上创建表的语句,不知最后的...转载 2020-08-26 12:57:25 · 1871 阅读 · 0 评论 -
SQLServer 2008以上误操作数据库恢复方法——日志尾部备份
SQLServer 2008以上误操作数据库恢复方法——日志尾部备份發糞塗牆原文出处:http://blog.csdn.net/dba_huangzj/article/details/8491327问题: 经常看到有人误删数据,或者误操作,特别是update和delete的时候没有加where,然后就喊爹喊娘了。人非圣贤孰能无过,做错可以理解,但不能纵容,这个以后再说,现在先来解决问题。 遇到这种情况,一般都是没有做备份,不然也不会来发问了。首先要冷静,否则...转载 2020-08-21 09:48:35 · 339 阅读 · 0 评论 -
SQL Server中使用Check约束提升性能
SQL Server中使用Check约束提升性能 在SQL Server中,SQL语句的执行是依赖查询优化器生成的执行计划,而执行计划的好坏直接关乎执行性能。 在查询优化器生成执行计划过程中,需要参考元数据来尽可能生成高效的执行计划,因此元数据越多,则执行计划更可能会高效。所谓需要参考的元数据主要包括:索引、表结构、统计信息等,但还有一些不是很被注意的元数据,其中包括本文阐述的Check约束。 查询优化器在生成执行计划之前有一个阶段叫做代数树优化,比如说下面这个简单查询:...转载 2020-08-14 11:14:22 · 315 阅读 · 0 评论 -
SQL Server 2008 R2 删除过期备份
SQL Server 2008 R2 删除过期备份obscure94 前一段时间做了SQL Server 2008 R2的维护计划,当然最重要的一点就是将过期的备份文件自动删除掉,当时建立了“清除历史记录”任务,过了几天,想当然的以为过期的备份文件就会被删掉,结果一看没有删掉,硬盘都要被占满了。还以为维护计划在执行过程中有错误出现,结果一查没有任何错误,显示执行完成,那么为什么没有删除呢?手工执行了一下“清楚历史记录”任务的T-SQL 语句 执行成功,但是过期备份文件没有被删除掉。 ...转载 2020-08-14 10:34:30 · 366 阅读 · 0 评论 -
SQL Server 2008如何创建定期自动备份任务
SQL Server 2008如何创建定期自动备份任务日常工作中利用SQL SQLSERVER 2008的维护计划对数据库进行定期自动备份,这样一方面可以对数据库进行备份保证数据安全,另一方面也可以减轻对维护人员的负担。本文我们就介绍SQL Server 2008创建自动备份任务的方法,希望能对您有所帮助。作者:佚名来源:www.ip-tcp.com|2011-07-26 17:45我们知道,利用SQL Server 2008数据库可以实现数据库的定期自动备份。方法是用SQL SERVER 20转载 2020-08-14 10:29:23 · 217 阅读 · 0 评论 -
SQL获取本周,上周,本月,上月的开始时间和结束时间
SQL获取本周,上周,本月,上月的开始时间和结束时间DECLARE @ThisWeekStartTime NVARCHAR(100),@ThisWeekEndTime NVARCHAR(100),--本周 @LastWeekStartTime NVARCHAR(100),@LastWeekEndTime NVARCHAR(100),--上周 @ThisMonthStartTime NVARCHAR(100),@ThisMonthEndTime NV转载 2020-08-05 13:51:14 · 1314 阅读 · 0 评论 -
SQL Server聚合函数与聚合开窗函数 (转载)
SQL Server聚合函数与聚合开窗函数 (转载)以下面这个表的数据作为示例。什么是聚合函数?聚合函数:聚合函数就是对一组值进行计算后返回单个值(即分组)。聚合函数在计算时都会忽略空值(null)。所有的聚合函数均为确定性函数。即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性。COUNT(统计函数):COUNT函数可以用来返回所有选中行的总行数,它有一个参数,可以是 '*'(即所有列)、'1'(效果同前者类似)和具体的列名,还可以是一个表达式(例如:..转载 2020-08-04 14:57:34 · 629 阅读 · 0 评论 -
SqlServer中Exists的使用
SqlServer中Exists的使用2019-03-03 10:03:24changuncle阅读数 2515更多分类专栏:SQL基础版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/xiaouncle/article/details/880848891、简介...转载 2019-10-09 14:12:41 · 638 阅读 · 0 评论 -
SQL Server中的事务(附有实例)
SQL Server中的事务(附有实例)legendaryhaha一、事务 定义: 例如: 在银行活动中,“由账户A转移资金额X到账户B”是一个典型的银行数据库业 务。这个业务可以分解为两个动作: 1)从账户A中减掉金额X 2)在账户B中加入金额X 这两个动作应当构成一个不可分割的整体,要么完成其中的所有动作,要么不执 ...转载 2020-07-31 10:46:03 · 939 阅读 · 0 评论 -
SQL Server事务的使用
SQL Server事务的使用偏爱mango的小姐姐1.定义:事务是作为单个逻辑单元执行的一系列操作,它是一个不可分割的工作逻辑单元。它包含了一组数据库操作命令,这组命令要么全部执行,要么全部不执行。举个例子,我们经常用到的 ATM 存取款机,比如转账的时候,是先减去转出账户的金额,然后再在指定转入账户的金额加上转出的金额。如果刚好这个时候转出的操作已经执行完成,但是由于系统的故障,导致转入的操作失败了。那么怎么办?这就需要用到事务了,只要事务里面有一条命令未成功执行,那么数据就会回滚到事务转载 2020-07-31 10:43:56 · 268 阅读 · 0 评论 -
SQL Server中的高可用特性
SQL Server中的高可用特性工作中使用SQL Server高可用特性的场景也就是数据库主从复制,可以用的特性有三个:复制、镜像、日志传送。复制(发布-订阅模式):复制严格来说并不算是一个为高可用性设计的功能,但的确可以被应用于高可用性。复制提供了数据库对象级别的保护。复制使用的是发布-订阅模式,即由主服务器(称为发布服务器)向一个或多个辅助服务器或订阅服务器发布数据。复制可在这些服务器间提供实时的可用性和可伸缩性。它支持筛选,以便为订阅服务器提供数据子集,同时还支持分区更新。订阅服务器处于联机状态转载 2020-07-29 09:41:40 · 1013 阅读 · 0 评论 -
SqlServer获取当前日期
SqlServer获取当前日期1. 获取当前日期select GETDATE()格式化:select CONVERT(varchar,GETDATE(),120) --2018-04-23 14:47:102. 获取当前年--2017select DATENAME(YYYY,GETDATE()) --2018select DATENAME(YEAR,GETDATE()) --2018select DATEPART(YYYY,GETDATE()) --2018..转载 2020-07-28 10:02:30 · 10191 阅读 · 0 评论 -
sqlserver 问题来了,视图不会自动更新,如果是用*创建的
sqlserver 问题来了,视图不会自动更新,如果是用*创建的奇葩问题一个create view时候用的select * 关联了几个表创建的。后修改select * 的表,结果悲剧了。select * from 视图得到的结果绝对让你想哭。不报错,不提示;直接结果错位;这个错位直接导致程序正常的sql查询得到错误的结果。还以为是程序问题呢,谁知道是数据库的坑。必须手动更新视图才可以生效;方法2种:1、alter viewvw_test找到视图重新执行下;2、sp..转载 2020-07-25 09:07:55 · 2064 阅读 · 1 评论 -
sql server 取多个数字或者时间的最大值
sql server 取多个数字或者时间的最大值SELECT MAX(b.a) from (select distinct * from (values (1), (1), (1), (2), (5), (1), (6)) as Y(a)) as bSELECT MAX(b.b) from (select distinct * from (values (1,2), (1,3), (1,4), (2,5), (5,6), (1,7), (6,8)) as Y(a,b)) as bSELECT转载 2020-07-25 08:52:33 · 3928 阅读 · 0 评论 -
SQL Server中的Merge Into
SQL Server中的Merge Into简介 Merge关键字是一个神奇的DML关键字。它在SQL Server 2008被引入,它能将Insert,Update,Delete简单的并为一句。MSDN对于Merge的解释非常的短小精悍:”根据与源表联接的结果,对目标表执行插入、更新或删除操作。例如,根据在另一个表中找到的差异在一个表中插入、更新或删除行,可以对两个表进行同步。”,通过这个描述,我们可以看出Merge是关于对于两个表之间的数据进行操作的。 可以想象出,需要使用Mer...转载 2020-07-25 08:42:14 · 387 阅读 · 0 评论 -
sqlserver varchar和Nvarchar区别
sqlserver varchar和Nvarchar区别原文:https://www.cnblogs.com/qanholas/p/3298882.htmlvarchar和Nvarchar区别Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示如果还为了这个纠结,就直接看看后面的解说,做决定吧。一般如果用到中...转载 2019-09-03 16:44:24 · 1356 阅读 · 0 评论 -
SQL SERVER 查询表的各字段长度
SQL SERVER 查询表的各字段长度SELECT a.name,b.name,c.DATA_TYPE,b.max_length FROM sys.tables a join sys.columns b on b.object_id = a.object_idjoin INFORMATION_SCHEMA.COLUMNS c on b.name=c.COLUMN_NAME and a.name=c.TABLE_NAMEwhere a.name='shipment_header'...转载 2020-07-24 13:31:33 · 4739 阅读 · 2 评论 -
sql server 查询时会锁表吗?
sql server 查询时会锁表吗?sql server在执行查询语句时会锁表。在锁表期间禁止增删改操作。如果不想锁表,那就再表名或别名后面加上WITH(NOLOCK)如下所示:SELECT Id FROM dbo.T_Table WITH(NOLOCK) WHERE Id = 1...转载 2020-07-24 12:47:58 · 3138 阅读 · 0 评论 -
sql server 查看死锁,以及执行语句
sql server 查看死锁,以及执行语句第二秒关注2019.07.11 15:43:14字数 0阅读 607select t1.resource_type [资源锁定类型] , DB_NAME(resource_database_id) as 数据库名 , t1.resource_associated_entity_id 锁定对象 , t1转载 2020-07-22 20:03:38 · 1222 阅读 · 0 评论 -
update left join在MySQL和Sql Server中的用法
update left join在MySQL和Sql Server中的用法木林森淼 2018-03-13 10:55:52 3299 收藏分类专栏: Sql Server版权例如有两个表:user(id, uname, score), student(id, surname, personal_name, score)。现在需要将student表中的学生surname和personal_name拼接后与user的uname匹配,然后修改user表中对应人员的分数情况。实际使用中是设计到了子查询..转载 2020-07-21 10:24:38 · 1222 阅读 · 0 评论 -
从 SET FMTONLY 到表的元数据
从 SET FMTONLY 到表的元数据RedvelvedSET FMTONLY有时候在执行SQL查询语句时,仅仅需要知道检索的元数据,而不是具体的数据行,可以设置SET FMTONLY ON。SET FMTONLY只将元数据返回给客户端。语法SET FMTONLY { ON | OFF }注释当 SET FMTONLY 为 ON 时,将不对行进行处理,也不将行作为请求的结果发送到客户端。SET FMTONLY 的设置是在执行或运行时设置,而不是在分析时设置。权限SET F.转载 2020-07-18 15:20:15 · 231 阅读 · 0 评论 -
存储过程之SET NOCOUNT ON/OFF 含义
存储过程之SET NOCOUNT ON/OFF 含义Nancy0207每次我们在使用查询分析器调试SQL语句的时候,通常会看到一些信息,提醒我们当前有多少个行受到了影响,这是些什么信息?在我们调用的时候这些信息有用吗?是否可以关闭呢?答案是这些信息在我们的客户端的应用程序中是没有用的,这些信息是存储过程中的每个语句的DONE_IN_PROC信息。我们可以利用SETNOCOUNT来控制这些信息,以达到提高程序性能的目的。MSDN中帮助如下:SETNOCOUNT使返回的结...转载 2020-07-18 15:18:23 · 525 阅读 · 0 评论 -
SQL Server-判断日期是否为周六 周日
SQL Server判断日期是否为周六 周日-小龙人DATEPART返回代表指定日期的指定日期部分的整数。语法DATEPART(datepart,date)参数datepart是指定应返回的日期部分的参数。下表列出了 Microsoft® SQL Server™ 识别的日期部分和缩写。日期部分 缩写 year yy, yyyy quarter qq, q month mm, m dayofyear dy, y d...转载 2020-07-18 13:37:09 · 4214 阅读 · 0 评论 -
把存储过程结果集SELECT INTO到临时表
把存储过程结果集SELECT INTO到临时表把存储过程结果集SELECT INTO到临时表 在开发过程中,很多时候要把结果集存放到临时表中,常用的方法有两种。 一. SELECT INTO 1. 使用select into会自动生成临时表,不需要事先创建 select * into #temp from sysobjectsselect * from #temp 2. 如果当前会话中,已存在同名的临时表 select * into #temp from sysobject转载 2020-07-18 13:03:57 · 1714 阅读 · 0 评论 -
sql server查看表大小
sql server查看表大小查看SqlServer 数据库中各个表多少行:SELECT A.NAME ,B.ROWS FROM sysobjects A JOIN sysindexes B ON A.id = B.id WHERE A.xtype = 'U' AND B.indid IN(0,1) ORDER BY B.ROWS DESC数据库磁盘占用量:select name, CAST(convert(float,size) * (8192.0/1024.0)/1024 AS ..转载 2020-07-18 08:45:01 · 3988 阅读 · 0 评论 -
SQL Server中identity(自增)的用法
SQL Server中identity(自增)的用法码仙♥ 2018-08-16 20:47:42 56842 收藏 31分类专栏: Sql Server版权目录零、码仙励志一、identity的基本用法1.含义2.语法3.实例演示4.删除一条记录接着插入二、重新设置identity的值1.语法2.实例演示三、向identity字段插入数据1.语法2.实例演示零、码仙励志老要靠别人的鼓励才去奋斗的人不算强者;有别人的鼓励还不去奋斗的人简直就..转载 2020-07-17 19:01:36 · 344 阅读 · 0 评论 -
SQLserver找出执行慢的SQL语句
SQLserver找出执行慢的SQL语句如我般骄傲 2018-10-16 16:41:02 4327 收藏分类专栏: SQL版权declare @sKssj varchar(23),@sJssj varchar(23)set @sKssj='2012-05-07 01:35:00.000'set @sJssj='2012-05-07 15:00:00.000'SELECT(total_elapsed_time / execution_count)/1000 N'平均...转载 2020-07-15 16:27:30 · 483 阅读 · 0 评论 -
SQLServer如何清除缓存?
SQLServer如何清除缓存?--1. 将当前数据库的全部脏页写入磁盘。“脏页”是已输入缓存区高速缓存且已修改但尚未写入磁盘的数据页。-- CHECKPOINT 可创建一个检查点,在该点保证全部脏页都已写入磁盘,从而在以后的恢复过程中节省时间。CHECKPOINT--2. 若要从缓冲池中删除清除缓冲区,请首先使用CHECKPOINT 生成一个冷缓存。这可以强制将当前数据库的全部脏页写入磁盘,然后清除缓冲区。-- 完成此操作后,便可发出DBCC DROPCLEANBUFFERS 命令来转载 2020-07-15 16:27:03 · 1865 阅读 · 0 评论