我正在使用Heroku Postgres并希望了解在我的数据库中添加一些额外索引的效果。
我正在查询pg_stat_user_tables
以查看使用索引的查询比例,但我相信自从我创建数据库以来就使用了统计信息。
我知道运行SELECT pg_stat_reset();
会重置这些统计信息,但是当我尝试在pg:psql控制台中运行它时,我收到错误:
ERROR: must be superuser to reset statistics counters
使用Heroku Postgres生产数据库是否有另一种方法可以实现这一目标?
答案 0 :(得分:2)
重现将执行这些查询的方案或测试有多容易?你能做到以下几点吗?
希望您能够轻松创建一组有代表性的数据,以便您更轻松地测试查询。
答案 1 :(得分:2)
我今天通过支持请求发现现在已添加:
function matchRecursiveRegExp (str, left, right, flags) {
var str_copy = str,
f = flags || "",
g = f.indexOf("g") > -1,
x = new RegExp(left + "|" + right, "g" + f.replace(/g/g, "")),
l = new RegExp(left, f.replace(/g/g, "")),
a = [],
b = [],
keep_going, t, s, m;
do {
t = 0;
keep_going = false;
while (m = x.exec(str_copy))
{
if (l.test(m[0])) {
if (!t++) {
s = x.lastIndex;
} else {
//another start has occurred, save that off
b.push(m.index);
}
} else if (t) {
if (!--t) {
a.push(str_copy.slice(s, m.index));
//found the end match
if (!g) return a;
}
}
}
if (g && b.length) {
//nested matches found
//slice the string with the index that was
//saved and keep going
str_copy = str_copy.slice(b.shift());
keep_going = true;
}
}
while (keep_going || (t && (x.lastIndex = s)));
return a;
}
var str = '((!%Q1% || %Q2%) || ((%Q3% && %Q4%) || (%Q5% && %Q6%)))';
var res = matchRecursiveRegExp(str, '\\(', '\\)', 'g');
for (var i = 0; i<res.length; i++)
document.body.innerHTML += "(" + res[i] + ")" + "<br/>";
heroku plugins:install git://github.com/heroku/heroku-pg-extras.git