获取sql执行时间
sql server中获取要执行的sql或sql块的执行时间,方法之一如下:
declare @begin datetime,@end datetime
set @begin =getdate()
--your sql
set @end=getdate()
PRINT DATEDIFF(millisecond, @begin, @end)/1000.0 --单位:s
测试执行getdate()方法要花多长时间:
declare @begin datetime,@end datetime
set @begin =getdate()
select getdate()
set @end=getdate()
PRINT DATEDIFF(millisecond, @begin, @end)/1000.0 --单位:s
执行结果截图如下:
在消息中,可见执行getdate()方法的时间是极短,可以忽略不计!
下面,以查询我本地的[user]表为例进行测试:
执行后的当前时间减去执行前的当前时间,即为sql或sql块的执行用时。
项目中,程序想拿到这个时间,只需把这个sql块封装成一个存储过程,存储过程有一个output参数,
把最后一行的print换成赋值给output输出参数即可。
存储过程如下:
CREATE PROCEDURE GetExecuteTimeProc
@executeTime decimal(18,3) output
AS
begin
declare @begin datetime,@end datetime
set @begin =getdate()
select * from [user]
waitfor delay'00:00:5'--暂停5秒,模拟查询
set @end=getdate()
set @executeTime=cast((DATEDIFF(millisecond, @begin, @end)/1000.0) as decimal(18,3))
end
GO
测试demo代码:
static void Main(string[] args)
{
string sql = "GetExecuteTimeProc";
SqlParameter[] parameters =
{
new SqlParameter("@executeTime",SqlDbType.Decimal){Direction=ParameterDirection.Output,Value=}
};
DataTable dt = DBHelper.ExecuteSelect(sql, parameters,CommandType.StoredProcedure).Tables[];
decimal executeTime = Convert.ToDecimal(parameters[].Value);
int rowCount = ;
if (dt != null)
{
rowCount = dt.Rows.Count;
}
Console.WriteLine("一共有{0}行数据\n查询耗时{1}秒",rowCount,executeTime);
Console.ReadKey();
}
DBHelper类:
public class DBHelper
{
public static DataSet ExecuteSelect(string sql, SqlParameter[] param, CommandType commandType)
{
string ConnectionString = Properties.Resources.conStr.ToString();
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(ConnectionString))
{
conn.Open();
using (SqlCommand cmd =new SqlCommand(sql,conn))
{
try
{
cmd.CommandType=commandType;
if (param != null)
{
foreach (var item in param)
{
cmd.Parameters.Add(item);
}
}
SqlDataAdapter sda=new SqlDataAdapter(cmd);
sda.Fill(ds);
}
catch (Exception ex)
{
throw;
}
}
}
return ds;
}
}
运行截图:
获取sql执行时间的更多相关文章
- SQL:获取语句执行时间2
获取sql执行时间方法2 --清除缓存 CHECKPOINT; DBCC DROPCLEANBUFFERS; DBCC FREEPROCCACHE; DBCC FREESYSTEMCACHE ('AL ...
- php 获取代码执行时间和消耗的内存
做一些php性能测试的时候,要获取代码执行时间和消耗的内存,查了一下资料,发现php有自带的函数可以实现这个功能,具体实现代码如下: $t1 = microtime(true);// ... 执行代码 ...
- EXPLAIN PLAN获取SQL语句执行计划
一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...
- 使用ttXactAdmin、ttSQLCmdCacheInfo、ttSQLCmdQueryPlan获取SQL相关具体信息[TimesTen运维]
使用ttXactAdmin.ttSQLCmdCacheInfo.ttSQLCmdQueryPlan获取SQL相关具体信息,适合于tt11以上版本号. $ ttversion TimesTen Rele ...
- MySQL 的性能(上篇)—— SQL 执行时间分析
简介 文中内容均为阅读前辈的文章所整理而来,参考文章已在最后全指明 本文分为上下两篇: 上篇:MySQL 的 SQL 执行时间分析 下篇:MySQL 性能优化 后端开发必然会接触到数据库,数据层的优劣 ...
- Java 获取SQL查询语句结果
step1:构造连接Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnec ...
- linux --> 获取进程执行时间
获取进程执行时间 一.时间概念 在linux下进行编程时,可能会涉及度量进程的执行时间.linux下进程的时间值分三种: 时钟时间(real time):指进程从开始执行到结束,实际执行的时间. 用户 ...
- Oracle中SQL调优(SQL TUNING)之最权威获取SQL执行计划大全
该文档为根据相关资料整理.总结而成,主要讲解Oracle数据库中,获取SQL语句执行计划的最权威.最正确的方法.步骤,此外,还详细说明了每种方法中可选项的意义及使用方法,以方便大家和自己日常工作中查阅 ...
- C# array与arraylist区别及获取sql字段名
array与arraylist的区别: 1. Array 的容量是固定的,而 ArrayList 的容量是根据需要自动扩展的.如果更改了 ArrayList.Capacity 属性的值,则自动进行内 ...
随机推荐
- jquery远程班备忘
基础第一课: 1. $(obj)获取的是一个集合,因此length最小是1, jquery,如果元素不存在,也不会报错,可通过$(obj).length<1就可以查看该元素是否存在. 2. at ...
- 站在Java的角度看LinkedList
站在Java的角度看,玩队列不就是玩对象引用对象嘛! public class LinkedList<E> implements List<E>, Deque<E> ...
- docker的一些命令
转自:http://blog.csdn.net/wsscy2004/article/details/25878363 查看容器的root用户密码 docker logs <容器名orID> ...
- Leetcode015 3Sum
public class S015 { public List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); ...
- TortoiseGit - 分支管理 -增加分支
1.本地当前在master分支,右击选择Create Branch... 2.填写Branch的名称 3.右击选择Push,在Ref-Local,选择刚才新建的Branch名称 4.点击OK后,在弹出 ...
- Openjudge-计算概论(A)-DNA排序
描述: 给出一系列基因序列,由A,C,G,T四种字符组成.对于每一个序列,定义其逆序对如下: 序列中任意一对字符X和Y,若Y在X的右边(不一定相邻)且Y < X,则称X和Y为一个逆序对. 例如G ...
- javamail邮件发送
// 发送邮件 public static void send(String toEmail, String content) { Session session = getSession(); tr ...
- 显示进度条tqdm
http://www.open-open.com/lib/view/open1451794925808.html
- C#第四天
2.类语法:[public] class 类名{ 字段; 属性; 方法;}写好了一个类之后,我们需要创建这个类的对象,那么,我们管创建这个类的对象过程称之为类的实例化.使用关键字 n ...
- android打包大小笔录
版本 4.6.1 1-1 游戏完整包的大小 1-2 1级代码压缩 1-3 2级代码压缩 1-4 3级代码压缩 2-1 删除核心战斗的部分资源 2-2 2级代码压缩 3-0 删除外部UI的资源 剩下 ...