https://stackoverflow.com/a/12946908/1552953
この回答は、接続にタイムアウトを設定できることを示しています。
タイムアウト
オプションの整数クエリ タイムアウト (秒単位)。無効にするには、デフォルトのゼロを使用します。
タイムアウトは、接続によって作成されたすべてのカーソルに適用されるため、特定の接続に対して変更することはできません。
クエリのタイムアウトが発生した場合、データベースは SQLSTATE HYT00 または HYT01 で OperationalError を発生させる必要があります。
注: この属性はクエリにのみ影響します。実際の接続プロセスのタイムアウトを設定するには、pyodbc.connect 関数の timeout キーワードを使用します。
result = None
with pyodbc.connect('DRIVER={SQL Server};SERVER=mydb;DATABASE=solarwinds;Trusted_Connection=True', timeout=1) as cnxn:
cursor = cnxn.cursor()
result = cursor.execute(query).fetchall()
したがって、上記のコードを使用すると、1 秒以内にタイムアウトしなかったか、少なくとも 1 秒以内に結果が返されませんでした。ただし、タイムアウトが設定されていない場合よりもはるかに高速に結果が返されました。