我有一个查询,在Postgres 8.4上运行大约5秒钟.它从连接到其他表的视图中选择数据,但也使用lag()窗口函数,即.
SELECT *, lag(column1) OVER (PARTITION BY key1 ORDER BY ...), lag(...)
FROM view1 v
JOIN othertables USING (...)
WHERE ...
Run Code Online (Sandbox Code Playgroud)
为方便起见,我创建了一个简单的新视图
SELECT *, lag(column1) OVER (PARTITION BY key1 ORDER BY ...), lag(...)
FROM view1 v
Run Code Online (Sandbox Code Playgroud)
然后从中使用SELECT,使用所有其他JOIN和过滤器.令我惊讶的是,这个查询在12分钟内没有完成(我在那时停止了).Postgres显然选择了不同的执行计划.我怎么能不这样做,即.使用与原始查询中相同的计划?我本以为视图不应该改变执行计划,但显然它确实如此.
编辑:更重要的是,我发现即使我将第一个视图的内容复制到第二个视图中,它仍然不会返回.
编辑2:好的,我已经充分简化了查询以发布计划.
使用视图(这不会在任何合理的时间内返回):
Subquery Scan sp (cost=5415201.23..5892463.97 rows=88382 width=370)
Filter: (((sp.ticker)::text ~~ 'Some Ticker'::text) AND (sp.price_date >= '2010-06-01'::date))
-> WindowAgg (cost=5415201.23..5680347.20 rows=53029193 width=129)
-> Sort (cost=5415201.23..5441715.83 rows=53029193 width=129)
Sort Key: sp.stock_id, sp.price_date
-> Hash Join (cost=847.87..1465139.61 rows=53029193 width=129) …Run Code Online (Sandbox Code Playgroud) 我有以下代码,在运行时,应该更新一个"女王陛下佩内洛普"的"受害者"表(这是为某人工作的,诚实的),但每次执行代码时,它都会添加所有新行再次.我很确定我已经保护了这一点,但我猜不是.我在这做错了什么?
require_once 'victims.php';
foreach( $victims as $vic )
{
$vic = mysql_real_escape_string($vic);
if(!(mysql_query("
SELECT * FROM victims
WHERE ".$vic
)))
{
mysql_query("
INSERT INTO victims
(victim, amount)
VALUES( '".$vic."', 0)
");
}
}
Run Code Online (Sandbox Code Playgroud) 如何将特定的HashMap条目移动到Last位置?
例如,我有像这样的HashMap值:
HashMap<String,Integer> map = new HashMap<String,Integer>();
map= {Not-Specified 1, test 2, testtest 3};
Run Code Online (Sandbox Code Playgroud)
"未指定"可能处于任何位置.它可能首先出现在地图的中间.但我想把"未指定"移到最后一个位置.
我怎样才能做到这一点?提前致谢.
我公司的支持团队告诉我,当我们打开时,某些版本的Java会对性能产生重大影响-verbose:gc.但是,我无法弄清楚是否是这种情况.
这个记录在某个时刻是否缓慢(ish),何时停止?
我问的原因是,对于将其应用于生产环境以调查潜在的内存泄漏(以及我们是否可以停止定期重启系统......)存在一些犹豫.
具体来说,我在谈论Java 1.4.2,我认为它引入了这个论点,以及它适用的服务包.
我很确定这个问题的答案是"从来没有,模板可以成为复制构造函数."
不幸的是,我花了3个小时搞清楚为什么我会收到关于递归的警告,跟踪它到复制构造函数,看着调试器发疯了,不让我看看递归代码,最后追踪到了一个缺失的'& '在基础构造函数中.
你看,我有这个复杂的基于策略的设计主机,现在已经工作了一段时间.我在一个中重写了两个策略,然后遇到了一个递归的复制构造函数.将其缩小为一个策略,该策略需要提供一个构造函数,该构造函数可以采用某种类型的XXX概念作为其参数,但在这种情况下,我只是丢弃它.所以我写了
struct my_policy
{
template < typename T >
my_polity(T const) {} // missing '&'...oops
};
Run Code Online (Sandbox Code Playgroud)
现在,my_policy是主机的基类(当然),这个小错误导致递归,其中主机的复制构造函数将链自身传递给这个模板化构造函数,而不是隐式的,编译器生成的复制构造函数.然后它当然会再次调用它的复制构造函数来创建临时的.
真正令人着迷的是我无法在简化代码中重新创建它.即使有一种模拟政策主持人的例子,我也无法实现.以下代码不会出现此问题:
#include <boost/utility/enable_if.hpp>
#include <boost/mpl/bool.hpp>
struct base
{
template < typename T >
base(T const) {}
};
struct another_base
{
int x;
another_base(int y) : x(y) {}
};
template < typename T >
struct is_derived : boost::mpl::false_ {};
template < typename T1, typename T2 >
struct derived : T1, T2
{
template < typename T >
derived(T const& x, typename …Run Code Online (Sandbox Code Playgroud) 我的Android App有2项活动.登录屏幕和搜索屏幕.当我在模拟器或我的设备上部署应用程序时,我看到同一应用程序的2个图标.当我点击图标1时,它会打开屏幕1(登录屏幕),当我点击图标2时,它会打开屏幕2(搜索屏幕).我登录时的逻辑应显示搜索屏幕.不知道我什么时候犯了错误.
最近我开始听说"POJO"(Plain Old Java Objects).我用Google搜索,但仍然不理解这个概念.任何人都可以给我一个明确的POJO描述吗?
考虑具有变量"id,name,address,salary"的类"Person" - 我将如何为此场景创建POJO?代码是否低于POJO?
public class Person {
//variables
People people = new People();
private int id;
private String name;
private String address;
private int salary;
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getAddress() {
return address;
}
public int getSalary() {
return salary;
}
public void setId() {
this.id = id;
}
public void setName() {
this.name = name;
}
public void setAddress() {
this.address = address; …Run Code Online (Sandbox Code Playgroud) 我有一个模型可以选择CHOICES中定义的选项,如下所示:
CHOICES = (
('1', '1'),
('2', '2'),
('3', '3'),
)
class select(models.Model):
first = models.CharField(max_length=3, choices=CHOICES)
second = models.CharField(max_length=3, choices=CHOICES)
Run Code Online (Sandbox Code Playgroud)
我希望能够在管理页面中添加,删除或更改选项.所以我的方法是将CHOICES作为模型,但我不知道这是否是正确的方法.如果是,那我该怎么设置呢?谢谢.
这是我正在使用的DOCTYPE和XML声明:
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
Run Code Online (Sandbox Code Playgroud)
但是IE7总是会出现怪癖模式......
有谁知道为什么?
提前致谢!
也许这是一个愚蠢的问题,但我正在尝试使用BGL dijkstra_shortest_paths,特别是使用我的Edge捆绑属性的字段作为权重图.我的尝试目前导致了数十页的编译器错误,所以我希望有人知道如何帮助我.这基本上就是我的代码:
struct GraphEdge {
float length;
// other cruft
};
struct GraphVertex {
...
};
typedef boost::adjacency_list
<boost::vecS, boost::vecS, boost::directedS,
GraphVertex, GraphEdge> GraphType;
Run Code Online (Sandbox Code Playgroud)
我可以毫无问题地填充图表,但是当涉及到呼叫时dijkstra_shortest_paths,我遇到了麻烦.我想用这个length领域.具体来说,我想知道在这样的通话中需要什么样的增强伏都教才能适应:
GraphType m_graph;
vector<int> predecessor(num_vertices(m_graph));
vector<float> distances(num_vertices(m_graph), 0.0f);
vector<int> vertex_index_map(num_vertices(m_graph));
for (size_t i=0; i<vertex_index_map.size(); ++i) {
vertex_index_map[i] = i;
}
dijkstra_shortest_paths(m_graph, vertex_from, predecessor, distances,
weightmap, vertex_index_map,
std::less<float>(), closed_plus<float>(),
(std::numeric_limits<float>::max)(), 0.0f,
default_dijkstra_visitor());
// How do I write the right version of weightmap here?
Run Code Online (Sandbox Code Playgroud)
这样,weightmap会以某种方式将我的图形的特定边缘与length属性中的相应字段相关联.我确信有一种简单的方法可以做到这一点,但BGL的文档对我来说是非常不透明的.如果您可以告诉我描述示例的文档中的哪个位置,我也会非常高兴.
先感谢您!
java ×3
c++ ×2
performance ×2
android ×1
boost-graph ×1
django ×1
django-admin ×1
doctype ×1
hashmap ×1
jvm ×1
logging ×1
maps ×1
mysql ×1
php ×1
pojo ×1
postgresql ×1
view ×1