jus*_*key 5 sql sql-server merge sql-server-2005 upsert
我有一个Web应用程序,每秒接收大约50次点击,每次点击我在中央SQL Server数据库中大约10个记录.大约每3秒钟我就会为一个入站连接发送5000多行.
目前我有一个存储过程,它将XML作为参数.我从我的XML中执行INSERT到我的主表,其中行字段不匹配,然后用我的XML中的值更新整个表.
无论如何操作并不慢,但我真的想知道最好的方法.我在SQL Server 2005上运行,所以我没有MERGE操作.
我会先进行UPDATE,否则你将更新刚刚插入的行
SELECT .. INTO #temp FROM (shredXML)
BEGIN TRAN
UPDATE ... FROM WHERE (matches using #temp)
INSERT ... SELECT ... FROM #temp WHERE NOT EXISTS
COMMIT
Run Code Online (Sandbox Code Playgroud)
我还考虑将XML更改为临时表并使用SQLBulkCopy.我们发现这比通常解析XML超过几百行更有效.如果你不能改变这个,那么你首先将XML分解为临时表吗?
| 归档时间: |
|
| 查看次数: |
1183 次 |
| 最近记录: |