是否可以查看未提交事务中运行了哪些查询?

发布于 2024-07-09 07:53:17 字数 199 浏览 5 评论 0原文

我的应用程序(使用 SQL Native Client 和 SQL Server 2000 的 C++)始终处于挂起状态。 我相信这是因为一个事务在表的某个地方未提交,并且该表上的 SELECT 查询由于打开事务而被阻塞。

不幸的是,我真的很难确定挂起的事务可能在我的代码中的位置。 有没有办法让 SQL Server 指示在未提交的事务上运行了哪些查询?

My application (C++ using SQL Native Client with SQL Server 2000) is consistently finding its way into a hanging state. I believe this is because a transaction is left uncommitted someplace on a table and a SELECT query on that table, as a result of the open transaction, is blocking.

Unfortunately, I'm really having trouble determining where the hanging transaction might be in my code. Is there any way to get SQL Server to indicate what queries have been run on an uncommitted transaction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心激荡 2024-07-16 07:53:17

如果您有管理员 (sa) 权限,则可以运行 sp_Who 或 sp_Who2
要显示所有服务器活动,通过 Spid,运行

Exec sp_Who2 [SpidNumber]  

以仅查看您感兴趣的一个会话...

要直接查看打开的事务,请运行

DBCC OPENTRAN (T-SQL)
显示有关指定数据库内最早的活动事务以及最早的分布式和非分布式复制事务(如果有)的信息。 仅当存在活动事务或数据库包含复制信息时才会显示结果。 如果没有活动事务,则会显示一条信息性消息。

Syntax
DBCC OPENTRAN 
    (    {'database_name' | database_id}
    )    [    WITH TABLERESULTS [, NO_INFOMSGS]
        ]

然而,当用户会话终止时,Sql Server 应该自动回滚任何打开的事务。

if you have admin (sa) proviliges, you can run sp_Who, or sp_Who2
to show all server activity, by Spid, Run

Exec sp_Who2 [SpidNumber]  

to just see the one session you are interested in...

To directly see open transactions, run

DBCC OPENTRAN (T-SQL)
Displays information about the oldest active transaction and the oldest distributed and nondistributed replicated transactions, if any, within the specified database. Results are displayed only if there is an active transaction or if the database contains replication information. An informational message is displayed if there are no active transactions.

Syntax
DBCC OPENTRAN 
    (    {'database_name' | database_id}
    )    [    WITH TABLERESULTS [, NO_INFOMSGS]
        ]

Sql Server should, however, automatically rollback any open transaction when a user session is terminated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文