当前位置:首页 » 编程语言 » 正常查询一个sql耗时多少
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

正常查询一个sql耗时多少

发布时间: 2022-05-24 08:22:38

① 使用sql Server CE查询10000条记录所需的时间是多少

1.查询消耗时间影响因素很多:编写的语句,查询的方式,外部环境CPU,内存等等。
2.查询10000条数据记录平均消耗时间应该在0.01~0.02秒以下。

② SQL查询时间多长为正常,谁能告诉我这个查询如何优化

你这个时间短不了,你自己数数有多少个join?用join就是笛卡尔积的运算了。可费时间了。

优化不好说,没看过完整表和过程。不过通常对付join来说,可以用in子集的方式找比如说
select * from 表1
where id in (select id form 表2 )

这种查询要比
select * from 表1 left join 表2
on 表1.id=表2.id
来的要速度。

或者加索引到连接列上。在要不然就加大硬件。

③ sql sever 2005 数据库,查询100万条数据用多少时间比较合理

看你什么样的应用,如果是实时,当然是越短越好。如果是统计一类非实时项目,10秒以内客户应该都能接受。
不过,一条查询就需要100万条数据清单,这样的应用恐怕很难满足。稍微多两个客户,服务器就无法响应了。而且还要考虑网络传输,100万条,数据量是非常大的,哪怕你的字段不是很多。

④ 求sql 查询语句加where 和 ORDER BY 后耗时优化

目测题主写出的这几条语句未发现特别消耗系统资源的运算,都是一些规范的写法,可以说没有什么可以优化的,如果需要让它们运行的更快一些应该从设置索引这个方向去解决。
最前两条语句无筛选、用字段`houseid`排序运算,毫秒级耗时都非常快,该字段应该建立了索引并被利用。
语句1. 用字段infocat=1进行筛选,尽管还是用字段`houseid`排序运算,但是耗时立即增加到数百毫秒级,显然字段`infocat`没有可被利用的索引。建议为字段infocat添加索引,这样相信此语句的运行速度会大幅提高。
语句2. 用字段`edittime`排序,无筛选,耗时较用字段`houseid`排序的耗时从毫秒级大幅增加到3百多毫秒,显然字段`edittime`也无可利用的索引。如为此字段添加索引,此语句的运行速度可提高一个数量级。
语句3跟语句1.情况一样,如果字段`infocat`有索引,其运行速度可大幅提高。如果筛选后返回的行特别多,那么再为字段`edittime`加索引可为提高运行速度加分(筛选后如返回的行数目有限,则字段`edittime`有无索引对提高速度帮助作用不大)。

⑤ SQL查询一块查,和分开查的时间一样吗

你好,很高兴回答你的问题。
这两张查询方式的耗时是不一样的。
如果索引合适,数据量也不是太大的话,一个sql执行的耗时是远小于按天查询执行31个sql的耗时的。
如果有帮助到你,请点击采纳。

⑥ 在asp环境中,sql查询一个八万条记录的表正常情况需要多长时间

要看什么数据库了,access数据库,大概1秒。

sql server的话,1秒内完成。

⑦ 在数据库中查看一个SQL执行一次耗时多少

下面这种是SQL Server中比较简单的查询SQL语句执行时间方法源码天空
,通过查询前的时间和查询后的时间差来计算的:
declare @begin_date datetime
declare @end_date datetime
select @begin_date = getdate()
select @end_date = getdate()
select datediff(ms,@begin_date,@end_date) as '用时/毫秒'
2:下面这种方法比较全面,将执行每个语句时采取的步骤作为行集返回,通过层次结构树的形式展示出来
set statistics profile on
set statistics io on
set statistics time ongo
<这里写上你的语句...go
set statistics profile off

⑧ SQL的查询速度问题

300条数据对于SQL2000的读操作来说应该是毫秒级就完成的。
你的这个问题,可能出在应用程序、网络质量上。
SQL2000的排查方法:
SQL2000的可能性小,但是为了保险起见,你可以把SQL2000服务器重新启动一次,然后在查询分析器中执行你的SQL语句,看执行时间,若是慢,就要用Ctrl+L来检查是SQL语句中那句话影响了效率,若是还没有找到原因,建议你尽快转移你的SQL2000的数据库,可能是你SQL2000数据库所在的硬盘有坏道了,小心丢失数据!!
DELPHI的排查方法:
看不到你的程序,所以你自己检查好了。

