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

匆匆过客 提交于 2019-12-12 16:24:52

问题


I am querying a view which will return huge data and takes more than 1 minute to complete.

I am executing the query with django.db.connection.cursor() since this is not my default db. After 30 seconds I am getting an exception 'Query timeout expired'. I think 30 seconds is the default timeout of django-mssql. Is there a way to increase timeout period or is there any other way.

Can't work on SQL query because it is implemented by another party. Only a view is exposed.

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


回答1:


You can adjust the COMMAND_TIMEOUT in the database config, in your django settings file. Example of using COMMAND_TIMEOUT:

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


来源:https://stackoverflow.com/questions/30237170/query-timeout-expired-in-django-mssql-when-executing-custom-sql-directly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!