问题列表 - 第42170页

Postgres 8.4.4(Win7 x64上的x32)在小表上非常慢的UPDATE

我有一个非常简单的更新声明:

UPDATE W SET state='thing'
WHERE state NOT IN ('this','that') AND losttime < CURRENT_TIMESTAMP;
Run Code Online (Sandbox Code Playgroud)

表W只有90行,尽管每行大约每10秒钟更新一行的丢失时间和状态列.状态和丢失时间(以及主索引)都有索引.

我注意到大型数据库(即其他表有很多条目,而不是表W)在一段时间内,查询变得越来越慢,越来越慢.运行48小时后,我通过在PqAdminIII的查询窗口中运行它来计时,它需要17分钟才能执行!

我在另一个显示相同问题的表上有类似的查询:

UPDATE H SET release='1' 
WHERE a NOT IN (SELECT id from A WHERE state!='done') AND release!='1';
Run Code Online (Sandbox Code Playgroud)

H没有任何索引,但我尝试在H(发布)上放置和删除索引而不改变行为.在数据库已经运行48小时并且表H有大约100k行之后,此查询需要27分钟.Postgres服务器在查询期间将有一个完全挂钩的线程(100%CPU利用率),因此它看起来不像是对网络,磁盘等的任何争用.

因此,从广义上看,我看到的行为是我的数据库按预期运行大约5分钟,然后逐渐停止所有内容,因为基本的维护相关UPDATE命令开始运行的时间越来越长.到第二天,花一个小时做一个简单的维护周期(一些更新),一开始就运行~100ms.我似乎很清楚,性能下降与数据库中的信息量是超线性的 - 可能是N ^ 2或其他一些.

Autovacuum正在使用默认值.我仔细阅读了手册,并没有看到任何跳出来的东西.

我在这里挠头.我没有看到任何在9.0.1和9.0.2发行说明中看起来相关的错误修复.谁能帮我理解发生了什么?谢谢,M

-xxxx-

好的,我可能在这里遇到两个问题.

第一次更新似乎现在运行得很快.不确定发生了什么,所以我将继续假设我需要更频繁地运行VACUUM/ANALYZE或某种组合 - 比如每分钟左右.我真的很想知道为什么autovacuum不会这样做.

第二次更新继续缓慢运行.查询计划表明索引没有得到有效使用,并且发生了80k*30k的交叉,这可能是我似乎正在观察的超线性运行时的原因.(大家都同意这个计划的解释吗?)

我可以将UPDATE转换为SELECT:

SELECT * from H
where a not in (SELECT id from A where state='done') AND release!='1';
Run Code Online (Sandbox Code Playgroud)

具有类似的运行时间(27分钟).

如果我不相信postgres优化器并执行此操作:

WITH r as (select id from A where state='done')
SELECT a from H 
JOIN …
Run Code Online (Sandbox Code Playgroud)

sql postgresql vacuum sql-update

5
推荐指数
1
解决办法
683
查看次数

如何找到不同手机的最大纹理尺寸?

我试图找出原始摩托罗拉Droid的最大纹理大小.我相信G1的最大纹理大小为512,但如果有更正式的方式我会发现它会很好,所以我可以建立一个合适的瓷砖系统.

android textures opengl-es renderer

14
推荐指数
2
解决办法
2万
查看次数

构造函数Intent未定义

我加载了内容模块,我得到的具体错误是: The constructor Intent(new View.OnClickListener(){}, Class<ContactWidget>) is undefined

有什么想法吗?我从这里的教程中得到了这个:http://developer.android.com/guide/topics/ui/notifiers/notifications.html

package com.example.contactwidget;

import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class ContactWidget extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Button calc1 = (Button) findViewById(R.id.calc_button_1);
        calc1.setOnClickListener(buttonListener);

        setContentView(R.layout.main);
    }

    private static final int HELLO_ID = 1;

    private OnClickListener buttonListener = new OnClickListener() {
        public void …
Run Code Online (Sandbox Code Playgroud)

java android

10
推荐指数
1
解决办法
3万
查看次数

C++ MPL or_,and_ implementation

我正在尝试阅读boost标头,以弄清楚他们是如何设法实现的

or_<...> 
Run Code Online (Sandbox Code Playgroud)

and_<...> 
Run Code Online (Sandbox Code Playgroud)

元功能使:

1)他们可以有任意数量的参数(好吧,说多达5个参数)

2)它们具有短路行为,例如:

or_<false_,true_,...> 
Run Code Online (Sandbox Code Playgroud)

