问题标签 [spid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - 杀死 SQL spid 后丢失数据
作为一个新手 DBA,这对我来说是一个非常危险的情况。
有时当我看到活动监视器屏幕中出现死锁时,如果查询没有结束并保持挂起状态并且还有一个头块,我必须杀死那个 spid。并非总是如此,但有时(尽管很少)在杀死 spid 后会从数据库中丢失大量数据。我猜它从锁定开始到我杀死它都会丢失数据。据我了解,Sql server 不会立即保存数据,它会等待一段时间(某种周期可能每 15 分钟一次)并在认为一切正常时保存数据。
例如,我每 6 小时进行一次完整备份,每 10 分钟进行一次事务备份。昨晚由于某种原因它无法在 00:00 进行备份,并且该 spid 处于挂起状态等待。当我在早上 08:30 杀死那个 spid 时,我从 00:00 到 08:30 丢失了所有表中的所有数据。
我有完整的恢复模型并使用 MsSqlServer2012。
在生产数据库中丢失数据是非常大的风险。我的问题是;我怎么能确定,在杀死 spid 之前 SQL 真的保存了数据吗?
sql - SQL Server 查询超时
访问 SQL Server 2012 数据库的第 3 方应用程序[Microsoft][ODBC SQL Server Driver]Query timeout expired
在执行约 20 分钟后出现错误。
这是我在应用程序开始收到错误后在数据库中看到的内容:
SPID 102 未显示在上面的查询中。它是来自同一应用程序的同一进程的另一个连接。我能够在下面的屏幕截图中捕捉到一些细节。它是此屏幕截图中最顶行的那个。抱歉,在截屏时滚动条向右移动。
AutoShrink
TRUE
发生这种情况时在此数据库上设置为。
看起来像:
来自稍后启动的第 3 方应用程序的多个连接正在 SPID 27 上等待 - 这是一个 AUTOSHIRNK 命令
SPID 27 正在等待 SPID 102,这是来自同一个第 3 方应用程序的另一个连接
问题:
有什么方法可以判断自创建以来与 SPID 27 的连接
AutoShirnk
是否设置为TRUE
在数据库上?如果是这样,为什么它在 SPID 102 上等待,为什么其他连接(83、85、86、88 和 90)在 27 上等待?
根据下面链接中的 TechNet 文章,AutoShrink 不应该对数据库上的任何活动产生影响
如果数据库将 AUTO_SHRINK 选项设置为 ON,则数据库引擎会减小数据库中文件的大小。此活动在后台发生,不会影响数据库中的任何用户活动。
笔记:
这当前在发生此问题的 SQL Server 2012 SP1 上运行。
当应用程序从 SQL Server 2008 SP3 上的数据库运行时,应用程序中的此过程可以正常工作。
sql - Stop C# Multi-Threaded Sql calls from using same SPID
Background, we have a local service running our sql 2008 server that imports roughly 1600 small csv files per night. Yesterday around 11:30 pm it was running flawlessly, pushing 5-10 files per minute, but upon inspection this morning I noticed there were still over 400 files in the queue.
We push the files up in batches of 15 (15 separate threads in service) and 99% of the time have no issues. This morning though I noticed that there were 15 files marked as loading and only one active SPID. After checking profiler and running the service as a console app I realized that for some reason SQL has decided to mesh all calls into the same SPID.
There was no update or maintenance done last night, it was a normal execution with 0 errors reported.
Does anyone know what would cause SQL to all of the sudden package all of these calls into a single SPID?
The service pushing the files up has not been modified for over 18 months so I'm fairly certain it's something on the SQL side.
We are an SaaS company so I can't bounce the sql service until 2-3am tonight but am planning to do so.
sql - 每个存储过程执行的唯一 SPID
我正在使用 WebApi2 和 SQL Server 2008 构建一个 angularjs .net 应用程序。当页面加载时,它会向 WebApi 发送多个 ajax 调用。WebApi 然后依次将这些调用传递给 Sql 服务器,但是当我查看 sql profiler 时,对 db 的所有调用都使用相同的 SPID 执行,我认为这是顺序执行而不是存储过程的并行执行。即使查看了Firefox浏览器上的网络监视器选项卡,所有这些调用都一个接一个地返回,而不是同时返回。这可能会在系统中造成瓶颈,因为角度向webapi发送并行请求但sql server正在按顺序执行每个请求而不是平行。我使用了 Data Access Application Block v6.0 并将 Connection 和 Command 对象置于“使用”范围内。它仍然使用相同的 SPID 触发我所有的存储过程。
linq - 在实体框架中删除 LINQ 之后的 SPID
我有一个应用程序,我使用 Entity Framework 与 MS SQL 数据库进行交互。在其中,我使用块调用内部的 Dbcontext。我遇到的问题是,即使在处理 Dbcontext 之后,SPID 仍处于休眠状态,直到应用程序退出。我将如何删除这些悬挂的 SPID?
sql-server - 进程/SPID被自己阻塞,如何在不重启Sql Server的情况下清除/杀死
我们有一个运行了 4 个小时的进程。因为运行时间太长,导致数据库出现其他问题,所以决定杀掉这个进程。
现在,该进程处于挂起状态。它还声明它在查询 sp_who2 后被自己阻止。
在活动监视器中,这是 waitresource 信息:
objectlock lockPartition=0 objid=xxx subresource=FULL dbid=2 id=lockyyyy mode=X associatedObjectid=xxx
您会注意到 objid 和 associatedObjectId 是相同的值。
查询 sys.objects 表显示该对象 ID 没有结果。
Sql Server 是否正在等待一个不再存在的对象的锁定?如何在不重新启动 Sql Server 的情况下摆脱这个过程?(我们的 DBA 没有响应帮助请求)。
请记住,这是一个测试环境,但它正在停止所有开发/测试,因为我们无法将任何更改部署到我们的数据库,因为其中一项更改正在影响进程正在访问的对象之一。
编辑:来自活动监视器的更多信息:Command = 'KILLED/ROLLBACK' TASK STATE = 'SUSPENDED'
sql-server - 如何在水晶报表中获取当前系统进程 ID?
我想在水晶报表中添加一些sql查询条件。
我添加了一个公式字段 SPID,并将 sql 查询设为
{ONE_TABLE.ONE_COLUMN_SPID} = {@SPID}
但是,如何让 SPID 字段显示当前的系统进程 ID?或者水晶报表中是否有获取当前系统进程ID的功能?或者有没有办法将参数@@SPID 放入水晶报告中?(ps,@@SPID是Sql Server中获取SPID的方式)
谢谢。我真的需要你的帮助。
sql-server - SQL Server 日志 - 源 (SPID)
在检查日志文件查看器中值得注意的事件时,我遇到了一个我想调查的日志。
假设日志将源记录为 SPID1234
我的问题:此 SPID 是否与生成日志的实际连接相关联,或者 SPID 是否与将其写入日志的进程相关联?
sql-server - 是否可能出现以下情况:SQL Server 对同一应用程序的两个实例使用相同的 spid?
有一个应用程序和 SQL Server 相互通信。用户在计算机中运行应用程序的两个实例。他在第一个实例中开始执行一个操作,然后在第二个实例中开始执行另一个操作。在这种情况下,SQL Server 是否有可能对这两个查询使用相同的 spid?这有可能吗?
我已经阅读了这个问题(客户端应用程序中打开的 SqlConnections 与 SQL Server 中的进程之间有什么关系?)。如果我正确理解这种情况可能会发生pooling = true
,因为 SQL Server 可以选择第一个实例的现有连接作为第二个实例。这个对吗?
sql-server - 如何通过 SPID 找到使用最多内存的进程?
我想通过 SPID 找到使用最多内存的进程,在 SQL Server 中甚至可能吗?如果是这样,查询将是什么?