我有一个包含2500万条记录的SQL Server数据库,我需要更新这些记录。源是一个使用存储过程的C#程序。检查后,存储过程需要很长时间才能更新。
当我使用事务时,1000条记录大约需要10分钟。我已经在用于搜索的所有列上设置了索引键,或者如果列上有条件,这对加速没有帮助。
唯一标识符是字符串,不能更改为数字值。其他列的值是可更改的。我想我的减速原因在下面的部分。
FROM
[Policy]
WHERE
[UniqueIdentifier] = @UniqueIdentifier
AND ([ParentIdentifierId] != @ParentIdenti
我必须更新数据库中的5000行。我所做的是将它们从数据库加载到实体上下文中,然后更改属性值,然后调用SaveChanges(),但问题是,当我调用SaveChanges()时,update语句一个接一个地执行,每个update语句都是一次数据库访问,耗时约40ms,40ms x 5000条记录是200秒...有没有办法将批量更新发送到数据库,在一次数据库旅行中进行多次更新...
我有一个使用hibernate的应用程序。它的一个模块在批处理中调用本机SQL (StoredProc)。粗略地说,它所做的就是每次写文件时都会更新数据库中的一个字段。现在,我不确定需要编写多少文件,因为它取决于每天的事务数量,因此它可能是0到100万。
如果我在while循环中使用这个代码片段,我会有什么问题吗?
@Transactional
public void test()
{
//The for loop represents a list of records that needs to be processed.
for (int i = 0; i < 10000
我想要更新1000万条记录数据库中的许多记录。这里的例子表明可以像这样进行更新:
Customer c = (from x in dataBase.Customers
where x.Name == "Test"
selext x).First();
c.Name = "New Name";
dataBase.SaveChanges();
但这看起来像是两次访问数据库。一个用于获取记录,另一个用于保存记录。如果我在一次调用中更新了1000条记录,我认为这将不得不从数据库中提取1000条记录到我的WCF服务器,进
我有一个数据库表,如下:
id min max
---------------------
1 0 20
2 21 30
3 31 40
我在网格视图(asp.net)中显示此表,用户可以在其中插入新行、更新现有行和删除任何行。这些都是我存储在datatable中的操作。在更新、插入、删除记录后,当用户想要保存它时,他或她按下保存按钮,修改后的数据表被保存在数据库中(与我填充网格视图的表相同)。为了更新数据库,我使用了OracleBulkCopy类。现在的问题是,当我更新datatable到数据库时,它正在重复已经存在的行。例如,如
下面是我用来将数据从临时表dataTable复制到Oracle中的destTable的代码。dataTable有大约200万条记录。
using (OracleBulkCopy bulkCopy = new OracleBulkCopy(VMSDATAConnectionString))
{
try
{
foreach (OracleBulkCopyColumnMapping columnMapping in columnMappings)
我有一个通过csv文件输入数据的内容类型。一切都很好,因为我有多个内容类型的设置像这样。
不过,我正在努力清理数据库,删除2012年及之前的数据。
在/admin/content/filter url的Drupal中,我设置了内容类型的参数,例如:
node type is Print Data
and is created before 2013-01-01
and node status is published
(注意,我只是使用代码指示符来设置这个帖子的选项)
返回时,我有显示500+结果的每个页面的内容页。我可以从Drupal中删除它们,但每次只能删除500,所以我去了phpMyad
我指的是Pro JPA2 book for Learning JPA .and它说查询、批量更新和大容量删除绕过持久化上下文并在数据库执行,是否意味着这些操作不是在持久性上下文上执行,而是直接在数据库中调用。例如,查找方法在持久性上下文中执行,而选择/更新/删除查询则在数据库上执行。SELECT/UPDATE/DELETE发现可能击中数据库,也可能没有命中数据库,但会访问数据库。
请在这里给我更多的见解