日度归档:2019年9月15日

mssql sqlserver清空连接数的方法分享


摘要:
下文讲述sqlservr清空连接数的方法分享,如下所示:
实验环境:sqlserver 2008 R2


实现思路:
将数据库设置为“单用户”,然后再设置为“多用户”模式,采用这种方式就可以自动清零数据库连接数,具体操作步骤如下所示:

SELECT COUNT(1) as [当前连接数]
  FROM   [Master].[dbo].[SYSPROCESSES]
    WHERE  [DBID] IN (SELECT [DBID]
                  FROM   [Master].[dbo].[SYSDATABASES]
                  WHERE  NAME = '数据库名称')
--将数据库设置为“单用户模式”
ALTER DATABASE [数据库名称]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
--将数据库设置为“多用户模式”
ALTER DATABASE [数据库名称]
SET MULTI_USER WITH ROLLBACK IMMEDIATE
GO

SELECT COUNT(*) 处理后连接数
FROM   [Master].[dbo].[SYSPROCESSES]
WHERE  [DBID] IN (SELECT [DBID]
                  FROM   [Master].[dbo].[SYSDATABASES]
                  WHERE  NAME = '数据库名称')

备注说明:
SINGLE_USER:同时只允许一个用户在线;
RESTRICTED_USER:只允许db_owner、dbcreator、sysadmin三个角色的成员连接数据库,无同时在线用户数限制;
MULTI_USER:只要有权限就可以连接数据库,无同时在线用户数限制;


相关阅读:
使用”sql脚本”查看当前数据库实时连接数

mssql sqlserver 如何在查询分析器中获取一个sql语句的运行时间(毫秒级)呢?


摘要:
下文讲述在sqlserver数据库中获取一个sql脚本的运行时间的两种方法分享,如下所示:
实验环境:sql server 2008 R2

在日常的脚本编写中,我们常常需要得到一个脚本的运行时长,因为时长就sql运行效率的一个观察点,下文将讲述获取sql脚本的运行时间的两种方法,如下所示:

方法1:
通过在脚本开始和结束加入时间,然后使用datediff输出时间差作为运行时长

 declare @beginTime datetime
 set     @beginTime=getdate()
     /*sql脚本*/
      update *****
      select datediff(ms,@beginTime,getdate()) 
       as [运行时间]


方法2:
通过set statistics time 属性输出sql运行时长

set statistics time on

 /*sql脚本*/
  update *** 
set statistics time off

相关阅读:
DATEDIFF 日期时间差值计算函数使用说明

mssql sqlserver及MySQL 如何查询字段最小值所在行呢?


摘要:
下文讲述sqlserver MySQL中,查询字段最小值所在行的两种方法,如下所示:


实现思路:
方法1:使用Min获取列的最小值,然后使用in 关键字查询行数据
方法2:使用Order by 排序,然后使用top 1显示出相关数据


方法1:使用Min获取

 SELECT *
FROM  tableName
WHERE keyId  IN
          (SELECT MIN(keyId)
         FROM tableName);


方法2:使用Order By 和top关键字获取

 select top 1 * from tableName 
   order by keyId asc 

相关阅读:
min max函数简介
order by简介
top关键字简介
order by 1用法简介
order by 根据条件选择不同的列名进行排序
order by根据列位置排序