Welcome 微信登录

首页 / 数据库 / SQLServer

查询Sqlserver数据库死锁的一个存储过程分享

查询Sqlserver数据库死锁的一个存储过程分享

使用sqlserver作为数据库的应用系统,都避免不了有时候会产生死锁, 死锁出现以后,维护人员或者开发人员大多只会通过sp_who来查找死锁的进程,然后用sp_kill杀掉。利用sp_who_lock这个存储过程,可以很方便的知道哪个进程出现了死锁,出现死锁的问题在哪里.创建sp_who_lock存储过程CREATE procedure sp_who_lock as begin declare @spid int declare @blk int dec...
sql语句优化之SQL Server(详细整理)

sql语句优化之SQL Server(详细整理)

MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢 6、查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7、锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8、sp_lock,sp_who,活动的用户查看,原因是读写竞争资源。 9、返回...
SQL Server中的Forwarded Record计数器影响IO性能的解决方法

SQL Server中的Forwarded Record计数器影响IO性能的解决方法

一、简介 最近在一个客户那里注意到一个计数器很高(Forwarded Records/Sec),伴随着间歇性的磁盘等待队列的波动。本篇文章分享什么是forwarded record,并从原理上谈一谈为什么Forwarded record会造成额外的IO。二、存放原理 在SQL Server中,当数据是以堆的形式存放时,数据是无序的,所有非聚集索引的指针存放指向物理地址的RID。当数据行中的变长列增长使得原有页无法容纳下数据行时,数据将会移动到新的页中,并在...
强制SQL Server执行计划使用并行提升在复杂查询语句下的性能

强制SQL Server执行计划使用并行提升在复杂查询语句下的性能

通过观察执行计划,发现之前的执行计划在很多大表连接的部分使用了Hash Join,由于涉及的表中数据众多,因此查询优化器选择使用并行执行,速度较快。而我们优化完的执行计划由于索引的存在,且表内数据非常大,过滤条件的值在一个很宽的统计信息步长范围内,导致估计行数出现较大偏差(过滤条件实际为15000行,步长内估计的平均行数为800行左右),因此查询优化器选择了Loop Join,且没有选择并行执行,因此执行时间不降反升。由于语句是在存储过程中实现,因此我们直...
随机抽取的sql语句 每班任意抽取3名学生

随机抽取的sql语句 每班任意抽取3名学生

学校有一、二、三。。。。至十班。假设每个班上有30名学生。张、李、刘、苏等现有这样的表 student ,字段 class 及name 。其中class 表示班级,name 表示每班学生姓名。要求每班任意抽取3名学生出来,进行学校大扫除。请写出这样的SQL语句。select name from (select (row_number() over (partition by class order by checksum(newid()))) id,* f...
Linux环境中使用BIEE 连接SQLServer业务数据源

Linux环境中使用BIEE 连接SQLServer业务数据源

1、客户端 在客户端首先配置odbc数据源,可以直接在运行中输入odbcad32,打开配置界面--系统DNS---添加 选择SQLserver的相关驱动,一般选择wire protocol型的驱动,配置sqlserver数据库连接信息,测试一下是否连接成功,并保存退出。 注意此时的ODBC数据源名称要记录下来,而且一旦确定以后最好不要改动。因为如果改动,服务器端也要做修改。 打开Administrator tools,选择导入元数据,选择配置好的sqlse...
获取SQL Server2014的安装时间

获取SQL Server2014的安装时间

如果你没有特意记录安装日期(实际大部分人都不会这样做),那么有没有办法从SQL Server里查询到呢? 想想我们在安装的时候,肯定会有Windows认证登录账号的创建信息,我们可以通过查询它来确定安装日期。查询的T-SQL如下:SELECT * FROM SYS.SERVER_PRINCIPALS 其输出的结果如下:从结果中,我们可以看到create_date这一栏,比如通过name为NT AUTHORITYSYSTEM的登录账号的创建日期,就知道SQL...
SQL中DATEADD和DATEDIFF的用法示例介绍

SQL中DATEADD和DATEDIFF的用法示例介绍

通常,你需要获得当前日期和计算一些其他的日期,例如,你的程序可能需要判断一个月的第一天或者最后一天。你们大部分人大概都知道怎样把日期进行分割(年、月、日等),然后仅仅用分割出来的年、月、日等放在几个函数中计算出自己所需要的日期!在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能不一样,这完全由哪...
SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案

SQL Server 2012无法连接到WMI提供程序(Cannot connect to WMI provider)解决方案

今天一位同事在启动自己工作机的SQL Server 2012配置管理器时遇到如下报错:无法连接到 WMI 提供程序。您没有权限或者该服务器无法访问。请注意,您只能使用 SQL Server 配置管理器来管理 SQL Server 2005 服务器。 找不到指定的模块。 [0x80041010]Cannot connect to WMI provider. You do not have permission or the server is unreach...
使用sql语句创建和删除约束示例代码

使用sql语句创建和删除约束示例代码

使用sql语句创建和删除约束 约束类型 主键约束(Primary Key constraint) --:要求主键列数据唯一,并且不允许为空。唯一约束(Unique constraint) --:要求该列唯一,允许为空,但只能出现一个空值。检查约束(Check constraint) --:某列取值范围限制,格式限制等,如有关年龄、邮箱(必须有@)的约束。默认约束(Default constraint) --:某列的默认值,如在数据库里有一项数据很多重复,可...
SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法

SQL Server降权运行 SQL Server 2000以GUESTS权限运行设置方法

SQL2000数据库由于自身漏洞问题,黑客很容易通过他取得系统管理员权限。SQL默认以SYSTEM权限运行,权限超级强大。为了让服务器更安全,建议设置SQL2000以GUESTS权限运行,让黑客即使入侵了数据库,也没法取得系统管理员权限,防止进一步造成破坏。具体设置方法如下:1、建立一个帐户(这里假定为sqlservice),属于GUESTS组,注意取消其他权限,只允许GUESTS组,如下图:2、进入SQL SERVER安全目录,设置“sqlservice...
<< 141 142 143 144 145 146 147 148 149 150 >>