繁体   English   中英

SQL Server Complex添加/更新每天合并数百万行

[英]SQL Server Complex Add/Update merge million rows daily

我有7份报告,每天都会在深夜下载。

这些报告可以用csv / xml下载。 我正在下载它们的csv格式,因为它们是内存有效的。

此过程在后台运行,由hangfire管理。

下载后,我使用dapper运行存储过程,使用merge语句插入/更新/更新数据。 此存储过程具有七个表值参数。

我没有删除,而是将该记录的IsActive列更新为false。

请注意,2个报告的记录超过100万条。

我只在Azure SQL中获得超时异常。 在SQL Server中,它工作正常。 作为一种解决方法,我将此查询的超时时间增加到1000。

此应用程序在Azure s2中运行。

我一直在考虑发送xml的选项,但我发现SQL Server处理xml的速度很慢,而且效率很高。

我也不能使用SqlBulkCopy因为我必须根据某些条件进行更新。

另请注意,将来会添加更多报告。

此外,当添加新报告时,存在大量插入。 如果再次运行先前添加的报告,则运行多数更新。

这些表目前没有任何索引,只有聚簇整数主键。

每行都有一个唯一的代码。 此代码用于标识是否插入/更新/删除

你能推荐一种提高性能的方法吗?

您的来源是否输入了整个数据? 是否更新/新。 我假设您只考虑更改(Delta)的唯一代码(插入/更新/删除)。 如果不是那个区域。 另一个是考虑并行性。 我想那时你需要为每个表都有不同的存储过程。 非依赖表可以一起处理

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM