标签: insert

SQL Server插入性能

我有一个像这样生成的插入查询

INSERT INTO InvoiceDetail (LegacyId,InvoiceId,DetailTypeId,Fee,FeeTax,Investigatorid,SalespersonId,CreateDate,CreatedById,IsChargeBack,Expense,RepoAgentId,PayeeName,ExpensePaymentId,AdjustDetailId) 
VALUES(1,1,2,1500.0000,0.0000,163,1002,'11/30/2001 12:00:00 AM',1116,0,550.0000,850,NULL,@ExpensePay1,NULL); 
DECLARE @InvDetail1 INT; SET @InvDetail1 = (SELECT @@IDENTITY);
Run Code Online (Sandbox Code Playgroud)

仅为110K行生成此查询.

所有这些查询都需要30分钟才能执行

我检查了查询计划,最大的%节点是

群集索引以57%的查询成本插入,其中包含一个我不想发布的长xml.

表Spool,查询成本为38%

<RelOp AvgRowSize="35" EstimateCPU="5.01038E-05" EstimateIO="0" EstimateRebinds="0" EstimateRewinds="0" EstimateRows="1" LogicalOp="Eager Spool" NodeId="80" Parallel="false" PhysicalOp="Table Spool" EstimatedTotalSubtreeCost="0.0466109">
  <OutputList>
    <ColumnReference Database="[SkipPro]" Schema="[dbo]" Table="[InvoiceDetail]" Column="InvoiceId" />
    <ColumnReference Database="[SkipPro]" Schema="[dbo]" Table="[InvoiceDetail]" Column="InvestigatorId" />
    <ColumnReference Column="Expr1054" />
    <ColumnReference Column="Expr1055" />
  </OutputList>
  <Spool PrimaryNodeId="3" />
</RelOp>
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我能做些什么来提高这件事的速度?我已经运行了ALTER TABLE TABLENAME NOCHECK CONSTRAINTS ALL在查询之前然后在查询之后ALTER TABLE TABLENAME NOCHECK CONSTRAINTS ALL.

这并没有消除任何时间的任何东西.

知道我在使用SqlCommand对象发送查询的.NET应用程序中运行这些查询.

然后我尝试将sql命令输出到一个文件,然后使用sqlcmd执行它,但我没有得到任何关于它如何做的更新,所以我放弃了.

任何想法或提示或帮助?

更新:

好的,所以你们都非常乐于助人.在这种情况下,我希望我能够赞扬不止一个答案.

解决这个问题的解决方案是双重的.

首先:

1)我禁用/重新启用所有外键(比丢弃它们容易得多)

ALTER …
Run Code Online (Sandbox Code Playgroud)

sql-server bulkinsert insert

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

PLSQL插入子查询和返回子句(Oracle)

我无法弄清楚以下伪sql的正确语法:

INSERT INTO some_table
           (column1,
            column2)
     SELECT col1_value, 
            col2_value 
       FROM other_table
      WHERE ...       
  RETURNING id
       INTO local_var; 
Run Code Online (Sandbox Code Playgroud)

我想插入一些子查询的值.插入后我需要新生成的id.

以下是oracle doc所说的:

插入声明

回归

好吧,我认为只有价值条款才有可能......有替代方案吗?

sql oracle plsql insert return-value

19
推荐指数
3
解决办法
4万
查看次数

Doctrine - 只用一个save()插入多行

如何save()Doctrine中将多行插入表调用方法?

php database doctrine insert save

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

从选择查询插入Microsoft SQL Server

我正在尝试做的事情:阅读日志并将必要的数据插入到3个不同的表中,这些表可以互相获取信息.

LOG_ITEM201303在gamelogs db上找到.
Mail_Item_Table,Mail_List_Table,Mail_Message_Table是在游戏数据库中.

邮件表通过索引连接.

CHAR_KEY,NAME,ITEMNUM是我需要用我的查询值.

查询我从日志中获取数据:

