问题标签 [bulk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server-2008 - 使用存储过程的 SQL Server 2008 批量更新
我在数据库中有 2 个表。每个都有“名称”列和“计数”列。
我想仅在“名称”列相等的情况下从第一个表中的计数更新第二个表中的计数列。
例子:
第一张表:
名称计数
杰克 25
迈克 44
名称计数
杰克 23
迈克 9
大卫 88
结果(第二个表看起来像那样......)
名称计数
杰克 25
迈克 44
大卫 88
注意:
1. 两张桌子都很大。(虽然第二个表更大......)
2. 更新必须尽可能快......
(如果除了存储过程之外还有更多选项,我很乐意听到。)
3. “计数”定义为 bigint而“名称”为 nvarchar(100)
4. 第一个表中的“计数”字段始终大于
第二个表中的等值字段。
我认为有更多的选项(除了存储过程)可能与 MERGE 或 TRANSACTION 一样,只要它是最快的方式......
谢谢!
git - git revert 批量提交的多个文件
我正在熟悉 GIT,只需放弃 svn 并继续使用 GIT。现在我弄脏了我的手:
我创建了一个分支并使用 emacs 宏更改了一堆文件,并使用 commit -a 将它们全部提交。我也对其他一些文件进行了一些其他更改。在将所有内容合并到 master 之前,我测试了一些东西,并且 emacs 宏缺少一些基本细节。所以现在大部分的批量提交应该被撤消,但不是全部。并且批量提交后的提交也很可靠。继续恢复大部分批量提交的最简单方法是什么?有樱桃采摘工具吗?我目前正在使用命令行 git 和 emacs vcs (git-el)。我买了一本书并浏览了几个网站,但到目前为止我还没有找到一个令人满意的答案。
问候,
杰伦。
c# - Oracle 列/值大小问题
我正在使用 ODP.NET 和 Oracle 10g 将数据从数据表传输到数据库表。我面临的问题是尝试将值插入 NUMBER(12,3) 列时。值为 100100100,55 - 我得到错误:行 '1' 列 '6' 中的错误 ORA-26093: 输入数据列大小 (24) 超过最大输入大小 (22)
但是如果我尝试 100100100,5 它可以正常工作
此错误消息对我没有任何意义。
谁能解释我为什么?谢谢!
这里还有一个引发该错误的片段:
php - 使用 PHP 对 mysql 条目进行批量操作
我们在 MySQL 数据库的表中显示结果,其中包含复选框。如果用户勾选 5 行并单击删除按钮,我们如何同时删除多行?
plsql - 为什么 PL/SQL Bulk DML 对于具有父子约束表的大型数据集运行速度变慢?
我一直试图弄清楚为什么这个 PL/SQL 清除脚本对于记录表有几十万或更多记录的数据集运行缓慢。在脚本执行之前,记录表的某个子集被标记为清除 - 大约 75%。
是什么导致 Record_Part 表的删除比其他表花费的时间长得多?是不是因为它位于 3-table 父子层次结构的中间?我是否在索引或约束方面错过了一些知识?我可以做些什么来加快这个定期清除过程?
这是一个 Oracle 10g 数据库。
提前感谢您阅读我的问题。
架构(部分):
- 记录表是父表
- Record_Part 表是Record 的子表(Record 有很多Record_Part)
- Record_Person 是 Record_Part 的子项(Record_Part 有多个 Record_Person)
- 典型比例为 1:7:9 (record:record_part:record_person)
记录
- PK-系统ID
- 物理标识
- 待办的
- purge_in_progress
记录_部分
- PK - Part_pk
- FK-record_sysid
Record_Person
- PK-系统ID
- FK - Part_pk
运行时
50000 条记录条目
- record_person forall 在 1:40 分钟内完成
- record_part forall 在 1:20 分钟内完成
- 记录 forall 在 10 秒内完成
300000 条记录条目
- record_person forall 在 9 分钟内完成
- record_part forall 在 2 小时内完成
- 记录 forall 在 20 分钟内完成
2000000 条记录条目
- record_person forall 在 1 小时内完成
- record_part forall 在 13 小时内完成 (!)
- 记录在 8 分钟内完成
索引和约束 DDL
脚本:( 下面的脚本省略了时间戳打印)
database - Oracle 问题:改进传统路径负载的问题,direct=false,提交次数和绑定大小/读取大小
我目前正在做一个学术基准测试,TPC-H,我有一些大表,我想使用直接路径(效果很好并且非常快)和传统路径加载。
为此,我使用了这个批处理脚本:
问题是,无论我为 bindsize 和/或 readsize 选项赋予什么值,它总是从 65534 行提交到 65534 行。我已经通过了 %%B 大小,这是每个表的确切行数。
在直接加载中,我只是在加载孔表后真正使用了行和提交。
我想做类似的事情,但使用传统的加载路径 - 我知道这并不快,但这就是重点。
您能否告诉我如何提供正确的参数,以便我可以: 1- 一次加载尽可能多的数据;
2-提交频率较低,最好在表加载结束时提交。
以下是表的名称和行数:
lineitem 23996604 -> 是最大的,大约有。3GB 磁盘
订单 6000000零件供应
3200000
零件 800000
客户 600000
供应商 40000
国家 25
地区 5
php - 缓存的 mysql 插入 - 保持数据完整性
我想做很多插入,但是一段时间后是否可以更新mysql。
例如,如果有一个查询,如
在视图达到 100 之前,是否可能无法存储此查询,然后运行以下命令,而不是从 100 次以上运行查询。
现在,假设已经完成,那么数据完整性问题就来了。假设有 100 个打开的 php 文件都将运行相同的查询。现在除非有增加缓存视图的锁定机制,否则多个文件可能具有相同的缓存视图值,所以假设进程 1 可能有 25 个缓存视图,php 进程 2 可能有 25 个视图和进程3 可能有来自文件的 27 个视图。现在假设进程 3 完成并将计数器增加到 28。然后假设 php 进程即将完成并且它在进程 3 之后完成,这意味着计数器将恢复到 26。
那么你们有没有快速但数据安全的解决方案。
谢谢
file - 处理大量 1000 多张图像
大家好,我很高兴得到一些关于处理图像的 Windows 批处理脚本文件的帮助,我正在从旧软件迁移,它用于将文件保存在文件夹中,每个文件都有自己的用户 ID(例如 10050.jpg)我有像这些图像中的 1000 个,我想将图像分发到具有图像名称的新文件夹并创建 SQL 文件以更新新软件,例如:
将会去:
并创建了 SQL 文件:
谁能帮我写一个批处理文件来提取这些信息?我是这方面的初学者。谢谢!
sql - 逗号导致使用 BULK INSERT 和格式文件出现问题
我正在尝试使用 SQL Server 上的 BULK INSERT 和格式文件导入 .CSV 文件。我已经创建了格式文件并为每个值设置了正确的字段终止符。格式文件已正确验证,我已成功导入一些测试数据。
但是,在引用文本中间遇到逗号时遇到问题,例如:
"SB","7Y4386429Y0351805","B5503","","Chris",1,10,"Paypal","您好抱歉延迟付款,我会尽快付款。"
(示例数据)
我已将格式文件设置为正确识别带引号和不带引号的字段,但最后一个字段中间有一个逗号,这会在导入时产生错误。
我将 FieldTerminator 设置为“,”并尝试将其完全排除在外,但不应该忽略终止符,而是使用格式文件中的终止符吗?
我不明白为什么逗号会导致该字段结束,因为该字段被引号包围。这是设计使然吗?当然应该忽略逗号,因为它与格式文件中的任何字段终止符都不匹配?
我在这里有什么选择?有问题的数据来自 Paypal,因此他们改变导出方式的可能性不大。
有任何想法吗?
如果重要的话,我在下面展示了我的格式文件的第一部分(实际文件包含 56 行)。所有 56 行都具有相同的 SQLCHAR 数据类型、相同的长度和相同的结束值。
任何帮助将非常感激。
谢谢,
克里斯。
sql-server - 带有额外列的批量插入
嗨,我有一个 csv 文件(来自 excel),我使用 BULK INSERT 将其插入到我的表中。表中的列数与 csv 文件中的列数匹配。
但是我需要在我的表中添加一个额外的列,例如 Processed。理想情况下,这将是一个位列,最初所有值都是错误的。
有没有(简单的)方法来完成这个
谢谢
--MB