标签: multi-thread

如何在存储过程完成之前获得响应?

我需要在完成之前从存储过程返回部分结果(作为简单的选择)。

有可能这样做吗?

如果是,如何做到这一点?

如果没有,有什么解决方法吗?

编辑:我有几个部分的程序。在第一部分我计算了几个字符串。我稍后会在过程中使用它们来进行附加操作。问题是调用者尽快需要字符串。因此,我需要计算该字符串并将其传回(不知何故,例如从选择中),然后继续工作。调用者更快地获得其有价值的字符串。

调用者是一个 Web 服务。

stored-procedures t-sql sql-server-2012 multi-thread web-service

9
推荐指数
3
解决办法
2998
查看次数

并发、多线程、并行处理中的标识列

我公司想了解一下效果:

  • 如果我们有一个带有主键标识列的表,int 主键 IDENTITY(1,1),

  • 并且应用程序正在进行多线程并行处理,试图在一张表上同时进行 1000 次插入。

身份主键列是否会失败,以任何方式违反主键,例如:处理器正在尝试输入相同的身份编号?

或者 SQL 被设计成即使在多线程并行插入中也能成功?

注意:IDENTITY_INSERT 关闭

database-design sql-server primary-key concurrency multi-thread

4
推荐指数
1
解决办法
2228
查看次数

如何计算 SQL Server 中的最大工作线程数?

我使用 64 位操作系统和两个 CPU(每个 CPU 有 7 个逻辑处理器),逻辑处理器总数等于 14。

当我运行此代码时,我得到2048

SELECT max_workers_count FROM sys.dm_os_sys_info
Run Code Online (Sandbox Code Playgroud)

另一方面,当我使用下面的公式时,我得到了完全不同的数字,即672

For a 64-bit operating system:
Total available logical CPUs <= 4
Max Worker Threads = 512
Total available logical CPUs > 4
Max Worker Threads = 512 + ((logical CPUs - 4)*16)
Run Code Online (Sandbox Code Playgroud)

你能向我解释为什么我得到不同的数字吗?我在另一台服务器上对其进行了测试,两种情况的数字都完全相同。

编辑

在此处输入图片说明

PS 感谢 Dan Guzman 建议检查最大工作线程的服务器设置。这就是 EXEC sp_configure 'max worker threads' 返回的内容:

在此处输入图片说明

sql-server multi-thread cpu

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