SQL Server 2008 中 CLR 中的线程

2024-05-07

我有一个CLR运行在下面的进程SQL Server2008。它构建了多个表数据的缓存以保存在静态类中以供其他调用稍后使用。

我的问题是,我可以通过生成线程来加载缓存中的每个数据集/表来改进加载此缓存的过程吗?

我过去一直回避这一点,因为各种帖子建议将线程管理留给SQL Server。不过我真的可以加快这个过程。 目前,它是加载每个数据集的顺序过程。如果我可以同时运行这些,那就非常方便了。我在外面做过很多次的过程CLR覆盖以获得一些额外的性能提升。

非常感谢任何想法帮助提示。


您可以使用线程,但它们必须正常工作。否则您将失去使用它们的好处。

From CLR 主机环境 http://msdn.microsoft.com/en-us/library/ms131047.aspx

SQL Server 和 CLR 如何协同工作

本节讨论 SQL Server 如何集成线程, SQL 的调度、同步和内存管理模型 服务器和 CLR。特别是,本节检查 根据可扩展性、可靠性和安全性目标进行集成。 SQL Server 本质上充当 CLR 的操作系统 它托管在 SQL Server 内部。 CLR 调用低级例程 由 SQL Server 实现,用于线程、调度、同步、 和内存管理。这些与其余的原语相同 SQL Server 引擎使用。该方法提供了几种 可扩展性、可靠性和安全性优势。

可扩展性:通用线程、调度和同步

CLR 调用 SQL Server API 来创建线程,两者都针对运行用户 代码并供其自己的内部使用。为了实现之间的同步 在多个线程中,CLR 调用 SQL Server 同步对象。 这允许 SQL Server 调度程序在某个任务发生时安排其他任务 线程正在等待同步对象。例如,当 CLR启动垃圾收集,其所有线程等待垃圾 收集完成。因为CLR线程和同步 它们正在等待的对象对于 SQL Server 调度程序、SQL 来说是已知的 服务器可以调度正在运行其他数据库任务的线程 涉及 CLR。这也使 SQL Server 能够检测死锁 涉及 CLR 同步对象获取的锁并使用 消除死锁的传统技术。

托管代码在 SQL Server 中抢占式运行。 SQL Server 调度程序 能够检测并停止未产生的线程 大量的时间。将 CLR 线程挂钩到 SQL 的能力 服务器线程意味着 SQL Server 调度程序可以识别 CLR 中的“失控”线程并管理它们的优先级。如此暴走 线程被挂起并放回到队列中。线程是 多次被标识为失控的线程不允许运行一段时间 给定的时间段,以便其他正在执行的工作人员可以运行。

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

