True async query execution
@sumitmsft ya está trabajando en esto.
Desde el 3/3/2025.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Is your feature request related to a problem? Please describe.
Currently, mssql-python does not support true async execution, forcing developers to use thread-based workarounds (asyncio.to_thread() or aioodbc). This leads to performance limitations, increased memory usage, and suboptimal scalability in high-throughput applications, such as web servers and data processing pipelines.
For applications using FastAPI, Django Async, or AI/ML workloads, true async support is critical for handling multiple concurrent database operations efficiently. Without it, developers face blocking I/O that slows down event-driven applications.
Describe the solution you'd like
- Truly non-blocking I/O using
asyncio(asyncio.StreamReader/asyncio.StreamWriter). - Async query execution with
await conn.execute("SELECT ..."). - Streaming large result sets asynchronously using
async for row in cursor. - Better scalability for FastAPI, Django Async, and other async frameworks.
Example API:
async def stream_users():
conn = await asyncpg.connect(...)
async with conn.transaction(): # Ensures rollback on failure
async for row in conn.cursor("SELECT * FROM users"):
print(row) # Process each row asynchronously
await conn.close()
asyncio.run(stream_users())
### Describe alternatives you've considered
- asyncio.to_thread() → Still uses blocking I/O and threads, increasing overhead.
- aioodbc → Uses a thread pool, not true async, leading to performance bottlenecks.
- Custom Thread Management → Adds complexity and does not scale well under high concurrency.
### Additional context
- Lenguaje dominante
- Python
- Estrellas
- 473
- Forks
- 60
- Merge medio
- 2 d 11 h
- PR fusionados (30 d)
- 36
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/mssql-python
-
bulkcopy PyCore login is closed by SQL Server 2019 while ODBC and Go clients succeed (1.14.0) Abiertoarea: bulk-copy bug triage done
microsoft/mssql-python#750 · 4 comentarios · 1 asignado ·
-
announcement
microsoft/mssql-python#748 · 1 asignado ·
-
area: connectivity-auth bug triage needed
Dificultad 4/5 3-5 días Aptitud para principiantes 62/100
microsoft/mssql-python#746 · 1 comentario ·
-
area: data-types bug triage done
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
microsoft/mssql-python#745 · 1 comentario ·
-
area: packaging-platform bug dependency: external triage done
microsoft/mssql-python#685 · 2 comentarios · 1 asignado ·
Todos los issues de microsoft/mssql-python
Issues similares
-
link-check link-check:sphinx-theme
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
qgis/QGIS-Documentation#11275 ·
-
bug priority:normal ready-for-dev
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
OpenHands/extensions#626 · 1 comentario ·
-
Change observation tooltip text Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
CSCfi/sd-search-api#39 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100