Найти - Пользователи
Полная версия: SqlAlchemy генерируемые зпросы и время их выполнения
Начало » Базы данных » SqlAlchemy генерируемые зпросы и время их выполнения
1
estin
Добрый вечер.

Изучаю Pylons + SqlAlchemy (раньше использовал Django).

Как в рамках одной “сессии” (запрос - ответ) узнать какие SQL запросы получились и время их выполнения?

Все что пока нашел по теме - http://groups.google.com/group/sqlalchemy/browse_thread/thread/479a8cc188e933c3/e3519853143e9036?lnk=gst&q=execution+time#e3519853143e9036

Заранее всем спасибо.
j2a
Не знаю как насчет времени выполнения запроса (я такое смотрю в логах СУБД сервера), а сами запросы видно при включении логирования – http://www.sqlalchemy.org/docs/05/dbengine.html#configuring-logging
estin
Вечер добрый!

Вот мои наработки по теме.

from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:',
echo=True,
module=db #Здесь указываем модуль с интерфейсом DBAPI(2)
)
Сам модуль db.py
from sqlite3 import *

def connect(*args, **kwargs):
return NewConnection(*args, **kwargs)

class NewCursor(Cursor):
def execute(self, *args, **kwargs):
print 'Begin'
res = super(self.__class__, self).execute(*args, **kwargs)
print 'End'
return res

class NewConnection(Connection):
def cursor(self):
return NewCursor(self)
def execute(self, *args, **kwargs):
print 'Begin'
res = super(self.__class__, self).execute(*args, **kwargs)
print 'End'
return res
Остается только “обвязать” все и в нужном виде представить для комфортного дебага,
Можно и debug toolbar с информацией по SQL запросам для Pylons сделать :)
Спасибо PEP 0249
bw
Так будет правильнее:
...
def execute(self, *args, **kwargs):
print 'Begin'
try:
return super(self.__class__, self).execute(*args, **kwargs)
finally:
print 'End'
...
def execute(self, *args, **kwargs):
print 'Begin'
try:
return super(self.__class__, self).execute(*args, **kwargs)
finally:
print 'End'
..bw
ofigetitelno
:)
http://techspot.zzzeek.org/?p=31
Может подойдёт…
estin
ofigetitelno, вот спасибо!
Подошло :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB