使用TUniSQLMonitor监视SQL语句执行的耗时
//代码来自官方论坛
type TUniSqlMonitorEx = class(TUniSqlMonitor)
private
FExecuteDuration: Cardinal;
FFinalEvent: Boolean;
protected
procedure InternalSQLExecute(Obj: TObject; const SQL: string; Params: TDAParams; const Caption: string; BeforeEvent: boolean; var MessageID: Cardinal); override;
public
property ExecuteDuration: Cardinal read FExecuteDuration;
Property IsFinalEvent: Boolean read FFinalEvent;
end; TForm1 = class(TForm)
UniConnection1: TUniConnection;
UniQuery1: TUniQuery;
OracleUniProvider1: TOracleUniProvider;
procedure FormCreate(Sender: TObject);
private
UniSQLMonitor: TUniSqlMonitorEx;
procedure onSQL(Sender: TObject; Text: String; Flag: TDATraceFlag);
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.dfm} { TUniSqlMonitorEx } procedure TUniSqlMonitorEx.InternalSQLExecute(Obj: TObject;
const SQL: string; Params: TDAParams; const Caption: string;
BeforeEvent: boolean; var MessageID: Cardinal);
begin
if BeforeEvent then
begin
FFinalEvent := False;
FExecuteDuration := GetTickCount;
end; inherited; if not BeforeEvent then
begin
FFinalEvent := True;
FExecuteDuration := (GetTickCount - FExecuteDuration);
FOnSQLEvent(Obj, SQL, tfQExecute);
end;
end; procedure TForm1.FormCreate(Sender: TObject);
begin
UniSQLMonitor := TUniSqlMonitorEx.Create(Application.Owner);
UniSQLMonitor.OnSQL := Self.onSQL;
UniQuery1.Execute;
end;
procedure TForm1.onSQL(Sender: TObject; Text: String; Flag: TDATraceFlag);
begin
if (Sender is TUniQuery) and (Flag = tfQExecute) then
begin
if UniSQLMonitor.IsFinalEvent then
ShowMessage(FloatToStr(UniSQLMonitor.ExecuteDuration / 100))
else
FCurrentSQL := Text;
end
else if (Flag = tfError) then
ShowMessage(FCurrentSQL + ', Error:' + Text);
end;
使用TUniSQLMonitor监视SQL语句执行的耗时的更多相关文章
- SQL Server查看Sql语句执行的耗时和IO消耗
原文:SQL Server查看Sql语句执行的耗时和IO消耗 在做系统过程中,经常需要针对某些场景进行性能优化,那么如何判定性能优化的效果呢?肯定需要知道优化之前Sql语句的耗时和优化之后Sql语句的 ...
- Oracle sql语句执行顺序
sql语法的分析是从右到左 一.sql语句的执行步骤: 1)词法分析,词法分析阶段是编译过程的第一个阶段.这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构 ...
- Oracle SQL语句执行步骤
转自:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762345.html Oracle中SQL语句执行过程中,Oracle内部解析原理如下 ...
- 转:Oracle中SQL语句执行过程中
Oracle中SQL语句执行过程中,Oracle内部解析原理如下: 1.当一用户第一次提交一个SQL表达式时,Oracle会将这SQL进行Hard parse,这过程有点像程序编译,检查语法.表名.字 ...
- 【故障公告】再次遭遇SQL语句执行超时引发网站首页访问故障
非常抱歉,昨天 18:40~19:10 再次遭遇上次遇到的 SQL 语句执行超时引发的网站首页访问故障,由此您带来麻烦,请您谅解. 上次故障详见故障公告,上次排查下来以为是 SQL Server 参数 ...
- html5 webDatabase 存储中sql语句执行可嵌套使用
html5 webDatabase 存储中sql语句执行可嵌套使用,代码如下: *); data.transaction(function(tx){ tx.executeSql("creat ...
- mysql优化(三)–explain分析sql语句执行效率
mysql优化(三)–explain分析sql语句执行效率 mushu 发布于 11个月前 (06-04) 分类:Mysql 阅读(651) 评论(0) Explain命令在解决数据库性能上是第一推荐 ...
- 统计sql语句执行效率
--统计sql语句执行效率SELECT (total_elapsed_time / execution_count)/1000 N'平均时间ms' ,total_elapsed_time/1000 N ...
- SQL语句执行顺寻
SQL语句执行的时候是有一定顺序的.理解这个顺序对SQL的使用和学习有很大的帮助. 1.from 先选择一个表,或者说源头,构成一个结果集. 2.where 然后用where对结果集进行筛选.筛选出需 ...
- EXPLAIN PLAN获取SQL语句执行计划
一.获取SQL语句执行计划的方式 1. 使用explain plan 将执行计划加载到表plan_table,然后查询该表来获取预估的执行计划 2. 启用执行计划跟踪功能,即autotrace功能 3 ...
随机推荐
- RedisTemplate RedisConfig 序列化方式 fastjson2
目录 Fastjson2 序列化 Redis.config RedisUtil.java fastjson和fastjson2的区别 Spring Data Redis 为我们提供了下面的Serial ...
- PbRL | Christiano 2017 年的开山之作,以及 Preference PPO / PrefPPO
PrefPPO 首次(?)出现在 PEBBLE,作为 pebble 的一个 baseline,是用 PPO 复现 Christiano et al. (2017) 的 PbRL 算法. For eva ...
- 解密Facebook产品的开发流程
作者: 王淮 来源: <程序员> 发布时间: 2013-03-25 17:22 阅读: 3750 次 推荐: 6 原文链接 [收藏] [编者注]王淮是Facebook第 ...
- 使用<a-select>时,placeholder不起作用
当绑定v-model的值之后,placeholder设置的值不起作用,此时需要把v-model绑定的值设置为undefined就可以了
- MySQL底层概述—1.InnoDB内存结构
大纲 1.InnoDB引擎架构 2.Buffer Pool 3.Page管理机制之Page页分类 4.Page管理机制之Page页管理 5.Change Buffer 6.Log Buffer 1.I ...
- Python 学习记录(1)
前言 简单说明: 简单情况:主要记录学习Python的简单情况,包括代码与结果,以及关键注释 工具与来源: 以下代码与结果都可在JupyterLab上实现,更多情况可看Github 使用 NumPy ...
- st包无效
本机正常安装了 oracle11g 和 ArcSDE10, 想要查询某个空间图层表的shape字段值,所以写了如下sql语句在PL/SQL里执行,select sde.st_astext(shape ...
- uni-app小程序(快手、抖音)getCurrentPages使用坑位记录2
前情 uni-app是我比较喜欢的跨平台框架,它能开发小程序/H5/APP(安卓/iOS),重要的是对前端开发友好,自带的IDE让开发体验也挺棒的,现公司项目就是主推uni-app,我主要负责抖音和快 ...
- Docker安装开源版obs对象存储服务minio,并后台运行
>Minio 是一个基于Apache License v2.0开源协议的对象存储服务,虽然轻量,却拥有着不错的性能.它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据. 例如 ...
- Excel VLOOKUP 函数入门教程
一.引言 在日常工作中,Excel 是处理数据的强大工具之一,而 VLOOKUP 函数作为 Excel 中最常用的查找函数之一,能够帮助用户在表格或数值数组中快速定位并返回所需的数据.它的工作原理是在 ...