当前位置:首页 » 编程语言 » 12万行sql执行时间
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

12万行sql执行时间

发布时间: 2023-03-13 14:32:23

‘壹’ 多条sql查询程序运行时间过长

执行时间最长的20条SQL语句(按时间降序排列),可保存为脚本方便调用:
SELECT rows_read / (num_executions + 1) as avg_rows_read,
rows_written / (num_executions + 1) as avg_rows_written,
stmt_sorts / (num_executions + 1) as avg_sorts,
total_exec_time / (num_executions + 1) as avg_exec_time,
substr(stmt_text,1,1000) as SQL_Stmt
FROM SYSIBMADM.SNAPDYN_SQL ORDER BY avg_exec_time desc fetch first 20 rows only;
祝你学习愉快!

‘贰’ 如何查看sql语句执行时间

declare @sttime datetime
set @sttime=getdate()
print @sttime
Select * from case1219 -- 把你的sql语句放在这里
SELECT RTRIM(CAST(DATEDIFF(MS, @sttime, GETDATE()) AS CHAR(10))) AS 'TimeTaken'

或者这么写

DECLARE @t1 DATETIME;
DECLARE @t2 DATETIME;
SET @t1 = GETDATE();
Select * from dimDate ;-- 把你要查询的sql语句放在这里
SET @t2 = GETDATE();
SELECT DATEDIFF(millisecond,@t1,@t2) AS elapsed_ms;

‘叁’ sql执行时间一般不超过多久

你好,一般是10-20毫秒。

扩展:

常见查询慢的原因常见的话会有如下几种:

1、没有索引或没有用到索引。

PS:索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表



的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录

即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快100倍。

索引类型:

普通索引:这是最基本的索引类型,没唯一性之类的限制。

唯一性索引:和普通索引基本相同,但所有的索引列只能出现一次,保持唯一性。

主键:主键是一种唯一索引,但必须指定为"PRIMARY KEY"。

全文索引:MYSQL从3.23.23开始支持全文索引和全文检索。在MYSQL中,全文索引的索引类型为FULLTEXT。全文索引可以在VARCHAR或者TEXT类型的列上创建。

2、IO吞吐量小形成了瓶颈。

PS:这是从系统层来分析MYSQL是比较耗IO的。一般数据库监控也是比较关注IO。

监控命令:$iostat -d -k 1 10

参数 -d 表示,显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;1 10表示,数据显示每隔1秒刷新一次,共显示10次。

‘肆’ MSSQL如何查看sql语句执行时间判断执行效率

写程序的人,往往需要分析所写的SQL语句是否已经优化过了,服务器的响应时间有多快,这个时候就需要用到SQL的STATISTICS状态值来查看了。

通过设置STATISTICS我们可以查看执行SQL时的系统情况。选项有PROFILE,IO ,TIME。介绍如下:

SET STATISTICS PROFILE ON:显示分析、编译和执行查询所需的时间(以毫秒为单位)。
SET STATISTICS IO ON:报告与语句内引用的每个表的扫描数、逻辑读取数(在高速缓存访问的页数)和物理读取数(访问磁盘的次数)有关的信息。
SET STATISTICS TIME ON:显示每个查询执行后的结果集,代表查询执行的配置文件。

使用方法:打开SQL SERVER 查询分析器,输入以下语句:

SET STATISTICS PROFILE ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
GO /*--你的SQL脚本开始*/
SELECT [TestCase] FROM [TestCaseSelect]
GO /*--你的SQL脚本结束*/
SET STATISTICS PROFILE OFF
SET STATISTICS IO OFF
SET STATISTICS TIME OFF

效果如图所示:

另外,也可以通过手工添加语句,计算执行时间来查看执行语句花费了的时间,以判断该条SQL语句的效率如何:

declare @d datetime
set @d=getdate()
/*你的SQL脚本开始*/
SELECT [TestCase] FROM [TestCaseSelect]
/*你的SQL脚本结束*/
select [语句执行花费时间(毫秒)]=datediff(ms,@d,getdate())

‘伍’ 怎么查看sql语句执行所需的时间

在查询分析器中,选中 包含客户端统计信息 ,执行结果就会多一个选项卡。

如果是在应用程序中,在执行语句的前后各加一个时间,两个时间对比就行了。
也可以在跟踪里,查看语句的执行时间。

‘陆’ 如何查看sql语句执行时间

declare
@sttime
datetime
set
@sttime=getdate()
print
@sttime
Select
*
from
case1219
--
把你的sql语句放在这里
SELECT
RTRIM(CAST(DATEDIFF(MS,
@sttime,
GETDATE())
AS
CHAR(10)))
AS
'TimeTaken'
或者这么写
DECLARE
@t1
DATETIME;
DECLARE
@t2
DATETIME;
SET
@t1
=
GETDATE();
Select
*
from
dimDate
;--
把你要查询的sql语句放在这里
SET
@t2
=
GETDATE();
SELECT
DATEDIFF(millisecond,@t1,@t2)
AS
elapsed_ms;

‘柒’ 如何计算sql语句执行时间的时间

sql中一般用datediff函数来表示时间差。
基本语法:
DATEDIFF(datepart,startdate,enddate)

说明:
startdate 和 enddate 参数是合法的日期表达式。
datepart 参数可以是下列的值:

例子:
例子 1
使用如下 SELECT 语句:
SELECT DATEDIFF(day,'2008-12-29','2008-12-30') AS DiffDate

结果:

DiffDate

1
例子2
使用如下 SELECT 语句:
SELECT DATEDIFF(day,'2008-12-30','2008-12-29') AS DiffDate

结果:

DiffDate

-1

‘捌’ sql语句执行效率低,有上千万条数据,耗时3分钟

not in内外表都进行全表扫描,没有用到索引,所以很慢not extsts 的子查询能用到表上的索引。 改成:
select convert(varchar(10),scanTime,20) as 'DList' from T_SCAN
where not extsts
(
select 1 from T_Scan_image ts,T_SCAN t
where ts.scanTime = t.scanTime
)
group by convert (varchar(10),scanTime,20)