A simple way of logging how long it takes for SQLAlchemy queries to run.
Project description
Description
Provides a simple way to find slow SQL queries when using SQLAlchemy.
Hooks into the SQLAlchemy events system to find when queries start and finish. Note that this is not meant to serve as a profiler and will not explain why your queries are slow, just tell you which ones are. See SQLAlchemy docs about performance for profiling if you need to find out how much time a query spends waiting for database response, fetching the data and ORM operations.
Installation
This is a pure python package, so it can be installed with pip install simple-sqla-timer
or any other dependency manager.
Usage
Run this function at the start of your application:
from simple_sqla_timer import setup_query_timer
setup_query_timer()
By default, this will log the start of the statements and their durations to the simple_sqla_timer
logger, with
debug
level. You can override this behaviour by specifying a custom logging function:
import logging
from simple_sqla_timer import setup_query_timer
def my_log_function(statement: str, duration: float) -> None:
logging.info("Query: %s\nDuration:%f", statement, duration)
setup_query_timer(my_log_function)
Important: The query timer must be set up before the application opens SQLAlchemy Engine
connections. Any
connections opened before setting up the timer will not have their statements logged.
Development
This library uses the poetry package manager, which has to be installed before installing
other dependencies. Afterwards, run poetry install
to create a virtualenv and install all dependencies.
Black is used (and enforced via workflows) to format all code. Poetry will install it
automatically, but running it is up to the user. To format the entire project, run black .
.
Contributing
This project uses the Apache 2.0 license and is maintained by the data science team @ Barbora. All contributions are welcome in the form of PRs or raised issues.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for simple_sqla_timer-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ff06edfb898da2134299de592ea69464df8bd9a82029faf9f896708df36e08e |
|
MD5 | 3ff29cfaa9685eba305f72fdb5fc6b7b |
|
BLAKE2b-256 | 9808c5cf190e597ceaa5356fc85a9ad02b335536063efdd94b6c149064806188 |