小编And*_*nea的帖子

将 UPDATE 语句的 OUTPUT 定向到局部变量

我想这样做:

DECLARE @Id INT;

UPDATE Logins
SET    SomeField = 'some value'
OUTPUT @Id = Id
WHERE  EmailAddress = @EmailAddress -- this is a parameter of the sproc
Run Code Online (Sandbox Code Playgroud)

这甚至可能吗?我知道我可以声明一个本地表变量并将输出定向到那里,但如果可能的话我宁愿跳过它

sql-server-2008 sql-server sql-server-2012 update output-clause

12
推荐指数
1
解决办法
6191
查看次数

加速插入

我需要一种快速、同步、持续时间最短的插入表的方法。我试过的(“盲”)是:

  • 表上没有任何索引
  • 切换到简单日志记录(从完整日志记录)

我使用的测试场景由 100 个连接组成,每个连接都运行一个 INSERT,然后等待 0.1 秒,然后无限期地再次等待。每个“插入器”记录执行时间。

查看执行时间,我有时会在插入时看到 1.5 秒甚至 10 秒(作为例外情况),否则我看到的是典型的 0.2 秒。

进一步的背景:

  • SQL Server 2008 R2 Express(afaik Express 版本仅限制 DB 大小 (4GB)、RAM (1GB) 和逻辑 CPU (1))
  • 机器:带有 7200 RPM HDD、8 GB RAM 和 8 个逻辑 CPU 的笔记本电脑,托管服务器和客户端
  • 该表由 1 个 BigInt ID(身份)、一个 NVARCHAR(100) 字段和 NVARCHAR(MAX)(此上的 INSERT 具有 10k 有效负载)和一个 NVARCHAR(MAX)(30k 有效负载在 INSERT)列组成

我应该在哪里寻找对此类流程性能的进一步改进?

performance sql-server-2008 sql-server optimization insert

7
推荐指数
1
解决办法
3510
查看次数