c# – 以编程方式设置DB连接优先级

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

有没有办法以编程方式告诉DB哪个连接具有最高优先级?

例如,如果我将Con1,Con2和Con3全部连接到ODBC数据库,我希望能够告诉数据库将Con2视为优先于任何其他连接的优先级,因此它将首先优先考虑该工作负载.

虽然我可以设置C#线程优先级,但这不起作用,因为虽然C#线程可能运行在最高位置,但它仍然只能运行与底层数据库连接一样快(除非我错了并且C#线程优先级通过?).

最佳答案 我没有使用它,但听起来你可以使用Oracle的 Database Resource Manager为不同的会话分配不同的优先级.

In an environment with multiple concurrent users sessions that run jobs with differing priorities, all sessions should not be treated equally. The Resource Manager enables you to classify sessions into groups based on session attributes, and to then allocate resources to those groups in a way that optimizes hardware utilization for your application environment.

这个related question提到了SQL Server的Resource Governor.

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

点赞