IN SQL Server 是 CLR 线程安全的

2024-06-24

我在 SQL Server 和 Exchange Web 服务之间的 CLR 中有一个接口,用于在应用程序之间同步和发送电子邮件。在测试中它可以正常工作,没有任何问题;我们在生产环境中发现了零星问题,其中较长的 Web 服务任务似乎重叠。

我的问题非常简单,我无法通过阅读 MSDN 上的 CLR 详细信息来决定 - CLR 线程安全还是开箱即用。

如果不是,调用线程安全的 CLR 的最佳方法是在我的过程周围应用锁定,或者是否有一个不太激烈的替代方案。


感谢您的回复;我们发现这是一个 EWS / 模拟问题,而不是 SQL 问题。我们在系统上完成了一组新的负载测试,即使在大量负载(比应用程序迄今为止看到的高 1000 倍)下,我们也看不到内存泄漏/线程问题,这就是我们现在在其他地方寻找的原因..


不要使用进程内 CLR 进行外部连接、Web 服务或交换等。使用 SQL Server 外部的普通进程。您将看到的不仅仅是“零星”问题:您将在 CLR 事件上耗尽工作池,并且 SQL Server 将耗尽该工作池。freeze.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IN SQL Server 是 CLR 线程安全的 的相关文章

  • SQL查询获取列的精度值

    我需要一个 SQL 查询来获取某些列的精度值 我主要关心十进制类型列 并且我需要相同的精度值 我意识到在某些版本和数据库服务器供应商中可以这样做 如果您能列出其中的一些 那就太好了 对于 SQL 服务器 select precision f
  • 存储过程 EXEC 与 sp_executesql 的区别?

    我写了两个存储过程 其中一个是sp executesql而其他没有 sp executesql 两者都正确执行相同的结果 我不明白两者之间有什么区别 EXEC SQL 与 EXEC sp executesql SQL N eStatus v
  • 我应该在删除数据之前禁用聚集索引吗?

    我知道这已经像任何事情一样被讨论过 但找不到我可以接受的可靠答案 假设我有一个有100亿条记录的表 需要删除where子句中带有标识列的记录 我应该选择哪个选项 选项1 禁用索引 这将节省删除后重新排列索引的开销 但会花费更长的时间来搜索需
  • 查找SQL记录中的并发用户数

    我有以下结构的表 UserID StartedOn EndedOn 1 2009 7 12T14 01 2009 7 12T15 01 2 2009 7 12T14 30 2009 7 12T14 45 3 2009 7 12T14 47
  • Redis 与 SQL Server 性能对比

    应用程序性能是使用缓存而不是关系数据库的主要原因之一 因为它以键值对的形式将数据存储在内存中 所以我们可以将经常访问的不经常更改的数据存储在缓存中 从缓存中读取比从数据库中读取要快得多 Redis 是分布式缓存市场上最好的解决方案之一 我正
  • 开发和生产 SQL Server 之间使用不同的排序规则会出现哪些问题?

    盘问 无法更新 sys columns 还有其他方法吗 https stackoverflow com questions 4018347 unable to update sys columns any other approach含糊地
  • 如何使用存储过程 SQL SERVER 2008 R2(mssql) 插入 PHP 数组值

    我有这个数组 REV Array 0 gt 240 1 gt 241 2 gt 242 3 gt 243 4 gt 249 我现在使用下面的代码进行插入 将每个数组的元素存储在带有 id userID Type 和 Date 的行中 if
  • SQL Server 数据归档解决方案

    我正在寻找一种解决方案来存档数据库中存在的数据 我的数据库是 SQL Server 2008 大约有 250 个表 我搜索网络并找到以下链接 http www dbazine com sql sql articles charran13 h
  • 工厂模式数据库连接

    我正在尝试使用 MySQL 实现数据库连接上的工厂模式 SQL Server 面临奇怪的错误 你调用的对象是空的 在 SQL 命令对象上 internal class SqlServerDB IDatabase private SqlCon
  • 使用 CASE 语句的多个条件

    我需要查询一些数据 这是我构建的查询 但对我来说效果不佳 在本示例中 我使用 AdventureWorks 数据库 SELECT FROM Purchasing Vendor WHERE PurchasingWebServiceURL LI
  • 选择仅属于特定部门的用户

    我有下表 其中包含两个字段 即 a 和 b 如下所示 create table employe empID varchar 10 department varchar 10 插入一些记录 insert into employe values
  • 将包含数字的列的类型从 varchar 更改为 int

    数据库中有两列 当前类型为 varchar 16 事实是 它包含数字并且永远包含数字 因此我们想将其类型更改为整数 但问题是它当然已经包含数据了 有什么方法可以将该列的类型从 varchar 更改为 int 并且不会丢失其中已有的所有数字
  • 有没有办法使用 SqlBulkCopy 而不将数据转换为 DataTable?

    有没有办法使用 SqlBulkCopy 而不将数据转换为 DataTable 我在 RAM 中有一个对象列表 List 我真的不想使用更多内存来创建数据表 是否可以在列表上实现 IDataReader Thanks 我当然想象你可以 Bul
  • 声明日期,然后添加下一个工作日

    我没有得到我需要的结果 我想做的就是声明我的日期 然后添加下一个工作日 IE CASHDATE 1 这有效 但我需要下一个工作日是 5 号 DECLARE CASHDATE DATETIME SET CASHDATE 2016 12 02
  • SQL SERVER - COALESCE() 函数的问题

    我有一个由存储过程包装的 SQL 函数 ALTER FUNCTION dbo GetObjList filterUID int NULL filterSID varchar 32 NULL RETURNS TABLE AS RETURN S
  • 加载SSIS包时出错

    我正在尝试在 SQL Server 2008R2 上执行 SSIS 包 该脚本检索远程服务器上的数据并将其复制到本地数据库 该作业每小时安排一次 SQL 代理使用代理向远程计算机验证自身身份 身份验证似乎没问题 但在加载 SSIS 包期间出
  • 主键和代理键有什么区别?

    我用谷歌搜索了很多 但没有找到带有示例的确切直接答案 任何例子都会更有帮助 主键是表中的唯一键 您选择它可以最好地唯一标识表中的记录 所有表都应该有一个主键 因为如果您需要更新或删除一条记录 您需要知道如何唯一标识它 代理键是人工生成的键
  • 为什么使用 SQL Server Express 添加的记录未显示在 SQL Server Management Studio 中?

    我正在测试大量的数字音乐文件记录 我的添加例程是 foreach AlbumModel albumModel in albs try Album album GetAlbum albumModel cmd CommandText inser
  • T-SQL 中的异步存储过程调用

    如何从另一个存储过程对存储过程进行异步调用 假设我有两个存储过程 SP1 和 SP2 这是一个长时间运行的存储过程 需要很长时间执行 并且不返回任何结果 存储过程SP1定义如下 CREATE PROCEDURE SP1 AS BEGIN c
  • Python - 将列表作为参数传递给 SQL,以及更多变量

    我试图在 python 3 6 中将未知数量的参数传递给 SQL Server 这是我使用 pypyodbc 的代码 cursor cnxn cursor theargs 1033286869 1053474957 1063654630 1

随机推荐