相关疑难解决方法(0)

"exec sp_reset_connection"在Sql Server Profiler中的含义是什么?

试图通过发出"sp_reset_connection"来理解Sql Profiler的含义.

我有以下,"exec sp_reset_connection"行后跟BatchStarting和Completed,

RPC:Completed       exec sp_reset_connection
SQL:BatchStarting   SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]
SQL:BatchCompleted  SELECT [c].[TestID] AS [TestID], [c].[Description] AS [Description] FROM [dbo].[Test] AS [c]    
Run Code Online (Sandbox Code Playgroud)

基本上第一行"exec sp_reset_connection"意味着整个过程(我的连接被打开,选择stmt运行,然后连接关闭并释放回池)刚刚发生?或者我的联系仍处于开放阶段.

而且,为什么sp_reset_connection在我自己的select语句之前执行,不应该在用户的sql之后复位吗?

我想知道有什么方法可以更详细地了解连接何时打开和关闭?

通过查看"exec sp_reset_connection",这是否意味着我的连接已关闭?

sql-server database-connection sql-server-profiler sp-reset-connection

166
推荐指数
3
解决办法
11万
查看次数

SqlConnection vs Sql Session.他们的生命一致吗?

我想为我的c#应用程序中的某些进程应用一些sql-session级别设置.

例如,我想DEADLOCK_PRIORITY为一些后台进程设置LOW.

问题是:

  1. 如果我打开一个新的SQL连接,那会启动一个新的sql-session吗?

  2. sql-session会一直存在,直到连接关闭?如果我在SqlConnection打开后立即应用我的设置,它们是否对在相同的情况下执行的所有查询有效SqlConnection

  3. 连接池怎么样?这可能是我的SET DEADLOCK_PRIORITY LOW设置将被我的系统中的其他进程(我不想要)重用,因为SqlConnection实际上并没有关闭(asp.net连接池决定重用它).

谢谢!

c# sql sql-server asp.net connection-pooling

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

为什么垃圾收集器以错误的顺序获取对象?

我有一个带有两个类A和B的应用程序.类A有一个对类B的引用.类的析构函数执行一些资源清理,但它们必须按正确的顺序调用,首先是A的析构函数和那么B的析构函数

发生的事情是,以某种方式首先调用B的析构函数,然后A的析构函数崩溃,因为它试图从已处置的对象执行方法.

GC的这种行为是否正确?我希望GC检测到A有对B的引用,然后先调用A析构函数.我对吗?

谢谢伙伴们!

PD:如果对析构函数/终结器/处理器等有疑问,那就是我们所拥有的:

~A()
{
    this.Dispose();
}

~B()
{
    this.Dispose();
}    
Run Code Online (Sandbox Code Playgroud)

c# garbage-collection destructor

6
推荐指数
3
解决办法
1144
查看次数

多次调用SuppressFinalize

GC.SuppressFinalize(object)多次呼叫有什么缺点吗?处置模式的
受保护Dispose(bool)方法检查之前是否调用它,但是在公共方法中没有这样的检查.Dispose()

public void Dispose()
{
    Dispose(true);
    GC.SuppressFinalize(this);
}

protected virtual void Dispose(bool disposing)
{
    if (_Disposed)
        return;

    if (disposing)
    {
        // Cleanup managed resources.
    }

    // Cleanup unmanaged resources.
    _Disposed = true;
}

~MyClass() { Dispose(false); }
Run Code Online (Sandbox Code Playgroud)

可以多次调用实例的Dispose()方法MyClass吗?

c# garbage-collection suppressfinalize

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