以编程方式设置数据库连接优先级

本文关键字:数据库连接 优先级 设置 方式 编程 | 更新日期: 2023-09-27 18:25:51

我们有一个C#应用程序,它可以打开到各种数据库(主要是Oracle和SQL Server)的多个ODBC连接。

有没有一种方法可以通过编程告诉DB哪个连接的优先级最高?

例如,如果我让Con1、Con2和Con3都连接到ODBC数据库,我希望能够告诉数据库将Con2视为比任何其他连接都高的优先级,这样它就会优先考虑该工作负载。

虽然我可以设置C#线程优先级,但这不起作用,因为虽然C#线程可能以最高速度运行,但它仍然只能以底层数据库连接的速度运行(除非我错了,并且传递了C#线程优先级?)。

以编程方式设置数据库连接优先级

我还没有使用过它,但听起来您可以使用Oracle的数据库资源管理器为不同的会话分配不同的优先级。

在具有多个并发用户会话并运行具有不同优先级的作业的环境中,不应平等对待所有会话。资源管理器使您能够根据会话属性将会话分类为组,然后以优化应用程序环境硬件利用率的方式将资源分配给这些组。

这个相关的问题提到了SQL Server的资源调控器。

如果您想在两个不同的数据库系统(如Oracle和SQL server)之间设置优先级,我认为它的灵活性会降低。我能想到的最好的办法是将其中一个数据库系统的进程优先级设置为低于另一个。资源管理器和调控器听起来可以限制任何一个查询可以使用的资源数量,但这可能会导致没有其他任务的情况,而低优先级任务最终会使一些处理器速度闲置。