主要问题
由于权限不足,我无法执行功能import matplotlib.pyplot as plt
%matplotlib inline
import numpy as np
x= np.zeros(10) #range of X values
y= np.arange(-5,5,1) #range of Y values
plt.plot(x,y, "ro")
plt.show()
来概述查询优化中的更改。
错误消息显示为:
SELECT pg_stat_statements_reset();
我想知道是否还有其他方法可以在Cloud SQL PostgreSQL上重置pg_stats?
环境
permission denied for function pg_stat_statements_reset
角色的默认postgres用户尝试的步骤
我找到了关于该主题的先前答案,该答案表明cloudsqlsuperuser
应该适用于通过云控制台创建的默认postgres用户。但是,列出的解决方案不起作用,它返回相同的权限被拒绝错误
答案 0 :(得分:0)
Google Cloud SQL支持several modules for PostgreSQL来扩展其功能。
扩展(模块)之一是:pg_stat_statements。它允许跟踪服务器执行的SQL语句的执行统计信息。要重置统计信息功能,请使用pg_stat_statements_reset()。
在使用扩展程序(模块)之前,必须先安装它:
gcloud sql connect [INSTANCE_ID] --user=postgres
CREATE EXTENSION pg_stat_statements
SELECT pg_stat_statements_reset()
答案 1 :(得分:0)
带有快照:
DROP TABLE IF EXISTS stat_snap_1;
DROP TABLE IF EXISTS stat_snap_2;
-- first time
CREATE TABLE stat_snap_1 AS SELECT * FROM pg_stat_statements WHERE queryid IS NOT NULL;
-- second time
CREATE TABLE stat_snap_2 AS SELECT * FROM pg_stat_statements WHERE queryid IS NOT NULL;
SELECT s2.calls - s1.calls, s2.total_time - s1.total_time, s2.*, s1.*
FROM stat_snap_2 s2
FULL OUTER JOIN stat_snap_1 s1 ON s1.queryid = s2.queryid
ORDER BY s2.total_time - s1.total_time DESC NULLS LAST;