不会实例化true_之后的任何内容(因此它也可以声明但未定义)

不幸的是,预处理器元编程让我无法完成任务:P

提前感谢您的任何帮助/建议.

c++ templates metaprogramming

6
推荐指数
1
解决办法
534
查看次数

Rails 3完整错误消息格式

因为在Rails 3中,form.error_messages已被弃用,我使用了一个部分,我在其中迭代full_messages并构造我的html,如下所示:

<% model.errors.full_messages.each do |msg| %>
  <p><%= msg %></p>
<% end %>
Run Code Online (Sandbox Code Playgroud)

但是应用程序的默认语言环境不是英语,而在我的语言中,full_messages的结构有点不自然:

{{attribute}} {{message}}
Run Code Online (Sandbox Code Playgroud)

我从generate_full_messages的源代码中看到我可以本地化格式,所以在我的语言环境的yml文件(bg.yml)中我添加了这个:

bg:
 activerecord:
  errors:
   full_messages:
    format: "[...]"
Run Code Online (Sandbox Code Playgroud)

但是,验证错误的格式保持不变.

ruby-on-rails

13
推荐指数
2
解决办法
2万
查看次数

netbeans中的META-INF/persistence.xml是什么?

我正在构建一个依赖于DB的学期Java项目,因此我阅读了有关JDBC的教程,并构建了一个从MySQL DB中读取的简单应用程序.我尝试使用Netbeans桌面数据库应用程序来读取生成的代码,但我发现Netbeans采用了一种非常不同的方法来连接数据库,我无法理解它为什么使用persistence.xml文件以及使用的持久性包是什么?

    Class.forName("com.mysql.jdbc.Driver");
    String connectionUrl = "jdbc:mysql://localhost/mysql?" +
                           "user=root&password=123456";
    Connection con = DriverManager.getConnection(connectionUrl);
Run Code Online (Sandbox Code Playgroud)

任何人都可以指导我学习这种方法的教程吗?为什么Netbeans使用此代码而不是我发布的常用代码?

java mysql netbeans jdbc

2
推荐指数
1
解决办法
3418
查看次数

是否有必要双重定义数据类型?

在代码....

NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
Run Code Online (Sandbox Code Playgroud)

实际上有必要两次定义数据类型吗?

java android

0
推荐指数
1
解决办法
163
查看次数

有多少'STA'线程可以在进程内共存?

我需要STA在ASP.NET应用程序中使用多个线程来使用某些COM组件.

我在每个进程内的某处读取,只能STA存在一个线程.我编写了一个示例项目并创建了许多线程并将其公寓状态设置为,STA并且它们可以COM毫无例外地处理对象.

是否可以STA在进程中包含许多线程?

c# multithreading sta apartment-state

7
推荐指数
2
解决办法
3828
查看次数

是否有一种编程语言可以:

我很好奇这样的事情......有没有一种编程语言可以:

  • 语法,如Java和/或C++
  • 模板/泛型支持
  • 内存管理(没有垃圾回收)
  • "干净的语法"(没有像perl或c/c ++这样的混乱)
  • "正常"OOP(多义,接口,抽象类,重载等)
  • (最好)编译成机器代码
  • 名称空间支持
  • 异常支持
  • 没有源预处理器(如c\c ++中所示)
  • 静态打字

c++ java oop programming-languages

-2
推荐指数
2
解决办法
311
查看次数

为什么SaxParser随机失败?

我在Android应用程序中使用SAX解析器一次读取一些feed.脚本执行如下.

                     // Begin FeedLezer
                    try {

                        /** Handling XML **/
                        SAXParserFactory spf = SAXParserFactory.newInstance();
                        SAXParser sp = spf.newSAXParser();
                        XMLReader xr = sp.getXMLReader();

                        /** Send URL to parse XML Tags **/
                        URL sourceUrl = new URL(
                            BronFeeds[i]);

                        /** Create handler to handle XML Tags ( extends DefaultHandler ) **/
                        Feed_XMLHandler myXMLHandler = new Feed_XMLHandler();
                        xr.setContentHandler(myXMLHandler);
                        xr.parse(new InputSource(sourceUrl.openStream()));

                    } catch (Exception e) {
                        System.out.println("XML Pasing Excpetion = " + e);
                    }
                     sitesList = Feed_XMLHandler.sitesList;

                    String titels = sitesList.getMergedTitles();
Run Code Online (Sandbox Code Playgroud)

这里有Feed_XMLHandler.javaFeed_XMLList.java …

java android special-characters saxparser

0
推荐指数
1
解决办法
875
查看次数