เครื่องมือที่ใช้กันอย่างแพร่หลายคือคำสั่ง SQL EXPLAIN ANALYZE
อาจมีตัวเลือกเพิ่มเติมสำหรับรายละเอียดเพิ่มเติมในคำตอบ นั่นจะแสดงผลแผนแบบสอบถามด้วยการประมาณการของผู้วางแผนรวมถึงเวลาดำเนินการจริง
ทำไมคุณต้องการล้างแคช กรณีการใช้โดยทั่วไปที่มีแนวโน้มมากกว่าคือมีการเติมแคช ถ้าคุณยังต้องการที่จะไปเส้นทางที่นี่เป็นคำตอบที่เกี่ยวข้องในดังนั้น
หากไม่รีเซ็ตแคชต่อไปนี้เป็นวิธีง่ายๆสองวิธีในการทดสอบด้วยการทำซ้ำหลาย ๆ
UDF ง่าย ๆ
EXPLAIN ANALYZE
SELECT f_myfunc(g) FROM generate_series (1,1000) AS t(g);
หรือด้วยการสุ่มอินพุต - ตัวเลขสุ่มระหว่าง 0 ถึง 5,000 ในตัวอย่าง:
EXPLAIN ANALYZE
SELECT f_myfunc((random()*5000)::int) FROM generate_series (1,1000) AS t(g);
หรือด้วยตารางชีวิตจริง:
EXPLAIN ANALYZE
SELECT f_myfunc(my_column) FROM my_tbl; -- LIMIT n
ฟังก์ชัน / คิวรีที่ซับซ้อนมากขึ้น
CREATE FUNCTION f_test(ct int, sql text) RETURNS void AS
$func$
DECLARE
i int;
BEGIN
FOR i IN 1 .. $1 LOOP
EXECUTE sql; -- not safe against SQLi!
END LOOP;
END
$func$ LANGUAGE plpgsql
โทร:
EXPLAIN ANALYZE
SELECT f_test(100, $x$SELECT * from MADLIB.gp('mock3', '{x1, x2, x3}', '{y1}', 100,20, 3)$x$
ระวัง : มีการดำเนินการค้นหาจริง ๆ !
ระวัง : ไม่เหมาะสำหรับการใช้งานสาธารณะ การฉีด SQL ที่เป็นไปได้
อีกครั้งคุณสามารถใช้พารามิเตอร์สุ่มหากจำเป็น อาจเป็นไปได้กับประโยคUSING
EXECUTE
pgbench
; คุณสามารถรันด้วยสคริปต์ที่กำหนดเองเพื่อทำสิ่งที่คุณต้องการ ด้วยสคริปต์ตัวแรปเปอร์เชลล์เพื่อหยุดและรีสตาร์ท Pg และปล่อยแคชดิสก์ของ OS คุณมีสิ่งที่คุณต้องการเป็นส่วนใหญ่