Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

True async query execution

Aperta
#9 20 commenti 25 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@sumitmsft ci sta già lavorando.

Dal 3/3/2025.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

area: api-compliance enhancement triage done
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
Lingua principale
Python
Stelle
478
Fork
62
Merge medio
3g 19m
PR unite (30g)
28

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/mssql-python

Tutte le issue di microsoft/mssql-python

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.