标签: insertion

Postgresql内存表空间中的插入速度慢

我有一个要求,我需要将记录以10,000记录/秒的速率存储到数据库中(在几个字段上编制索引).一条记录中的列数为25.我在一个事务块中进行100,000条记录的批量插入.为了提高插入率,我将表空间从磁盘更改为RAM.因此我每秒只能实现5,000次插入.

我还在postgres配置中做了以下调整:

  • 指数:没有
  • fsync:false
  • 记录:禁用

其他信息:

  • 表空间:RAM
  • 一行中的列数:25(主要是整数)
  • CPU:4核,2.5 GHz
  • RAM:48 GB

我想知道为什么当数据库没有在磁盘上写任何东西时,单个插入查询平均需要大约0.2毫秒(因为我使用的是基于RAM的表空间).有什么我做错了吗?

帮助赞赏.

PRASHANT

postgresql insertion

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

MVC Ajax.BeginForm替换奇怪的行为

在局部视图中,我使用MVC Ajax.Beginform,如下所示:

<div id="divToReplace">
    @using (Ajax.BeginForm("Action", "Controller,
                           new AjaxOptions
                           {
                               InsertionMode = System.Web.Mvc.Ajax.InsertionMode.Replace,
                               UpdateTargetId = "divToReplace"
                           },
                           new
                           {
                                id = "formID"
                           }))
    {
        ...
</div>
Run Code Online (Sandbox Code Playgroud)

提交表单时,我希望孔div"divToReplace"被答案替换(部分视图再次).但相反,div"divToReplace"的内部html被答案所取代,因此部分视图的开头如下所示:

<div id="divToReplace">
    <div id="divToReplace">
           ...
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

asp.net-mvc replace ajax.beginform insertion

7
推荐指数
1
解决办法
2893
查看次数

如何使用核心数据的添加和删除(NSSet)访问器方法?

在这个测试核心数据项目中,我有一个从"客户"到"产品"的一对多关系,这种关系被命名为"产品".客户的属性为"名称",产品的属性为"项目".我已经将实体子类化,Xcode为客户生成了以下内容:

@interface Customer : NSManagedObject

@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSSet *products;
@end

@interface Customer (CoreDataGeneratedAccessors)

- (void)addProductsObject:(Products *)value;
- (void)removeProductsObject:(Products *)value;
 - (void)addProducts:(NSSet *)values;
- (void)removeProducts:(NSSet *)values;

@end
Run Code Online (Sandbox Code Playgroud)

要添加,比方说,一个客户(John Doe)和两个项目(Widget 1&Widget 2),我可以使用accessor方法addProductsObject,如下所示:

...
// Add (1) customer object
Customer *custObj = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[custObj setValue:@"John Doe" forKey:@"name"];

// Add (2) products for John Doe
for (int foo=0; foo<2; foo++) {
    self.product = [NSEntityDescription insertNewObjectForEntityForName:@"Products" inManagedObjectContext:context];
    NSString *objString = [NSString stringWithFormat:@"Widget %d", …
Run Code Online (Sandbox Code Playgroud)

core-data subclass nsset insertion

7
推荐指数
1
解决办法
8934
查看次数

python-docx插入点

我不确定我是否遗漏了任何明显的东西,但是我没有找到任何关于如何在文档中的某个特定位置插入Word元素(例如表格)的文档?

我使用以下方法加载现有的MS Word .docx文档:

my_document = Document('some/path/to/my/document.docx')
Run Code Online (Sandbox Code Playgroud)

我的用例是获取文档中书签或部分的"位置",然后继续在该点下面插入表格.

我正在考虑一个允许我按照这些方式做某事的API:

insertion_point = my_document.bookmarks['bookmark_name'].position
my_document.add_table(rows=10, cols=3, position=insertion_point+1)
Run Code Online (Sandbox Code Playgroud)

我看到有计划实现类似于MS Word API的'range'对象的东西,这将有效地解决这个问题.在此期间,有没有办法指示document对象方法在哪里插入新元素?

也许我可以粘贴一些lxml代码来查找节点并将其传递给这些python-docx方法?任何关于这个主题的帮助将不胜感激!谢谢.

cursor-position insertion python-3.x python-docx

7
推荐指数
1
解决办法
7335
查看次数

WMI:插入时获取USB设备描述

如何在插入USB设备时获取设备ID和其他说明?我找到了一个如何获得USB设备插入/删除通知的示例.但是如何获取设备desrtiption信息?

这是我的代码片段:

WqlEventQuery q;
ManagementScope scope = new ManagementScope("root\\CIMV2");
scope.Options.EnablePrivileges = true;

try
{
    q = new WqlEventQuery();
    q.EventClassName = "__InstanceDeletionEvent";
    q.WithinInterval = new TimeSpan(0, 0, 3);
    q.Condition = @"TargetInstance ISA 'Win32_USBControllerdevice'";
    w = new ManagementEventWatcher(scope, q);
    w.EventArrived += new EventArrivedEventHandler(USBRemoved);
    w.Start();
}
... catch()....
Run Code Online (Sandbox Code Playgroud)

更新:实际上,它是一个带USB连接的串行COM设备.所以没有driveName属性.如何获取USB描述,我可以在设备管理器中看到?WMI是否提供有关USB插入的通知的此信息?

.net c# usb wmi insertion

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

btree插入的一个特殊问题

我一直在玩slady.net上非常酷的btree小程序.我无法理解特定的行为.看看这个起始状态:

alt text http://www.freeimagehosting.net/uploads/db2931c7da.jpg

通过插入以下序列得到该特定状态:10,15,30,16,70,1,9,27,45,50,55.

我的问题是当我在序列中插入下一个值时,[45,]节点会发生什么,65.

alt text http://www.freeimagehosting.net/uploads/3b70c1d302.jpg

[55,70]节点将被65分割,并且作为中间值,65将返回,然后分割[30,50]节点.我的问题是:为什么[45,]节点最终成为[30,]节点的子节点?它的父母最初有3个孩子,最左边和最右边成为新的单独节点.45是在这些值之间,似乎它最终也可以在[65,]节点下结束......为什么?

algorithm b-tree insertion

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

如何在Flex/Spark TextArea或TextFlow中的特定位置添加图像

我有一个Spark TextArea:

<s:TextArea id="editor">
    <s:textFlow>
        <s:TextFlow id="_tf" >
            <s:p>Lorem ipsum etc.</s:p>
            <s:p>
                 <s:img source="http://example.com/example.jpg" />
             </s:p>
            <s:p>Aliquam tincidunt tempor etc.</s:p>
        </s:TextFlow>
    </s:textFlow>
</s:TextArea>
Run Code Online (Sandbox Code Playgroud)

还有一个添加图片的按钮:

<s:Button id="imageBtn" 
    label="insert image" 
    width="89"
    click="imageBtn_clickHandler(event);" />
Run Code Online (Sandbox Code Playgroud)

以下脚本有效:

    import flashx.textLayout.elements.*;

    import mx.events.FlexEvent;

    protected function imageBtn_clickHandler(evt:MouseEvent):void {
        var img:InlineGraphicElement = new InlineGraphicElement();
        img.source = "http://example.com/example.jpg";

        var p:ParagraphElement = new ParagraphElement();
        p.addChild(img);
        _tf.addChild(p);
        _tf.flowComposer.updateAllControllers();
        editor.setFocus();
    }
Run Code Online (Sandbox Code Playgroud)

但只附加到TextFlow的末尾.如何在TextArea中的活动插入符处插入InlineGraphicElement?我的第一个想法是这样的:

    import flashx.textLayout.elements.*;

    import mx.events.FlexEvent;

    protected function imageBtn_clickHandler(evt:MouseEvent):void {
        var img:InlineGraphicElement = new InlineGraphicElement();
        img.source = "http://example.com/example.jpg";

        var p:ParagraphElement;
    //pseudocode
    p = …
Run Code Online (Sandbox Code Playgroud)

apache-flex textarea image insertion flex-spark

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

如何使用预先排序的数据初始化TreeMap?

我的应用程序使用TreeMap来保持数据排序并具有log(n)查找和插入.这在应用程序运行时的一般情况下效果很好,但是当应用程序首次启动时,我需要初始化具有数百万个long的TreeMap,我按排序顺序(升序).

由于这些初始化值已经排序,有没有办法将它们插入TreeMap而不支付树插入和重新平衡的log(n)成本?

java initialization treemap sortedmap insertion

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

使用Hibernate和Spring进行批量插入

我的应用程序基于Hibernate 3.2和Spring 2.5.以下是应用程序上下文中与事务管理相关的代码段:

  <tx:annotation-driven transaction-manager="txManager"/>
    <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
          <property name="sessionFactory" ref="sessionFactory"/>
          <property name="nestedTransactionAllowed" value="true"/> 
    </bean> 
    <bean id="transactionTemplate"  classs="org.springframework.transaction.support.TransactionTemplate">
           <property name="transactionManager" ref="txManager"/>
    </bean>
    <bean class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPostProcessor"/>
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="configLocation" value="classpath:/hibernate.cfg.xml"></property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

对于所有DAO,都有相关的Service类,并且使用@Transactional服务层中的每个方法处理事务.但是现在有一个场景,DAO中的方法说服务层调用"parse()".在我指定的服务层中@Transactional(readOnly=false).DAO中的这个解析方法在同一个DAO中调用另一个方法说"save()",它在数据库中存储了大量的行(大约5000个).现在,在解析函数的循环中调用save方法.现在的问题是,在大约100次调用"保存"方法之后..我有时会得到OutOfMemory异常或有时程序停止响应.

现在这些是我对save方法所做的更改:

Session session = getHibernateTemplate().getSessionFactory().openSession();
            Transaction tx = session.beginTransaction();

            int counter = 0;
            if(books!=null && !books.isEmpty()){
                for (Iterator iterator = books.iterator(); iterator
                        .hasNext();) {
                    Book book = (Book) iterator.next();
                    session.save(book);
                    counter++;
                    if(counter % 20==0) {
                         session.flush();
                         session.clear();
                    }
                }
            }
            tx.commit();
        session.close();
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序中唯一的方法,我开始这样的事务并在方法结束时提交它.否则我通常只是打电话getHibernateTemplate.save() …

java spring hibernate insertion spring-batch

5
推荐指数
2
解决办法
9710
查看次数

优化插入列表中间

我有适用于动态增长列表(连续内存,如 C++ 向量、Java ArrayList 或 C# 列表)的算法。直到最近,这些算法还会将新值插入列表的中间。当然,这通常是一个非常慢的操作。每次添加一个项目时,它后面的所有项目都需要转移到更高的索引。对每个算法都这样做几次,事情会变得非常慢。

我的认识是,我可以将新项目添加到列表的末尾,然后稍后将它们旋转到位。这是一种选择!

从后面旋转物品

当我知道提前添加多少项目时,另一种选择是将那么多项目添加到后面,移动现有项目,然后在我为自己制作的孔中就地执行算法。缺点是我必须在列表末尾添加一些默认值,然后覆盖它们。

打一个洞

我对这些选项进行了快速分析,得出的结论是第二个选项更有效。我的理由是,第一个选项的轮换将导致就地交换(需要临时)。我对第二个选项唯一关心的是我正在创建一堆默认值,这些默认值只是被丢弃。大多数时候,这些默认值将为 null 或内存填充值类型。

但是,我希望熟悉算法的其他人告诉我哪种方法会更快。或者,也许有一个我没有考虑过的更有效的解决方案。

optimization performance arraylist insertion data-structures

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