小编Mat*_*all的帖子

什么是在SQL Server中批量插入大量数据的最快方法(C#客户端)

我的C#客户端将批量数据插入SQL Server 2005数据库时遇到了一些性能瓶颈,我正在寻找加快这一过程的方法.

我已经在使用SqlClient.SqlBulkCopy(它基于TDS)来加速通过线路的数据传输,这有很大帮助,但我仍然在寻找更多.

我有一个简单的表,看起来像这样:

 CREATE TABLE [BulkData](
 [ContainerId] [int] NOT NULL,
 [BinId] [smallint] NOT NULL,
 [Sequence] [smallint] NOT NULL,
 [ItemId] [int] NOT NULL,
 [Left] [smallint] NOT NULL,
 [Top] [smallint] NOT NULL,
 [Right] [smallint] NOT NULL,
 [Bottom] [smallint] NOT NULL,
 CONSTRAINT [PKBulkData] PRIMARY KEY CLUSTERED 
 (
  [ContainerIdId] ASC,
  [BinId] ASC,
  [Sequence] ASC
))
Run Code Online (Sandbox Code Playgroud)

我在平均大约300行的块中插入数据,其中ContainerId和BinId在每个块中是常量,并且Sequence值是0-n,并且值是基于主键预排序的.

%Disk时间性能计数器花费大量时间在100%,因此很明显磁盘IO是主要问题,但我得到的速度比原始文件副本低几个数量级.

如果我:它有帮助吗?

  1. 我在插入时删除主键,稍后重新创建它
  2. 插入具有相同模式的临时表并定期将它们传输到主表中,以保持表插入发生的大小
  3. 还要别的吗?

- 根据我得到的答复,让我澄清一下:

Portman:我正在使用聚簇索引,因为当数据全部导入时,我需要按顺序依次访问数据.导入数据时,我并不特别需要索引.在执行插入时是否有任何优势来使用非聚簇PK索引而不是完全删除约束以进行导入?

Chopeen:数据是在许多其他机器上远程生成的(我的SQL服务器目前只能处理大约10个,但我希望能够添加更多).在本地计算机上运行整个过程是不切实际的,因为它必须处理50倍的输入数据才能生成输出.

Jason:我在导入过程中没有对表进行任何并发查询,我会尝试删除主键,看看是否有帮助.

c# sql sql-server sql-server-2005

55
推荐指数
5
解决办法
7万
查看次数

TypeScript是否支持命名空间?

与标题中一样:TypeScript是否支持名称空间?如果是这样,我该如何使用它们?

namespaces typescript

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

获取LinkedIn个人资料图片

有没有简单的方法来获取用户LinkedIn个人资料照片?

理想情况下与Facebook的相似 - http://graph.facebook.com/userid/picture

api linkedin

50
推荐指数
5
解决办法
6万
查看次数

Gson到HashMap

有没有办法将包含json的String转换为HashMap,其中每个键都是json-key,值是json-key的值?json没有嵌套值.我正在使用Gson lib.

例如,给定JSON:

{
"id":3,
"location":"NewYork"
}
Run Code Online (Sandbox Code Playgroud)

生成HashMap:

<"id", "3">
<"location", "NewYork">
Run Code Online (Sandbox Code Playgroud)

谢谢

java android gson

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

使用节点的内置调试器检查变量?

我正在尝试使用节点调试器.我正在node debug server运行我的服务器.然后我有:

...
var Workspace = mongoose.model('Workspace');
debugger;
Run Code Online (Sandbox Code Playgroud)

此时,正如预期的那样,当我运行此代码时,调试器会弹出.但是,我希望它能够设置所有当前变量,就像在Chrome自己的调试器中一样.

但:

break in hotplate/node_modules/bd/lib/bd.js:133
132 
133   debugger;
134 
135   // Delete the ID and the version since there's no point,
debug> Workspace
ReferenceError: Workspace is not defined
Run Code Online (Sandbox Code Playgroud)

那么......我如何实际检查当前变量?

额外的问题:有没有办法使用Chrome的开发人员工具(CTRL-J),以便它连接到节点并以这种方式工作?(我知道节点检查员,但它已经过时了......)

debugging node.js

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

Java中的嵌套函数

是否有任何Java编程语言扩展可以创建嵌套函数?在许多情况下,我需要创建仅在另一个方法或for循环的上下文中使用一次的方法.到目前为止,我无法用Java实现这一点,即使它可以在Javascript中轻松完成.

例如,这不能在标准Java中完成:

for(int i = 1; i < 100; i++){
    times(2); //multiply i by 2 and print i
    times(i); //square i and then print the result
    public void times(int num){

        i *= num;
        System.out.println(i);
    }    
}
Run Code Online (Sandbox Code Playgroud)

java nested function

46
推荐指数
3
解决办法
7万
查看次数

Django:保存模型时填充用户ID

我有一个带有created_by字段的模型,该字段链接到标准的Django User模型.保存模型时,我需要使用当前用户的ID自动填充它.我不能在Admin层执行此操作,因为站点的大多数部分都不会使用内置的Admin.任何人都可以建议我应该怎么做?

django django-models django-authentication

45
推荐指数
6
解决办法
4万
查看次数

在JSHint/JSLint或替代服务中禁止"混合空格和制表符"警告?

JSHint和JSLint是很棒的工具.

然而,"混合空间和标签"警告在报告中占主导地位.有没有办法抑制这些警告,还是有类似的服务允许空格警告被抑制?

javascript jslint jshint

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

UUID名称空间来自哪里?

UUID规范定义了它描述为"潜在的有趣" 4名预定义的命名空间-除其他事项外的意思,"如果其他人在这个命名空间,你可以验证它们已经产生的UUID":

  • 6ba7b810-9dad-11d1-80b4-00c04fd430c8 对于DNS
  • 6ba7b811-9dad-11d1-80b4-00c04fd430c8 用于URL
  • 6ba7b812-9dad-11d1-80b4-00c04fd430c8 对于ISO OID
  • 6ba7b814-9dad-11d1-80b4-00c04fd430c8 对于X.500 DN

这些来自哪里?

特别;

  • 如果我正在生成自己的命名空间UUID,我是否需要特别避免任何事情?
  • 我知道UUID空间有多大,但这对碰撞有什么影响吗?
  • 为什么他们选择第4个八位字节来增加作为一种UUID'版本号'?
  • 我的问题是否意味着我遗漏了一些关于UUID的基本信息?

language-agnostic standards uuid

41
推荐指数
1
解决办法
6870
查看次数

如何在java中获取类注释?

我创建了自己的注释类型,如下所示:

public @interface NewAnnotationType {}
Run Code Online (Sandbox Code Playgroud)

并将其附加到班级:

@NewAnnotationType
public class NewClass {
    public void DoSomething() {}
}
Run Code Online (Sandbox Code Playgroud)

我尝试通过这样的反射得到类注释:

Class newClass = NewClass.class;

for (Annotation annotation : newClass.getDeclaredAnnotations()) {
    System.out.println(annotation.toString());
}
Run Code Online (Sandbox Code Playgroud)

但它不打印任何东西.我究竟做错了什么?

java reflection annotations

40
推荐指数
1
解决办法
4万
查看次数