这个功能的最佳用途是什么Postgres IS DISTINCT FROM,试听得到了相同的结果,COALESCE但在更短的时间内,按照测试:
SELECT COUNT(P.id)
FROM produto P
INNER JOIN cliente CL ON P.id_cliente = CL.id_cliente
WHERE
COALESCE(CL.tp_pessoa,'') <> 'JURIDICA' -- test with COALESCE, average 610 ms
(CL.tp_pessoa <> 'JURIDICA' OR CL.tp_pessoa IS NULL) -- test with OR, average 668 ms
CL.tp_pessoa IS DISTINCT FROM 'JURIDICA' -- test with IS DISTINCT FROM, average 667 ms
OUTRO TESTE:
COALESCE(CL.tp_pessoa,'') <> COALESCE(P.observacao,'') -- test with IS DISTINCT FROM, average 940 ms
CL.tp_pessoa IS DISTINCT FROM P.observacao -- …Run Code Online (Sandbox Code Playgroud) 为了获取estimated cost查询的 ,我使用EXPLAIN SELECT column FROM table;,为了获取current cost查询的 ,我使用EXPLAIN ANALYSE SELECT column FROM table;,我的问题是如何cost自动获取查询的 ,而不必explain手动运行每个查询。
我需要类似的东西:
DECLARE cost integer;
DECLARE highercost integer;
DECLARE query text;
highercost := 0;
i := 0;
query = '';
WHILE i < array_length( queryarray ,1) LOOP
cost := explain analyse queryarray[i];
IF cost > highercost THEN
highercost := cost;
query := queryarray[i];
END IF;
i := i+1;
END LOOP;
Run Code Online (Sandbox Code Playgroud)
这个想法是创建一个脚本来检查 a 中的查询log …