使用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 ...
随机推荐
- GObject学习笔记(一)类和实例
前言 最近阅读Aravis源码,其中大量运用了GObject,于是打算学习一下. 此系列笔记仅主要面向初学者,不会很深入探讨源码的细节,专注于介绍GObject的基本用法. 此系列笔记参考GObjec ...
- IPC-6012F-CN-中文版\英文版,2024 刚性印制板的鉴定及性能规范
IPC-6012F-CN-中文版,2024 刚性印制板的鉴定及性能规范 链接:https://pan.baidu.com/s/1z1x5JPmcRHzeIQgMsMQRxg提取码:1234 https ...
- ZCMU-1101
这个题不怎么难,就是当时没有理解到字典序的意思:我一直以为是自己元素间的比较,后再同学帮助下明白这里是与其他比,这样就很简单了.就是要求当前那个最小就可以了. 对这道题我有点吐槽明明自己都说了最后一组 ...
- C#日期类型转化总结【转化,农历,节气,星期】
转为日期类型 将8位日期字符串转换为日期格式 dateStr = "20220203"; System.IFormatProvider format=new System.Glob ...
- 全面解读TaurusDB透明压缩特性,降低数据库使用成本
本文分享自华为云社区<[华为云MySQL技术专栏]TaurusDB透明压缩>,作者: GaussDB 数据库. 背景介绍 某一部分特定比例的客户群体,对数据库的读写性能要求并不高.相比之下 ...
- 论文解读《From Generation to Judgment: Opportunities and Challenges of LLM-as-a-judge》
发表时间:2024 期刊会议:arxiv 论文单位:Arizona State University 论文作者:Dawei Li, Bohan Jiang, Liangjie Huang, Alimo ...
- 鸿蒙UI布局实战 —— 个人中心页面开发
1.前言 接下里我们将开启"鸿蒙UI布局系列"的学习,第一站:学习线性布局(Row/Column)+ 弹性布局(Flex) 在展开学习前,先上一个实战demo--开发一个个人中心页 ...
- 4 步缩减 Script Evaluation Time
4 步缩减脚本评估时间 (Script Evaluation Time) https://touch.marfeel.com/resources/blog/reduce-script-evaluati ...
- 德哥的PostgreSQL私房菜
德哥的PostgreSQL私房菜 - 史上最屌PG资料合集-博客-云栖社区-阿里云 : https://yq.aliyun.com/articles/59251 https://github.com/ ...
- Go设置GOPROXY国内加速
go env -w GOFLAGS=-buildvcs=false 在 Linux 或 macOS 上面 需要运行下面命令(或者,可以把以下命令写到 .bashrc 或 .bash_profile 文 ...