PYODBC连接将进入休眠模式 [英] PYODBC connection going to sleep mode
本文介绍了PYODBC连接将进入休眠模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
import pyodbc
import datetime
username = "usrname"
password = "password"
server = "server"
database_name = "dbname"
port = "1433"
conn=pyodbc.connect('Driver={ODBC Driver 17 for SQL server};SERVER=tcp:'+server+','+port+';DATABASE='+ database_name +';UID='+ username +';PWD='+ password)
#conn.timeout = 600
cursor=conn.cursor()
# conn.autocommit = True
sql = "set nocount on; exec proc_name"
print("Connection Started at "+str(datetime.datetime.now()))
cursor.execute(sql)
print("Connection closed at "+str(datetime.datetime.now()))
conn.commit()
cursor.close()
conn.close()
print(datetime.datetime.now())
笔记本仍在运行中,请查看下图
一旦所有事务完成(数据插入、删除、更新)状态更新为休眠模式,SPID初始状态的数据库状态即可运行由于此睡眠状态数据砖笔记本未完成,它将继续运行。请帮我解决这个问题。提前谢谢。
推荐答案
由具有未提交事务的休眠spid引起的阻塞:
此类阻塞通常可以由正在休眠或等待命令,但其事务嵌套级别(@@TRANCOUNT, open_transaction_count from sys.dm_exec_requests
)大于零的SPID标识。
ROLLBACK
和/或COMMIT
语句的情况下发出取消,就会发生这种情况。当SPID收到查询超时或取消时,它将终止当前查询和批处理,但不会自动回滚或提交事务。
应用程序应对此负责,因为SQL Server不能假定由于单个查询被取消而必须回滚整个事务。查询超时或取消将在扩展事件会话中显示为SPID的注意信号事件。
这篇关于PYODBC连接将进入休眠模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文