SELECT CHAR_KEY, NAME, ITEMNUM
FROM LOG_ITEM201303
where 
(   
    ITEMNUM = 14317
OR  ITEMNUM = 14318
OR  ITEMNUM = 15478
OR  ITEMNUM = 15479
OR  ITEMNUM = 14301
OR  ITEMNUM = 14302
OR  ITEMNUM = 15476
OR  ITEMNUM = 15477
OR  ITEMNUM = 15018
OR  ITEMNUM = 15019
OR  ITEMNUM = 15020
OR  ITEMNUM = 15021
OR  ITEMNUM = 15022
OR  ITEMNUM = …
Run Code Online (Sandbox Code Playgroud)

sql-server select insert sql-server-2008

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

将HTML插入iframe

我正在创建一个浏览器HTML编辑器.我正在使用名为Code Mirror的语法高亮显示器,它非常好.

我的设置是一个iframe,它包含正在编辑的页面视图和用户编辑的纯文本HTML所在的文本区域.

我试图将编辑后的HTML从textarea插入到iframe中,显示它们呈现HTML.

这可能吗?我尝试过以下方法:

HTML设置:

<iframe id="render">

</iframe>

<textarea id="code">
HTML WILL BE 

HERE
</textarea>
<input type="submit" id="edit_button" value="Edit" />
Run Code Online (Sandbox Code Playgroud)

JQuery设置:

$('#edit_button').click(function(){
    var code = editor.getCode(); // editor.getCode() is a codemirror function which gets the HTML from the text area
    var iframe = $('#render');
    iframe.html(code)
})
Run Code Online (Sandbox Code Playgroud)

这似乎没有将HTML加载到iframe中,是否有一种将HTML插入iframe的特殊方法,或者这是不可能的?

干杯

EEF

html iframe jquery insert

18
推荐指数
3
解决办法
4万
查看次数

c ++在已知位置插入向量

我希望在已知位置插入c ++向量.我知道c ++库有一个insert()函数,它接受一个位置和要插入的对象,但位置类型是一个迭代器.我想插入到矢量中,就像我将使用特定索引插入到数组中一样.

c++ stl insert vector

18
推荐指数
3
解决办法
4万
查看次数

MySql:插入一行并获取内容

是否可以插入行并在同一查询中插入值?

就像是...

INSERT INTO `items` (`item`, `number`, `state`) 
(SELECT '3', `number`, `state` FROM `item_bug` WHERE `id`='3')
Run Code Online (Sandbox Code Playgroud)

然后,获取ID并执行

SELECT * FROM `items` WHERE `id`='$id'
Run Code Online (Sandbox Code Playgroud)

但只使用一个查询.

mysql insert

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

INSERT RETURNING是否保证以"正确"的顺序返回内容?

例:

create table foo(
    id serial, 
    txt text
);

insert into foo(txt) values ('a'),('b'),('c') returning id;
Run Code Online (Sandbox Code Playgroud)

返回:

 id 
----
  1
  2
  3
(3 rows)
Run Code Online (Sandbox Code Playgroud)

似乎是在第一次 id的返回值永远是id'a',第二对'b'等,但该定义的行为insert into,抑或是可以在奇数的情况下失败是巧合吗?

postgresql insert sql-returning

18
推荐指数
3
解决办法
2824
查看次数

MySQL INSERT具有多个嵌套的SELECT

这样的查询可能吗?MySQL给了我一个语法错误.具有嵌套选择的多个插入值...

INSERT INTO pv_indices_fields (index_id, veld_id)
VALUES
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val1'),
('1', SELECT id FROM pv_fields WHERE col1='76' AND col2='val2')
Run Code Online (Sandbox Code Playgroud)

sql select nested insert

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

列名中的保留字 - 插入MySQL

我有一个MySQL数据库,group其中一个列名称中包含单词" ".我无法更改此数据库和列的名称; 不是我的.

表用户,列:id, name, password, group,和其他.我需要在此表中插入一条记录.我试过了INSERT INTO users (name, group) VALUES ('John', '9'),但因为" group" 而无法正常工作.

你能帮帮我吗,请问如何在这张表中插入记录?

mysql insert reserved-words

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