Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SqlBulkCopy模拟延迟_C#_Sql_Sql Server 2008_Ado.net - Fatal编程技术网

C# SqlBulkCopy模拟延迟

C# SqlBulkCopy模拟延迟,c#,sql,sql-server-2008,ado.net,C#,Sql,Sql Server 2008,Ado.net,我想使用SqlBulkCopy将数据大容量加载到SQL2008表中。我计划从多个客户端并行加载数据 但是,我希望模拟加载数据的延迟,以便检查数据库中的锁和并发性问题。我通常使用Thread.Sleep()来模拟长时间运行的进程,但我不确定它是否与SQLBulkCopy一起工作 using (SqlBulkCopy s = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock)) { s.DestinationTable

我想使用SqlBulkCopy将数据大容量加载到SQL2008表中。我计划从多个客户端并行加载数据

但是,我希望模拟加载数据的延迟,以便检查数据库中的锁和并发性问题。我通常使用Thread.Sleep()来模拟长时间运行的进程,但我不确定它是否与SQLBulkCopy一起工作

 using (SqlBulkCopy s = new SqlBulkCopy(connectionString, SqlBulkCopyOptions.TableLock))
{


s.DestinationTableName = "HoldTable";    
s.WriteToServer(dataTable);    
System.Threading.Thread.Sleep(1000000);    
s.Close();
}

默认情况下,
SqlBulkCopy.WriteToServer
在事务外部运行。这意味着它将在
WriteToServer
函数返回之前释放所有锁。在
睡眠期间将不会有任何数据库锁定

您可以通过指定to
SqlBulkCopy
的构造函数来使用事务。看


事务将保持其锁,直到您提交它为止。因此,如果您在提交之前放置
睡眠
,您应该有一个有用的模拟。

它不是模拟延迟,而是延迟。你想做什么,让这个过程比需要的时间长15分钟?@Ben显然我不会让System.Threading.Thread.Sleep(1000000)在实际实现中,它只是用来测试“模拟”bulkimport花费了很长时间,但似乎无法工作WriteToServer(dataTable)似乎在一次调用中打开并提交了事务,我无法钩住线程。请在睡眠之间看一下。您可以在C#事务中运行
WriteToServer