获取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 属性的值,则自动进行内 ...
随机推荐
- magento里获取用户姓名
Mage::getSingleton('customer/session')->getCustomer()->getFirstname():
- JS复习:第八章
一.全局作用域: 所有在全局作用域中声明的变量.函数都会变成window对象的属性和方法.全局变量不能通过delete操作符删除,而window对象上定义的属性可以. 二.窗口大小 使用resizeT ...
- linshi_temp_erweima_html
<!doctype html><html><head><meta charset="utf-8"><meta content= ...
- Java 序列化 transient关键字
Java 序列化 transient关键字 @author 敏敏Alexia 转自:http://www.cnblogs.com/lanxuezaipiao/p/3369962.html 1. tra ...
- QQ头像一键添加校徽
简书链接地址:http://www.jianshu.com/p/dcb2cbd07e4d 项目展示链接地址:www.zhaozhengyu.cn/SchoolImage/index.html
- 使用Cookie来统计浏览次数,当天重复刷新不增加
这是一种不严谨的做法,在浏览量不是很重要的时候可以使用 var oldCookie = Request.Cookies["newsCookie"]; if (oldCookie = ...
- Python库 - import matplotlib.pyplot as plt 报错问题
为了避免各种问题,请使用最新的2.7.13安装文件 1.先设置好环境变量 在path变量中设置好以下路径: C:\Python27\Scripts C:\Python27 2.大部分报错问题 ...
- linux命令英文缩写的含义(方便记忆)
命令缩写: ls:list(列出目录内容) cd:Change Directory(改变目录) su:switch user 切换用户 rpm:redhat package manager 红帽子打包 ...
- Oracle Day01 数据库基础
1.数据库 它是一种软件产品,是用于存放数据.管理数据的存储仓库,是有效组织在一起的数据集合. 2.数据库和数据库对象的概念 数据库:指的是物理磁盘上的文件 数据库对象:存在于内存中用于跟数据库文件进 ...
- was性能调优
数据库设置 使用此页面来指定数据库会话支持的设置. 要查看此管理控制台页面,请单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > ...