我可以杀死这个进程吗?

发布于 2024-08-16 05:30:43 字数 668 浏览 4 评论 0原文

可能的重复:
SQL Server 2005 中的活动监视器问题

我的计算机上运行着一些进程数据库服务器占用大量CPU。当我查看有关流程的详细信息时,我得到:

set transaction isolation level  read committed

其他详细信息包括:

  • 状态:睡眠中
  • 开放事务:0
  • 命令:等待命令
  • 登录时间:12 小时以上
  • 最后一批:不到 2 分钟前

我还没有观看该活动最近进行了监控,但当我从服务器管理员那里得到消息说 CPU 运行率接近 100%,而 SQL Server 占据了大部分时,我感到非常好奇。该命令来自不同的(网络)应用程序,但它们都没有实际使用该代码。有些是用 Coldfusion 编写的,有些是用 .NET 编写的。

这个命令是由SQL Server生成的吗?

是什么原因造成的?

终止这些进程安全吗?

Possible Duplicate:
Activity Monitor Problems in SQL Server 2005

I have some processes running on my database server that are taking up enourmous amount of CPU. When I view the detail about the process I get:

set transaction isolation level  read committed

The other details include:

  • Status: Sleeping
  • Open Transactions: 0
  • Command: AWAITING COMMAND
  • Login Time: 12+ Hours ago
  • Last Batch: Less than 2 minutes ago

I haven't been watching the activity monitor lately but when I got word from my server admins that the CPU was running near 100% with SQL Server taking the majority I got very curious. That command is coming from different (web) applications but none of them ever actually use that code. Some are written in Coldfusion and others are in .NET.

Is this command generated by SQL Server?

What is causing it?

Is it safe to kill those processes?

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

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

发布评论

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

评论(3

她如夕阳 2024-08-23 05:30:44

您的之前的问题的答案仍然适用:

不,SQL 不会运行
自己的陈述。那些
声明来自网络应用程序。
它们可能不明确存在
您的应用程序中的 SqlCommand 文本,但有
有几万行
来自各种框架的代码和
你的代码和什么之间的 ORM
实际上到达了SQL Server。一个微不足道的
例子是贝宁
SqlConnection.Open() 发送一个
相当大的批量来初始化
会话设置,以结束的批处理
设置事务隔离级别读取
承诺...

您是否可以杀死它们是不可能的,因为它们是您的应用程序。

Tthe answer from your earlier question still aplies:

No, SQL would not be running
statements on its own. Those
statements come from the web apps.
They may not exist explicitly as
SqlCommand text in your app, but there
are several tens of thousands of lines
of code from various frameworsk and
ORMs between your code and what
actually reaches SQL Server. A trivial
example is the bening
SqlConnection.Open() which sends a
pretty hefty batch to initialize the
session settings, a batch that ends in
set transaction isolation level read
committed...

Whether you can kill them or not is impossible to tell since they are your applications.

£冰雨忧蓝° 2024-08-23 05:30:44

您能为我们提供更多信息吗?

该命令只是在事务启动之前设置了事务的隔离级别以读取提交,并不是问题的原因。

我建议您尝试 SQL Profiler 来找出原因。设置过滤器时要小心,以免收到大量交易。

Can you provide us with more information?

The command only sets the isolation level for the transaction to read commited before the transaction is started and is not the cause of the problem.

I suggest you try SQL profiler to identify the cause. Be careful when you set up filters in case it recieves a large amount of transactions.

慵挽 2024-08-23 05:30:44

同意 Remus Rusanu 的观点,但只是为了澄清你的确切问题:“设置事务隔离级别读取已提交”不是一个“过程”。它是一个声明,规定如何处理来自您的应用程序的声明。

这就是说,作为会话的一部分运行的查询(在 ColdFusion 的情况下,任何特定的 cfquery 除非它们位于 cftransaction 内)将仅读取已提交的数据。您可能会注意到,如果您使用 cftransaction,您会看到不同的事务隔离级别,该级别允许查询读取本地未提交的数据。

Agree with Remus Rusanu but just to clarify your exact question: "set transaction isolation level read committed" is not a "process". it's a statement which dictates how the statements that do come from your app will be processed.

This is saying that queries run as part of your session (in the case of ColdFusion any particular cfquery unless they are inside a cftransaction) will only read committed data. You would probably notice that if you used a cftransaction you would see a different transaction isolation level which allowed the queries to read local uncommitted data.

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