获取PostgreSQL查询的执行时间
发布时间:2020-12-13 16:26:33 所属栏目:百科 来源:网络整理
导读:DECLARE @StartTime datetime,@EndTime datetimeSELECT @StartTime=GETDATE()select distinct born_on.namefrom born_on,died_onwhere (FLOOR(('2012-01-30'-born_on.DOB)/365.25) = ( select max(FLOOR((died_on.DOD - born_on.DOB)/365.25)) from died_on,
DECLARE @StartTime datetime,@EndTime datetime SELECT @StartTime=GETDATE() select distinct born_on.name from born_on,died_on where (FLOOR(('2012-01-30'-born_on.DOB)/365.25) <= ( select max(FLOOR((died_on.DOD - born_on.DOB)/365.25)) from died_on,born_on where (died_on.name=born_on.name)) ) and (born_on.name <> All(select name from died_on)) SELECT @EndTime=GETDATE() SELECT DATEDIFF(ms,@StartTime,@EndTime) AS [Duration in millisecs] 我无法获取查询时间.相反,我得到以下错误: sql:/home/an/Desktop/dbms/query.sql:9: ERROR: syntax error at or near "@" LINE 1: DECLARE @StartTime datetime,@EndTime datetime
为了测试目的,您也可以使用
EXPLAIN ANALYZE .
您可以像这样使用它来检查我的修改版本的查询是否实际上更快: EXPLAIN ANALYZE SELECT DISTINCT born_on.name FROM born_on b WHERE floor(('2012-01-30'::date - b.dob) / 365.25) <= ( SELECT floor((max(d1.dod - b1.dob)/365.25)) FROM born_on b1 JOIN died_on d1 USING (name) ) AND NOT EXISTS ( SELECT * FROM died_on d2 WHERE d2.name = b.name ); 显示查询计划以外的总运行时间.执行几次以排除工件. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |