直接执行自定义 SQL 时,django-mssql 中的查询超时已过期

Query timeout expired in django-mssql when executing custom SQL directly

我正在查询一个视图,该视图将 return 大量数据并且需要 1 分钟以上才能完成。

我正在使用 django.db.connection.cursor() 执行查询,因为这不是我的默认数据库。 30 秒后我收到异常 'Query timeout expired'。我认为 30 秒是 django-mssql 的默认超时时间。有没有什么办法可以增加超时时间,或者有什么其他办法吗

无法处理 SQL 查询,因为它是由另一方实施的。仅显示一个视图。

str(Exception) 是“(-2147352567, 'Exception occurred.', (0, u'Microsoft OLE DB Provider for SQL Server', u'Query timeout expired', None, 0, -2147217871), None)"

您可以在数据库配置中调整 COMMAND_TIMEOUT,在您的 django 设置文件中。使用 COMMAND_TIMEOUT 的示例:

DATABASES = {
'default': {
    'NAME': DATABASE_NAME,
    'ENGINE': 'sqlserver_ado',
    'HOST': DATABASE_HOST,
    'USER': DATABASE_USER,
    'PASSWORD': DATABASE_PASSWORD,
    'COMMAND_TIMEOUT': DATABASE_COMMAND_TIMEOUT,
   }
}