SQL Server 2008 中 CLR 中的线程 的相关文章

  • 如何在 wpf 应用程序的代码隐藏中创建集合视图源

    我有以下代码 public partial class MainWindow Window public MainWindow InitializeComponent var entities new DemoEntities var de
  • 模拟对象 - 将所有方法声明为虚拟方法还是使用接口?

    与 Java 不同 net 中的方法默认不是虚拟的 为了使用大多数模拟对象框架 您要么必须将要在模拟上使用的方法标记为 真实 对象上的虚拟方法 要么必须有一个可以模拟被测试类将使用的接口接受代替执行 将每个方法标记为虚拟似乎是一种不好的形式
  • .Net应用程序设置路径

    默认情况下 Windows 应用程序设置保存在该目录中 USERPROFILE Local Settings Application Data
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Windows 窗体中的标准 Windows 菜单栏

    我注意到添加了一个MenuStrip 来自工具箱 我的表单设计不会产生像许多本机 Windows 应用程序中那样的菜单栏 相反 我得到了一个像 Visual Studio 自己的菜单栏 没有任何样式设置MenuStrip似乎模仿了更常见的本
  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • 将自定义应用程序设置存储在 XML 中

    请帮忙 我有这段代码 它是我的类来序列化 反序列化应用程序设置 XmlRoot EvaStartupData Serializable public class MyConfigClass public string ServerName
  • 序列化和反序列化 HttpRequestMessage 对象

    有人有序列化 HttpRequestMessage 对象的经验吗 尝试使用 Json net 它部分有效 也就是说 JsonConvert DeserializeObject 由于 StringContent 构造问题而失败 无法找到用于类
  • MS Source Server - 使用 srctool 查看时源流显然不存在

    我一直在尝试安装 MS 调试工具中的 MS Source Server 内容 目前 我正在通过 Subversion 索引命令运行我的代码 pdbs 该命令现在按预期运行 它为给定的 pdb 文件创建流并将其写入 pdb 文件 但是 当我在
  • 确保应用程序独立于用户的屏幕分辨率

    有没有简单的方法可以在任何不同的 PC 上运行在 Visual Studio 2005 上用 C 创建的应用程序 无论其屏幕分辨率如何 屏幕分辨率 NET 2 0 中的 Windows 窗体具有一些处理不同 DPI 的机制 并且具有比 NE
  • ThreadPool.SetMinThreads 不创建任何新线程

    我想弄清楚到底有什么影响ThreadPool SetMinThreads makes 根据官方文档 https learn microsoft com en us dotnet api system threading threadpool
  • .net 中的 deflate、gzip 和 zlib 的一个库

    首先 我们来定义一些容易混淆的术语 deflate compression algorithm zlib header deflate trailer gzip header deflate trailer 我正在寻找一个基本上可以让我执行
  • Windows DPAPI - 如何处理熵?

    我正在使用 Windows DPAPI 来加密一些敏感数据 密码存储在注册表中 这一切都运行良好 但我想知道是否有人可以澄清我对 NET 中 可选 提供给 ProtectedData Protect 的 熵 字节的理解 熵 字节数组似乎类似
  • SQL:如何从一个表中获取另一个表中每一行的随机行数

    我有两个数据不相关的表 对于表 A 中的每一行 我想要例如表 B 中的 3 个随机行 使用光标这相当容易 但速度非常慢 那么我该如何用单个语句来表达这一点以避免 RBAR 呢 要获得 0 到 N 1 之间的随机数 可以使用 abs chec
  • 异步多播委托

    我最近在一个广泛使用事件的项目上做了一些工作 我需要做的事情之一是在多播委托上异步调用多个事件处理程序 我认为诀窍是对 GetInvocableList 中的每个项目调用 BeginInvoke 但似乎那里不存在 BeginInvoke 有
  • 如何使用 NGEN 二进制文件安装 IronPython 2.0?

    有谁知道如何使用 MSI 包安装带有 NGEN 二进制文件的 IronPython 2 0 这IronPython 官方主页 http www codeplex com IronPython据说NGEN选项将大大改善启动时间 但由于某种原因
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 等待 IAsyncResult 函数直至完成

    我需要创建等待 IAsyncResult 方法完成的机制 我怎样才能做到这一点 IAsyncResult result contactGroupServices BeginDeleteContact contactToRemove Uri