呵呵,希望对你有帮助。

⑨ 如何解决SQL查询速度太慢

1. 执行计划中明明有使用到索引,为什么执行还是这么慢?

2. 执行计划中显示扫描行数为 644,为什么 slow log 中显示 100 多万行?
a. 我们先看执行计划,选择的索引 “INDX_BIOM_ELOCK_TASK3(TASK_ID)”。结合 sql 来看,因为有 "ORDER BY TASK_ID DESC" 子句,排序通常很慢,如果使用了文件排序性能会更差,优化器选择这个索引避免了排序。
那为什么不选 possible_keys:INDX_BIOM_ELOCK_TASK 呢?原因也很简单,TASK_DATE 字段区分度太低了,走这个索引需要扫描的行数很大,而且还要进行额外的排序,优化器综合判断代价更大,所以就不选这个索引了。不过如果我们强制选择这个索引(用 force index 语法),会看到 SQL 执行速度更快少于 10s,那是因为优化器基于代价的原则并不等价于执行速度的快慢;
b. 再看执行计划中的 type:index,"index" 代表 “全索引扫描”,其实和全表扫描差不多,只是扫描的时候是按照索引次序进行而不是行,主要优点就是避免了排序,但是开销仍然非常大。
Extra:Using where 也意味着扫描完索引后还需要回表进行筛选。一般来说,得保证 type 至少达到 range 级别,最好能达到 ref。
在第 2 点中提到的“慢日志记录Rows_examined: 1161559,看起来是全表扫描”,这里更正为“全索引扫描”,扫描行数确实等于表的行数;
c. 关于执行计划中:“rows:644”,其实这个只是估算值,并不准确,我们分析慢 SQL 时判断准确的扫描行数应该以 slow log 中的 Rows_examined 为准。
4. 优化建议:添加组合索引 IDX_REL_DEVID_TASK_ID(REL_DEVID,TASK_ID)

优化过程:
TASK_DATE 字段存在索引,但是选择度很低,优化器不会走这个索引,建议后续可以删除这个索引:
select count(*),count(distinct TASK_DATE) from T_BIOMA_ELOCK_TASK;+------------+---------------------------+| count(*) | count(distinct TASK_DATE) |+------------+---------------------------+| 1161559 | 223 |+------------+---------------------------+

在这个 sql 中 REL_DEVID 字段从命名上看选择度较高,通过下面 sql 来检验确实如此:
select count(*),count(distinct REL_DEVID) from T_BIOMA_ELOCK_TASK;+----------+---------------------------+| count(*) | count(distinct REL_DEVID) |+----------+---------------------------+| 1161559 | 62235 |+----------+---------------------------+

由于有排序,所以得把 task_id 也加入到新建的索引中,REL_DEVID,task_id 组合选择度 100%:
select count(*),count(distinct REL_DEVID,task_id) from T_BIOMA_ELOCK_TASK;+----------+-----------------------------------+| count(*) | count(distinct REL_DEVID,task_id) |+----------+-----------------------------------+| 1161559 | 1161559 |+----------+-----------------------------------+

在测试环境添加 REL_DEVID,TASK_ID 组合索引,测试 sql 性能:alter table T_BIOMA_ELOCK_TASK add index idx_REL_DEVID_TASK_ID(REL_DEVID,TASK_ID);
添加索引后执行计划:
这里还要注意一点“隐式转换”:REL_DEVID 字段数据类型为 varchar,需要在 sql 中加引号:AND T.REL_DEVID = 000000025xxx >> AND T.REL_DEVID = '000000025xxx'

执行时间从 10s+ 降到 毫秒级别:
1 row in set (0.00 sec)
结论
一个典型的 order by 查询的优化,添加更合适的索引可以避免性能问题:执行计划使用索引并不意味着就能执行快。

⑩ SQL怎么看一个查询语句用了多少时间

mssql 里面执行完查询语句后,所有数据显示后,下面左边会有个“查询已成功执行”,最右边是显示总行数,紧挨着就是显示执行的时间了,如“00:00:01” ,这个程序执行了一秒。