随机推荐

  • 弹性图表隐藏数据提示

    我们从多个源获取数据 并且某个日期的数据可能存在也可能不存在 因此 对于没有数据的点 我们发送 NaN 问题 在下面的代码中 有没有办法不显示那些为空的数据提示 我添加了一个数据提示功能 但它确实显示了一个小的空方块 是否有可能甚至不显示
  • VSCode 扩展的安全性和隐私性

    我发现 VSCode 有很多不错的扩展 然而 我担心这些扩展是否将我的代码发送到他们的任何服务器 有什么办法可以查到吗 我可以使用 fiddler 并隔离插件中可能发生的调用 但不想对我安装的每个扩展都这样做 VScode 团队对此有一些指
  • VS2015 nuget包管理器找不到包

    我安装了 VS2015 Update 2 现在 nuget 包管理器找不到 Microsoft 和 net 包源之外的任何包 看起来 nuget 包源已被删除 当我将其添加回 http www nuget org http www nuge
  • 外部“C”声明如何工作?

    我正在学习编程语言课程 我们正在讨论extern C 宣言 除了 它与 C 和 C 接口 之外 此声明如何在更深层次上工作 这对程序中发生的绑定有何影响 extern C 用于确保后面的符号不是mangled http en wikiped
  • 如何测量异步发电机所花费的时间?

    我想测量生成器花费的时间 阻塞主循环的时间 假设我有以下两个生成器 async def run for i in range 5 await asyncio sleep 0 2 yield i return async def walk f
  • 预注册 ATL 窗口类

    我在一个项目中使用了 ATL 和 WTL 的组合 并从中派生了我自己的类CWindowImpl 看起来像这样 class CMyControl public CWindowImpl
  • 浮点型、双精度型和十进制最大值与大小的关系[重复]

    这个问题在这里已经有答案了 我在 C 中遇到了这些数据类型的大小和最大值的令人困惑的模式 在使用 Marshal SizeOf 比较这些大小时 我发现了以下结果 Float 4 bytes Double 8 bytes Decimal 16
  • Symfony2 -> Twig -> 表单 -> 字段 -> 设置渲染 = true

    我有一个简单的问题 我有一个带有字段的表单 例如 builder gt add x gt add y gt add z 在我的树枝文件中 我使用了多个块 并且我想停止渲染字段 我查看了 b html twig 文件 a html twig
  • LibGDX dispose() 方法应该如何使用?

    我很不清楚如何dispose LibGDX 框架中的方法有效并且应该使用 据我所知 当你不需要某种资源后 你必须进行处置以确保你的程序运行最佳 我正在开发一个移动应用程序 并且我有一个AssetManager在启动时在特殊指定的加载屏幕中加
  • 消息:Hive 架构版本 1.2.0 与 Metastore 的架构版本 2.1.0 不匹配 Metastore 未升级或损坏

    环境 spark2 11 hive2 2 hadoop2 8 2 hive shell 运行成功 并且没有错误或警告 但是当运行application sh时 启动失败 usr local spark bin spark submit cl
  • Android 中如何获取帧

    实际上 我需要从视频中获取所有帧 但在使用 Mediametadataretriever 缩略图 时间戳获取帧时 我经常重复获取第一帧 然后获取特定时间帧 我通过更改所有 GetFrameAtTime options 尝试了很多修复 但仍然
  • 如何避免javascript中for循环内的for循环

    我已经编写了一段运行良好的代码 我想要一个新数组 其中包含 myArr 中的元素 按照 orderArr 中指定的顺序 但是 它在另一个 for 循环中使用 for 循环来匹配数组元素 var myArr a b c d e var ord
  • 从所有通讯组中删除所有前雇员

    因此 今天我被分配的任务是从所有 DL 中删除域中的所有前员工 他们在 AD 中拥有自己的文件夹 有没有什么方法可以快速做到这一点 或者至少比单独检查每个并转到 gt 的成员删除所有更快 Thanks 编辑以添加更多信息 有 822 个用户
  • API 错误 (500):清单未知:清单未知

    it failes to pull the image with SHA256 digest identifier 不幸的是 这是 DockerHub 消除 Docker 1 9 守护进程的向后兼容性的副作用 当使用 Docker 1 10
  • PHP 命名空间和 use 即使我已经使用 use 指定了类,也找不到致命错误类

    我在 PHP 中的名称空间方面遇到了麻烦 例如我有一个这样的文件 namespace App Models Abstracts abstract class Country 然后是另一个像这样的文件 namespace App Models
  • 是否可以使用 Kafka Streams 访问消息头?

    随着添加Headers http apache spinellicreations com kafka 0 11 0 0 javadoc org apache kafka common header Header html到记录 生产者记录
  • 如何使用户输入与变量相关?

    我不知道如何准确地表达这个问题 但这就是我想要实现的目标 我正在使用堆栈实现河内塔插图 这是里面的main 功能 System out println Type the source pole number and the destinat
  • 在Python中为什么ifrank:比ifrank!= 0更快:

    当我改变的时候 for i in range 0 100 rank ranks i if rank 0 pass to for i in range 0 100 rank ranks i if rank pass 我发现第二个代码效率更高
  • 使用 qTip2 确认工具提示对话框?

    因此 当用户单击删除按钮时 我尝试创建一个小型确认对话框 内联 工具提示 我想象它看起来有点像这样 但带有小文本和 确定 和 取消 按钮 但我不是来问如何设计它的 我更喜欢使用 qTip2 作为该工作的插件 但如果你有更好的选择 我也会选择
  • SQL Server 2008 中 CLR 中的线程

    我有一个CLR运行在下面的进程SQL Server2008 它构建了多个表数据的缓存以保存在静态类中以供其他调用稍后使用 我的问题是 我可以通过生成线程来加载缓存中的每个数据集 表来改进加载此缓存的过程吗 我过去一直回避这一点 因为各种帖子